Java

System

Systemクラスは、Javaシステムの基本的な機能を持っているクラス・・・。System (Java Platform SE 6)パッケージ名はjava.lang.Systemだが、デフォルトで参照されているのでimport構文は不要・・・。よく使うフィールドやメソッドをいくつか紹介・・・。とそ…

import構文

標準の言語仕様や、自作クラスに、使いたい機能がなければ、Javaのクラスライブラリを参照する必要がある・・・。 Javaのクラスライブラリを参照するには、プログラムの中でパッケージ名すべてを含めたクラス名を書くか、import構文であらかじめ使いたいパッ…

try-catchによる例外処理

C++と同じく、Javaもtry-catchで例外処理を記述できる・・・。例外が起きそうな場所をtryブロックで囲む・・・。 iは0÷0の値を受け取るつもりだが、そもそも0で除算は数学的な例外である・・・。例外が起きたらcatchブロックに飛ぶ・・・。 引数にはExceptio…

implementsによるインターフェイスの実装

Javaでは、2つ以上の親クラスから継承する多重継承という方法が使えない・・・。 そこで、インターフェイスというメソッドの宣言のみのクラスの様なものを使う・・・。インターフェイスはクラスとは違い、複数指定することができる・・・。 そして、インター…

抽象クラス

クラス定義の頭にabstractキーワードを付けることで、不完全な状態でクラスを定義できる・・・。 抽象クラスといって、クラスの概要(メソッドの宣言など)だけを定義して、派生クラスで具体的な実装を書く時などに使う・・・。こんな風に、outputとsetを持っ…

オーバーライド

オーバーライドについては、特にキーワード無く、クラスを継承して、メソッドを再定義するだけで有効になる・・・。BaseClassの、outputメソッドは、iとstrを出力する・・・。DerivedClassの、outputは、親クラスBaseClassのoutputでiとstrを出力した後、fと…

superキーワード

superは親クラスを指すキーワードで、これを使って親クラスのメンバを明示的に呼び出すことができる・・・。前回同様、BaseClassを用意し、BaseClassの派生クラスDerivedClassを定義・・・。superに引数を与えているが、このsuperは親クラスのコンストラクタ…

extendsによる継承

クラスの継承には、extendsを使う・・・。まずBaseClass.javaに、整数値iと文字列strを持つ基底クラスBaseClassを用意する・・・。次にDerivedClass.javaに、BaseClassの派生クラスDerivedClassを定義する・・・。継承するには、このように派生クラスの後に…

thisキーワード

クラス内でthisを使うと、それはそのクラスオブジェクトインスタンス自身の参照を指す・・・。 いろいろ使い方はあるが、例えば、メンバフィールドと引数を区別するのに使う・・・。Class1.javaで、メンバフィールドはint型のiとStringクラスのstrである・・…

オーバーロード

Javaでも、C++などと同様に、同じメソッド名で引数の違うオーバーロードメソッドを定義できる・・・。Class1.javaで、とコンストラクタが、引数なし、引数(int n, String s)、の2種類ある・・・。 すでにコンストラクタはオーバーロードされている・・・。そ…

配列

配列を使ってみる・・・。MainClass.javaにて、要素数5のint型配列を生成・・・。 ただ配列を宣言しただけでは、メモリは確保されないので、new int[5]と指定する・・・。 (aryNumbersはint[](intの配列型)の参照変数と考える・・・。)aryNumbersの要素に適…

コンストラクタ

オブジェクト作成時に、最初から初期値を設定するよう初期化するメソッド、コンストラクタを定義してみる・・・。Class1.javaにて、Class1の定義で、まずは引数なしのコンストラクタを定義・・・。 呼ばれた場合は、iを0に、strを"-"に設定する・・・。引数(…

クラス

これまで書いてきたように、JavaのクラスはC++のクラスとは違い、メソッドの宣言と定義が分かれていないので、クラスを定義したら、次にメソッドの定義をそこに直接書くことができる・・・。整数値と文字列を保持するクラスClass1を定義して、Class1のオブジ…

boolean型

Javaにも真偽値を持つデータ型booleanがある・・・。boolean型変数b1, b2, b3, int型のxを用意し、b2はfalseに、xは10に初期化する・・・。b1にtrueを代入・・・。b1, b2の値をSystem.out.printlnで出力・・・。 どうなるだろうか・・・。条件式の結果をbool…

mainメソッド

今回からJavaに入る・・・。Javaプログラムのエントリポイントはmainメソッド・・・。 mainメソッドは、メインとなるクラスにstaticメンバとして実装しなければならない・・・。簡単な出力をするJavaプロジェクトを作る・・・。Eclipseを起動すると、ワーク…