質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.06%

Java クラスライブラリがうまく解釈できない

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,542

score 29

Windows10でEclipseを用いてJavaの勉強をしています。 

Javaのクラスライブラリとは、どう解釈して使えばいいものか教えて下さい。

今までもフィーリングで使ってはいたのですが、正直まったく意味もわからず使っていたので、納得できないというか、応用が利かないというか…

例えば、
char charAt(int index)
()の中を0にすれば1文字目を返して、5にすれば6文字目を返す…ってことでいいんですよね?
でも、上の公式(?)内では、カッコの中にint indexと書いてあります。
一体、何がintで何がindexなのですか?
Javaにおいてindexって何ですか?
それともint indexで一単語?
さっぱりわかりません。

void setCharAt(int index, char ch)
これは、カッコ内にint index?とchar ch?がありますよね?
それぞれ何だかわからないし、説明文を見ても「引数の位置の文字を引数の文字にする」とか書いてあり、プログラム以前に日本語として何を言いたいのかわかりません。

これ以外にも、クラスライブラリのカッコの中にはint offsetとかdouble aとかString prefixとか色々な言葉が説明もなしに出てきます。
Excelの関数の使い方から類推するに、これらを使用者が適当に文字やら数字やらに置き換えて使うんだろうというところは見当がつくのですが、ぱっと見で何が言いたいのかイマイチわからないので、自分の使い方が合っているのか、いつも不安なのです。

これって、皆様はどのように解釈しているのですか?
何か勉強する方法とか、読み方のコツとかあるのでしょうか?
ご指導、ご鞭撻のほど何卒よろしくお願いいたします

*追加*
すいません。参考書などと皆様に頂いた回答を見比べていて返答が遅れました。
型はintとかdoubleとかのことですよね?

皆様の回答から察するに、クラスライブラリってそのまんまメソッドの形ってことでいいんですか?
つまり、StringBuffer append(char c)だったら、int型とかと同じように、StringBufferっていう型が何か知らないけど存在するって意味でいいんですか?(そういうの何に載ってます?)
で、appendが誰かが勝手につけたメソッドの名前?
cはchar型のcっていう適当な引数って意味?
合ってます???

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ozwk

    2016/11/25 16:26

    とりあえず「型」ってわかりますか? それによってどこから説明するか変わるので。

    キャンセル

  • Abeginner

    2016/11/25 17:11

    返答遅れてすみません。質問にも追加しました。型をどこまで理解しているかは別として、int型、String型、void型みたいなもののことですよね?変数がどういうデータなのか指定するもの…程度に考えていますが、それは正しいですか?しかし、そうするとクラスライブラリに出てくるStringBufferとかstaticとかは何ですか?

    キャンセル

回答 6

checkベストアンサー

+2

クラスライブラリ以前に、メソッドの定義のしかたの話になります。
メソッドの定義は、

[アクセス修飾子] 返り値の型 メソッド名([引数の型 引数の名前]をコロン区切りで任意の数){
    メソッド本体
}


という形になります。()内を仮引数リストと呼ぶのですが、それがそのまま載っているだけの話です。引数名はどういう意味の引数なのかを端的に表しているだけです。

とにかく、「メソッド」について調べてください。それが分からないと先に進めません。
とりあえずこの辺りから…
8-1. メソッドの基本
マンガで分かる Java入門講座(上記の目次)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/25 16:36

    というか、これがわからずフィーリングで使えるってある意味すごい

    キャンセル

  • 2016/11/26 07:57

    ごめんなさい。せっかく皆様に説明して頂いたのに、きちんと理解できなかったので、質問文を直してもう一度だけ投稿してみようと思います。
    「マンガで分かる Java入門講座」は、昔見た時に、毎回小ネタばっかり挟んできて逆にわかりにくい!と思って以来使っていなかったのですが、参考書を終えてから見てみると、色分けして図示されているのでわかりやすいですね!
    参考書と合わせて見てみると、理解しやすい新発見があったので、とりあえず今回はベストアンサーにさせて頂きます。

    初心者のわけわからない質問に付き合って頂き、本当にありがとうございました。

    キャンセル

+1

自分でクラスを作ってメソッドを定義してみてください。

やった事あるならそれと一緒です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

何か勉強する方法とか、読み方のコツとかあるのでしょうか? 

今は謎が謎を呼ぶ状態だと思いますので、
まず、入門書(サイト)を一冊仕上げると良いと思います。


char charAt(int index) 
カッコの中にint indexと書いてあります。 
一体、何がintで何がindexなのですか? 

index(名前は任意)は仮引数で、intはその型です。
が、言葉だけ分かっても意味はありませんし、
基本的すぎてここですべてを解説しきれません。

一応イメージだけ言うと、パソコンの入出力部にケーブルを指す感じです。
ケーブルから送られてきたデータを受け取るのが引数です。

USBとかHDMIとか形が違うと刺さりませんが、それが型です。
プログラムを壊さないように、間違いが分かるように、
型が違うと引数を受け取れないようにします。


ここら辺は超基本なので、入門書やサイトを何度も読んだり、
サンプルコードの挙動と見くらべたりして、じっくり学んでください。

