まずはじめに
Javaの学習を始めました。
こんなレベルから・・・?というくらい超基礎~から執筆します。
自身が復習できるような自身の備忘録を作成していきます。
クラスライブラリとは
クラスライブラリは直訳すると「クラスの図書館」
Javaの開発環境であるJDKの一部として、提供されるクラス群をクラスライブラリと呼ぶ。
数千のクラスやインターフェイスがまとめられている。よく使われる機能をまとめた便利セットのようなもの。
【クラスライブラリ例】
- java.lang
基本的なクラス - java.io
入出力関連 - java.net
ネットワーク関係
などなど
たくさんあるので、よく使うものをその都度学習という形でよいかも。
APIドキュメント
API(Application Programming Interface)は、アプリケーションやプログラムをつなぐもの。
開発者は呼び出し方さえわかれば、呼び出して利用できる。(System.out.println();みたいなやつ)
クラスライブラリーやそれに含まれるメソッド・メンバー変数がまとまっているものを
APIドキュメントとよぶ。オラクル社から公開されている。
すべてを暗記して使いこなすということは不可能なので、APIドキュメントで調べる術さえ理解しておけばOK
本ブログでは有名なクラスのみ紹介を行う。
Objectクラス(java.lang)
Objectクラスはすべてのクラスのルートとなるクラス
すべてのクラスはObjectクラスを継承している
boolean equals(Object obj)
Objectクラスのequalsメソッド。自オブジェクトとobjが等しいかを調べる。
Student stu1 = new Student("山田");
Student stu2 = new Student("山田");
stu1.equals(stu2) //結果はfalseになる
//equalsはアドレス値を比較するメソッドなので
//内容は一緒でもアドレス値が違うのでfalseとなる。
//「==」と同じ意味
String toString()
toStringメソッドとはオブジェクトの情報を文字列で返す。
System.out.println(obj)
したときは自動的にtoStringが呼び出される。
Stringクラス
「"」で囲まれた文字列はStringオブジェクト
あたりまえでは・・・?と思ったが、これって実は特殊なことみたい。
本来はString s2=new String("java");
と定義すべきところ、
よく使うためString s1="java";
に省略できるようになっている
"~"をつかうと同じ文字列のオブジェクトが再利用される。つまり2つ目以降はメモリが増えない。
boolean equals(Object obj)
Stringクラスのequalsメソッド。自文字列とobjの文字内容を比べる。
String s1="Java";
String s2=new String("Java");
String s3="Java";
s1.equals(s2) //文字が同じかどうか比較true
s1==s2 //文字が格納されているアドレス値を比較false
s1.equals(s3) //文字が同じかどうか比較true
s1==s3 //文字が格納されているアドレス値を比較true
文字列の比較をするときはequals()
でしよう!
ラッパークラス
各基本データ型に対応したクラスをラッパークラスという
基本データ型 | ラッパークラス |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
int i =10 //iに10を代入
Integer j = new Integer(10); //新規アドレスを取得し、アドレス値をjに代入
(Integer j = 10でもアドレス値)
// Integerがラッパークラスにあたる
基本データ型は基本的に直接変数に代入できるものだが、
String型のような参照型のようにアドレス値を準備して管理することができるクラスを
ラッパークラスと呼ぶ。値をラップで包むようなイメージからラッパークラスと呼ぶ。
ArrayListクラス
複数のオブジェクトをまとめて管理できるコレクションクラスの1つ
配列とは違うもう1つの手法と考えて問題ない。
java.utilパッケージに含まれているクラス
java.langパッケージのようにデフォルトのモノではないので使用する際には
「import」をする必要がある。サイズが動的に変わる配列。
ArrayList<String> list = new ArrayList<String>(); //ArrayList<String>がクラス名
//格納する要素のデータ型を<>(ジェネリックス)内に指定
//list変数を生成
list.add("We"); //listの0番目に"We"を代入
list.add("enjoy"); //listの1番目に"enjoy"を代入
list.add("Java"); //listの2番目に"Java"を代入
for(int i =0; i<list.size(); i++){
System.out.println(list.get(i)); //list.get(i)でi番目のlistの情報を取得する
}
Iteratorインターフェイス
Iteratorはコレクション内の内容を指し示すカーソルのようなもの
ArrayListで作成したものを読み込んだり、削除したりすることができる方法。
ArrayList<Integer> list = new ArrayList<Integer>();
int.add(10);
int.add(20);
Iterator<Integer> it = list.interator(); //Iteratorメソッドでlistのイテレーターを取得
//オブジェクトに対してIteratorを使用しますよっていう準備という認識でOK
while(it.hasNext()){ //hasNextは次に要素があればtrue
System.out.println(it.next()); //itを返して、nextで次の要素へ
}
つまりクラスライブラリとは?
Javaがオフィシャルで準備している便利ツールというイメージ
数がとんでもなくあるので、要所要所でよく使うものを覚えていくような進め方でOKだと思う
Java.langは記述はいらないが、それ以外のJava.utilなどを使う際には「import」で連携が必要
つまり、記述しなくても使えるものと、記述しないと使えないものがあるので注意