Java を理解するときに遭遇する基本的な概念の 1 つは コンストラクター です。コンストラクターは、オブジェクトの作成および初期化方法において重要な役割を果たします。この投稿では、Java のコンストラクター、その重要性、さまざまな型、および実際の例を使用した使用法について明確に理解できるようになります。
オブジェクトの初期化やオブジェクトの作成をさまざまな方法で処理する際のコンストラクターの役割についても学びます。それでは、飛び込んでみましょう!
Java では、コンストラクター は、オブジェクトの作成時にオブジェクトを初期化するために使用されるコードのブロックです。これはオブジェクトの作成時に自動的に呼び出され、オブジェクトの初期状態が設定されます。クラス内でコンストラクターが明示的に定義されていない場合、Java は デフォルト コンストラクター.
を呼び出します。コンストラクターは、次の 2 つの重要な点で通常のメソッドと異なります。
コンストラクターは、一貫した方法で新しいオブジェクトを初期化するためのフレームワークを提供するため、不可欠です。これらにより、すべてのオブジェクトが有効で意味のあるデータから始まることが保証され、ライフサイクル全体を通じてオブジェクトの状態を管理しやすくなります。
コンストラクターを理解すると、new キーワードを使用してオブジェクトが作成されるときにコンストラクターが自動的に呼び出されることが理解できるでしょう。
Java には主に 3 種類のコンストラクターがあります:
それぞれを詳しく見てみましょう。
引数なしのコンストラクター は、パラメーターを受け取らないコンストラクターです。デフォルト値またはコンストラクター内で定義された値を使用してオブジェクトを初期化します。
class Rectangle { double length; double breadth; // No-argument constructor Rectangle() { length = 15.5; breadth = 10.67; } double calculateArea() { return length * breadth; } } class Main { public static void main(String[] args) { Rectangle myRectangle = new Rectangle(); // No-argument constructor is invoked double area = myRectangle.calculateArea(); System.out.println("The area of the Rectangle: " + area); } }
出力: 長方形の面積は 165.385 です。
ここでは、引数なしのコンストラクターは、Rectangle オブジェクトの作成時に長さと幅をデフォルト値で初期化します。
パラメータ化コンストラクター を使用すると、引数を渡して特定の値でオブジェクトを初期化できます。この柔軟性により、異なる初期状態を持つ複数のオブジェクトを作成できます。
class Rectangle { double length; double breadth; // Parameterized constructor Rectangle(double l, double b) { length = l; breadth = b; } double calculateArea() { return length * breadth; } } class Main { public static void main(String[] args) { Rectangle myRectangle = new Rectangle(20, 30); // Parameterized constructor is invoked double area = myRectangle.calculateArea(); System.out.println("The area of the Rectangle: " + area); } }
出力: 長方形の面積は 600.0 です。
ここで、パラメーター化されたコンストラクターは長さと幅を引数として受け入れ、各オブジェクトにカスタム値を設定できるようにします。
クラスにコンストラクターが定義されていない場合、Java はデフォルトのコンストラクターを提供します。このコンストラクターは、インスタンス変数をデフォルト値 (オブジェクトの場合は null、数値の場合は 0 など) で初期化します。
class Circle { double radius; double calculateArea() { return Math.PI * radius * radius; } } class Main { public static void main(String[] args) { Circle myCircle = new Circle(); // Default constructor is invoked System.out.println("Radius: " + myCircle.radius); // Output will be 0.0, the default value } }
Circle クラスは明示的にコンストラクターを定義していないため、Java は半径を 0.0 に初期化するデフォルトのコンストラクターを提供します。
Java では、コンストラクターのオーバーロードが許可されており、クラスは異なる引数リストを持つ複数のコンストラクターを持つことができます。各コンストラクターは、渡されたパラメーターに基づいて固有のタスクを実行します。
class Student { String name; int age; // No-argument constructor Student() { name = "Unknown"; age = 0; } // Parameterized constructor Student(String n, int a) { name = n; age = a; } void displayInfo() { System.out.println("Name: " + name + ", Age: " + age); } } class Main { public static void main(String[] args) { Student student1 = new Student(); // Calls no-argument constructor Student student2 = new Student("Alice", 20); // Calls parameterized constructor student1.displayInfo(); // Output: Name: Unknown, Age: 0 student2.displayInfo(); // Output: Name: Alice, Age: 20 } }
この場合、クラス Student には 2 つのコンストラクターがあります。1 つは引数を持たず、もう 1 つはパラメーター (名前と年齢) を持ちます。 Java は、オブジェクトの作成時に渡される引数の数とタイプに基づいてこれらを区別します。
Java では、this キーワードはクラスの現在のインスタンスを参照するために使用されます。コンストラクターのパラメーターがインスタンス変数と同じ名前を持つ場合、曖昧さを避けるのに役立ちます。
class Employee { String name; double salary; // Parameterized constructor Employee(String name, double salary) { this.name = name; // 'this' refers to the current object's instance variable this.salary = salary; } void display() { System.out.println("Employee Name: " + name); System.out.println("Salary: " + salary); } } class Main { public static void main(String[] args) { Employee emp = new Employee("John", 50000); // Using parameterized constructor emp.display(); } }
この例では、this.name はインスタンス変数を指しますが、this のない name はコンストラクターに渡されるパラメーターを指します。
Constructor | Method |
---|---|
Must have the same name as the class | Can have any name |
No return type (not even void) | Must have a return type |
Invoked automatically when an object is created | Called explicitly by the programmer |
Used to initialize objects | Used to perform actions or computations |
コンストラクターとの挑戦
結論
コンストラクターは Java プログラミングの基本的な部分です。これらは、オブジェクトが適切な値で初期化されることを保証し、オーバーロードによる柔軟性を提供します。引数なし、パラメータ化、デフォルトのいずれであっても、コンストラクターを効果的に使用する方法を理解することは、Java をマスターするために重要です。
あなたはどうですか?どのような種類のコンストラクターを使用することを好みますか?
以上がJava のコンストラクターをマスターする: 型と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。