理解できないままあせって先に進んでも、おそらくムダになると思います。
かけ算の九九を飛ばして、いきなり微積分はできないのと同じことです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/26 06:44

    入門書やサイトでお薦めのものはありますか?
    あれらは、初心者向けと書いてあっても言葉遣いが難しくて、いくら勉強してもちゃんと理解したのか自信が持てません…

    "index(名前は任意)は仮引数で、intはその型です。 "とありますが、仮引数なら名前は何でも良さそうな気がしますが、実際にカッコ内にはindexだったりoffsetだったり書いてあります。
    例えば、char charAt(int index) とvoid setCharAt(int index, char ch) には、共通したint indexという言葉が出てきます。
    でも、1つのプログラムの中で、それぞれのint indexのところに別々のものを入れても普通に動きます。
    どうやって区別しているのですか? オーバーロードみたいな感じのシステムなのですか?
    それとも、変な使い方をすると、データを混同して間違った値を出力したりするのでしょうか?
    それともint indexと書くと、何か特別なものを指定するのですか?
    クラスメソッドには共通して出てくる仮引数が多く見られます。どうやってプログラムが動いているんですか?

    キャンセル

  • 2016/11/26 06:48

    すいません。間違えました。
    ×クラスメソッドには→〇クラスライブラリには

    キャンセル

  • 2016/11/26 14:53 編集

    >入門書やサイトでお薦めのものはありますか?
    >初心者向けと書いてあっても言葉遣いが難しく

    たとえば英語の文法でも、難しい言葉づかいが出てきますが、
    文法用語を使わない本というのは、言葉を置きかえただけで、
    実質的な難易度が下がっているようには思えません。

    それに、その分野の用語を覚えないと、上級に進むことができません。
    より上級の本では、用語を当たり前のように使っていますから。
    弁護士が、法律用語は難しいから嫌だ、と言っても仕様がないようなことです。

    >1つのプログラムの中で、それぞれのint indexのところに
    >別々のものを入れても普通に動きます。

    コードを見てみないと、詳細までは分かりませんが、
    いろいろな仕組みが隠れていて、そうなっています。

    たとえば、「スコープ」という仕組みがあって、
    別の関数やメソッドでは、別の変数扱いになります。
    ですから、関数の引数はひとつの関数内でのみ通用します。

    「山田さん」とだけ言っても、営業部で言うのと経理部で言うのとでは、
    別人を指しているようなことです。そういう仕組みがいろいろあります。

    しかし、ネットで断片的に聞いても、頭の中で整理されないと思うので、
    まず、入門書を一冊仕上げる方が早いと私は思います。面倒に感じても。

    キャンセル

0

API仕様書を読めばよいのではないかと思います。

Java8 API仕様書(日本語)
Java9 API Specification

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/25 16:21

    うーん、質問を読む限りその前の段階かもですね。

    キャンセル

0

まず、「Java 入門」で検索し、"メソッド定義" のようなものの項 ( サイトによって言い回しが違うときがあるため。 ) をお読みください。

メソッドの基本的な構造は、 ( 半角スペースを ■ としてみると。 )

メソッドの型■メソッド名( 引数... ){
____// なんらかの処理
return■戻り値;
}

です。

return の後にあるデータは戻り値と呼ばれます。

メソッドの型 = 戻り値の型

です。

で、メソッドやインスタンス生成時等に渡すデータを「引数」といいます。

この引数はメソッドによって個数が違います。一個だったり、二個だったり。

なので、上記の基本の形のほうには"..." で「いくつもある場合がある」としています。

で、引数は変数や配列なので、型が必要です。

void test( int a );

とあれば、 int型のデータ一個を引数として受け取る。

という意味。

もし型を定義しないのであれば、足し算をするメソッドがあったとして、
文字列でもOKになってしまいます。
( Javaの決まりで、型定義なしはありえないですが。 )

なので、型情報が必要。

で、そのメソッド内では 引数を通常の変数や配列のように ( というよりそのものですが。 ) 扱います。

mainメソッドの 引数 String args[] も同じ。

String型の配列 args という意味。

つまり、引数の型情報。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/25 17:21

    String args[]のargsは何ですか?
    配列名だろうとは思うのですが、argsという名前には何か意味があるのですか?
    これは必ずargsである必要性があるものなのですか?

    キャンセル

  • 2016/11/25 17:28

    argsの意味→https://teratail.com/questions/55582

    文法上はargsである必要はない。

    キャンセル

0

数学の関数で、y=f(x)ってありますよね。
関数fに(入力)xを入れると、結果の(出力)yが得られるってやつ。

同じように見てみると、
char charAt(int index) 
だと、(入力)int indexを入れて(出力)charの結果 を得ています。

charとかintとか、どちらも型の定義です。
javaという言語の場合、機械が結果を返すためには、
厳密に入力と出力の型を定めて欲しいのです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/25 21:34

    申し訳ございません。
    散々調べたけどわかりませんでした。
    char charAt(int index)の場合、例えばカッコ内に変数やら数字を入れるだけで動きますよね?intはどこにいったんですか?indexはどうしたんですか?
    というか、indexって何ですか?文法?何かの決まり?
    int indexと書いたら、indexはint型の変数に見えますが、そんな変数は自分で定義していません。どこから湧いて出てきたのですか?
    それとも、int indexと書くと、何か特定のものを表すんですか??

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.06%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る