『Basic Java Tutorial』の記事「From Hello World to Object-Oriented」では、オブジェクトについて予備的な理解を示しています。オブジェクト内のデータ メンバーは、オブジェクトの状態を表します。オブジェクトは、特定のアクションを表すメソッドを実行できます。
また、授業についても学びました。同じクラスのオブジェクトは同じタイプに属します。クラスを定義し、その定義を使用してオブジェクトを作成できます。
オブジェクトをさらに深く掘り下げてみましょう。 Java のメソッドとデータ メンバーについて詳しく説明します。
同じオブジェクトのデータ メンバーの呼び出し
メソッドはオブジェクトのデータ メンバーを呼び出すことができます。たとえば、以下では getHeight() メソッドを Human クラスに追加します。このメソッドは、高さデータ メンバーの値を返します。
次のようにコードをコピーします。
パブリッククラステスト
{
public static void main(String[] args)
{
人間 aperson = new Human();
System.out.println(aperson.getHeight());
}
}
クラス人間
{/**
*アクセサ
*/
int getHeight()
{
this.height を返します。
}
整数の高さ;
}
getHeight メソッドを追加しました。このメソッドの戻り値は int 型です。 Java では Return を使用して値を返します。
これはオブジェクト自体を参照するために使用されることに注意してください。 aperson インスタンスを作成すると、これは aperson オブジェクトを表します。 this.height は人の身長を指します。
これは暗黙の引数です。メソッドが呼び出されるとき、メソッドのパラメータ リストにこれが含まれていない場合でも、Java はこのパラメータを「黙って」メソッドに渡します。
(これを暗黙的に渡さない特別なメソッドがいくつかあります。これについては後で説明します)
これは必須ではありません。上記のメソッドは次のように記述できます。
次のようにコードをコピーします。
/**
*アクセサ
*/
int getHeight()
{
高さを返します。
}
Java は、高さがクラス内のデータ メンバーであることを独自に判断します。しかし、これを使用するとより明確になります。
コメントを追加する /** comments */ メソッドも確認しました。
メソッドパラメータリスト
Java のメソッド定義は、C 言語の関数に似ています。 Java メソッドは、メソッド名の後の括弧内に引数リスト (引数リスト) を受け取ることもできます。次に、growHeight() メソッドを定義します。このメソッドの機能は、人の身長を伸ばすことです。
次のようにコードをコピーします。
パブリッククラステスト
{
public static void main(String[] args)
{
人間 aperson = new Human();
System.out.println(aperson.getHeight());
aパーソン.growHeight(10);
System.out.println(aperson.getHeight());
}
}
クラス人間
{
/**
*アクセサ
*/
int getHeight()
{
this.height を返します。
}
/**
* 引数を渡す
*/
void 成長高さ(int h)
{
この高さ = この高さ + h;
}
整数の高さ;
}
giveHeight() では、 h が渡されるパラメータです。クラス定義ではパラメータの型(int)を記述します。特定のメソッド内でこのパラメータを使用できます。このパラメーターは、このメソッド (growHeight()) のスコープ内でのみ有効です。
呼び出し時に、growHeight() に 10 を渡します。 a人の身長が10伸びます。
同じオブジェクトで他のメソッドを呼び出す
メソッド内で、同じオブジェクトの他のメソッドを呼び出すことができます。呼び出すときは、this.method() の形式を使用します。これがオブジェクトを指していることも覚えておきます。したがって、 this.method() はオブジェクト自体の method() メソッドを参照します。
たとえば、次のrepeatBreath()関数:
次のようにコードをコピーします。
パブリッククラステスト
{
public static void main(String[] args)
{
人間 aperson = new Human();
aパーソン.repeatBreath(10);
}
}
クラス人間
{
ボイドブレス()
{
System.out.println("ふ…ふ…");
}
/**
* Breath() を呼び出す
*/
voidrepeatBreath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
this.breath();
}
}
整数の高さ;
}
ループを容易にするために、repeatBreath() メソッドで int 型のオブジェクト i を宣言します。 i のスコープは、repeatBreath() メソッドのスコープに制限されます。
(これはC言語関数の自動変数に似ています)
データメンバーの初期化
Java では、データ メンバーを初期化する方法が数多くあります。たとえば、上記の getHeight() の例では、高さの値を指定することはありませんが、Java はデフォルトの初期値 0 を選択します。
基本型のデータ メンバーのデフォルトの初期値:
1.数値型:0
2.ブール値: false
3. その他の型: null
データメンバーの初期値を宣言時に指定できます。これは明示的な初期化と呼ばれます。表示の初期化値はプログラム内にハード的に書き込む必要があります。
次のようにコードをコピーします。
パブリッククラステスト
{
public static void main(String[] args)
{
人間 aperson = new Human();
System.out.println(aperson.getHeight());
}
}
クラス人間
{/**
*アクセサ
*/
int getHeight()
{
this.height を返します。
}
int 高さ = 175;
}
ここで、データ メンバーの高さの初期値はデフォルトの 0 ではなく 175 です。
Java でオブジェクトを初期化する方法は他にもありますが、それについては後ほど紹介します。
要約する
戻る
this、this.field、this.method()
デフォルトの初期値、明示的な初期化