Javaクラスとオブジェクトの使用方法
Javaのクラスについて話すとき、どういう意味ですか?確かに、生徒や教師がいる学校のようなクラスではありません。クラスは、コード内のオブジェクトの青写真です。
Javaはオブジェクト指向プログラミング言語です。これは、再利用可能なコードを書くのに役立つ多くの機能が含まれていることを意味します。オブジェクト指向プログラミングは、繰り返しを減らし、コードを読みやすくするため、あらゆるサイズのプログラムに役立ちます。
このガイドでは、Javaの2つの重要な概念であるクラスとオブジェクトについて説明します。例を参照して、それらがどのように機能し、どのように実装できるかについて説明します。
Javaクラスとは何ですか?
クラスは、オブジェクトの青写真のようなものです。寝室の青写真には、設置されているドアや窓の種類が示されている場合がありますが、クラスは、オブジェクトがアクセスして保存できるメソッドと値をプログラムに指示します。
クラスは、オブジェクトを宣言することで複数回参照できる特定のタイプのデータの構造を一度宣言できるので便利です。
1つの変数と2つのメソッドを持つEmployeeというクラスを定義しましょう。
public class Employee { boolean isOnVacation; public void startVacation() { isOnVacation = true; System.out.println("You are now on vacation."); } public void endVacation() { isOnVacation = false; System.out.println("You are not on vacation anymore."); } }
このコードでは、2つの方法を定義しました。1つは従業員の休暇を開始する方法で、もう1つは従業員の休暇を終了する方法です。この情報を追跡するために、isOnVacationというブールインスタンス変数を宣言しました。
従業員クラスのオブジェクトはまだ作成していません。後でそれらのオブジェクトがどのように形作られるかを定義する青写真の概要のみを説明しました。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
Javaオブジェクトとは何ですか?
オブジェクトは特定のクラスのインスタンスです。以前の従業員ブループリントを使用してオブジェクトを作成しましょう。 johnというオブジェクトを作成します。
Employee john = new Employee();
このコードは、クラスEmployeeのインスタンスを作成します。クラスの名前の後に2つの括弧を追加したことに注意してください。これは、コードにEmployeeクラスを参照するように指示します。 new
キーワードは、そのクラスの新しいオブジェクトを作成するようにコードに指示します。
それでは、オブジェクトメソッドを使用しましょう。
Employee john = new Employee(); john.startVacation(); john.endVacation();
プログラムを実行して、何が起こるか見てみましょう:
You are now on vacation. You are not on vacation anymore.
オブジェクトは、Employeeクラスで定義した2つのメソッドを呼び出します。これにより、これらのメソッド内のコードが実行されます。 john.startVacation()
を実行すると たとえば、isOnVacation
の値 booleanがtrueに設定され、「あなたは今休暇中です」というメッセージが表示されます。 Javaコンソールに出力されます。
変数isOnVacation
を定義しましたが クラス内では、特定のオブジェクトに割り当てられている値にアクセスできます。このコードを考えてみましょう:
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation);
このコードは、最後の例のように、ジョンの休暇を開始および終了し、isOnVacation
の値を出力します。 コンソールへの変数:
You are now on vacation. You are not on vacation anymore. false
isOnVacation
の値 メソッドはfalse
。
Javaコンストラクター
コンストラクターメソッドを使用すると、クラス内のデータを初期化できます。上記の例では、クラスの本体で変数を宣言しましたが、デフォルト値で初期化しませんでした。
次のコードを検討してください。
class Employee { boolean isOnVacation; public Employee() { isOnVacation = false; System.out.println("Initialized values."); } ... }
それでは、Employeeクラスのオブジェクトを作成しましょう。
Employee john = new Employee(); john.startVacation();
john
を作成するとき オブジェクトの場合、コンストラクターが自動的に実行されます。このメソッドを使用すると、クラスに保持させたいデフォルト値を設定できます。メソッドは次を返します:
Initialized values. You are now on vacation.
実行時に、コンストラクターはisOnVacation
の値を設定します 偽に。次に、Initialized values
を出力します コンソールに。
複数のオブジェクトの作成
2人の従業員がいる場合はどうなりますか?同じクラスを引き続き使用できますか?はい!これがクラスを使用する利点です。同じクラスを使用して多くのオブジェクトを宣言できます。
次のメインプログラムを検討してください。
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation); Employee ian = new Employee(); ian.startVacation(); System.out.println(ian.isOnVacation);
コードを実行してみましょう:
Initialized values. You are now on vacation. You are not on vacation anymore. false Initialized values. You are now on vacation. true
Employeeクラスの2つのオブジェクト、johnとianを作成しました。私たちのコードでは、ジョンの休暇を開始および終了しました。次に、Ianのオブジェクトを作成し、彼の休暇を開始しました。
john.isOnVacation
の値を出力するとき 、falseが返されます。 Ianのオブジェクトに対して同じことを行うと、trueが返されます。これは、クラスの各オブジェクトが別々であるためです。それらは同じ青写真を使用しますが、独自の値を保存できます。
結論
クラスとオブジェクトは、オブジェクト指向プログラミングの基礎です。クラスを使用すると、ブループリントを定義でき、そこからオブジェクトを定義できます。
挑戦する準備はできていますか?学生がテストに合格したかどうかに関する情報を追跡するクラスを使用してプログラムを作成します。そうすべき:
- 生徒がテストに合格したかどうかを追跡するために変数を保存します。
- 生徒がテストに合格したかどうかを変更する2つの方法があります。
- オプションで、「if」ステートメントを使用して、生徒のテストに成績に基づいて合格/不合格のマークを付けるかどうかを計算できます。
これで、エキスパートのようにJavaでクラスとオブジェクトを操作する準備が整いました。
-
Javaでサブパッケージを使用する方法は?
サブパッケージはサブディレクトリに似ています。例を考えてみましょう。同社には、Dell.javaソースファイルを含むcom.apple.computersパッケージがあり、このような一連のサブディレクトリに含まれていました- ....\com\apple\computers\Dell.java コンパイル時に、コンパイラーは、クラス、インターフェース、および列挙型で定義されているものごとに異なる出力ファイルを作成します。出力ファイルのベース名はタイプの名前であり、その拡張子は.classです。 例- // File Name:Dell.java package com.apple.compu
-
Javaで他のパッケージのクラスを使用する方法
ボスクラスが給与パッケージで定義されている例を使用して理解できます。 package payroll; public class Boss { public void payEmployee(Employee e) { e.mailCheck(); } } Employeeクラスが給与パッケージに含まれていない場合はどうなりますか?次に、Bossクラスは、別のパッケージのクラスを参照するために、次のいずれかの手法を使用する必要があります。 クラスの完全修飾名を使用できます。例- payroll.