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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

6回答

2284閲覧

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

Abeginner

総合スコア29

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2016/11/25 07:14

編集2016/11/25 08:01

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っていう適当な引数って意味?
合ってます???

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2016/11/25 07:26

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

2016/11/25 08:11

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

回答6

0

ベストアンサー

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

java

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

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

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

投稿2016/11/25 07:28

編集2016/11/25 15:22
swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2016/11/25 07:36

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

2016/11/25 22:57

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

0

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

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


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

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

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

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


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

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

投稿2016/11/25 17:51

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Abeginner

2016/11/25 21:44

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

2016/11/25 21:48

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

2016/11/26 05:54 編集

>入門書やサイトでお薦めのものはありますか? >初心者向けと書いてあっても言葉遣いが難しく たとえば英語の文法でも、難しい言葉づかいが出てきますが、 文法用語を使わない本というのは、言葉を置きかえただけで、 実質的な難易度が下がっているようには思えません。 それに、その分野の用語を覚えないと、上級に進むことができません。 より上級の本では、用語を当たり前のように使っていますから。 弁護士が、法律用語は難しいから嫌だ、と言っても仕様がないようなことです。 >1つのプログラムの中で、それぞれのint indexのところに >別々のものを入れても普通に動きます。 コードを見てみないと、詳細までは分かりませんが、 いろいろな仕組みが隠れていて、そうなっています。 たとえば、「スコープ」という仕組みがあって、 別の関数やメソッドでは、別の変数扱いになります。 ですから、関数の引数はひとつの関数内でのみ通用します。 「山田さん」とだけ言っても、営業部で言うのと経理部で言うのとでは、 別人を指しているようなことです。そういう仕組みがいろいろあります。 しかし、ネットで断片的に聞いても、頭の中で整理されないと思うので、 まず、入門書を一冊仕上げる方が早いと私は思います。面倒に感じても。
guest

0

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

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

投稿2016/11/25 12:44

ozwk

総合スコア13521

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2016/11/25 07:40

akio221

総合スコア716

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Abeginner

2016/11/25 12:34

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

0

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

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

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

です。

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

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

です。

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

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

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

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

void test( int a );

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

という意味。

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

なので、型情報が必要。

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

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

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

つまり、引数の型情報。

投稿2016/11/25 07:34

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Abeginner

2016/11/25 08:21

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

2016/11/25 08:28

argsの意味→https://teratail.com/questions/55582 文法上はargsである必要はない。
guest

0

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

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

投稿2016/11/25 07:20

MasashiKimura

総合スコア1150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasashiKimura

2016/11/25 07:21

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問