Java のコンストラクターをマスターする: 型と例
Java を理解するときに遭遇する基本的な概念の 1 つは コンストラクター です。コンストラクターは、オブジェクトの作成および初期化方法において重要な役割を果たします。この投稿では、Java のコンストラクター、その重要性、さまざまな型、および実際の例を使用した使用法について明確に理解できるようになります。
オブジェクトの初期化やオブジェクトの作成をさまざまな方法で処理する際のコンストラクターの役割についても学びます。それでは、飛び込んでみましょう!
Java のコンストラクターとは何ですか?
Java では、コンストラクター は、オブジェクトの作成時にオブジェクトを初期化するために使用されるコードのブロックです。これはオブジェクトの作成時に自動的に呼び出され、オブジェクトの初期状態が設定されます。クラス内でコンストラクターが明示的に定義されていない場合、Java は デフォルト コンストラクター.
を呼び出します。コンストラクターは、次の 2 つの重要な点で通常のメソッドと異なります。
- クラスと同じ名前: コンストラクターは、それが属するクラスと同じ名前を持つ必要があります。
- 戻り値の型なし: コンストラクターは、void さえも含め、値を返しません。
- 自動的に呼び出されます: new キーワードを使用してオブジェクトが作成されると、コンストラクターが自動的に呼び出され、明示的に呼び出す必要がなくなります。
Java でコンストラクターが重要なのはなぜですか?
コンストラクターは、一貫した方法で新しいオブジェクトを初期化するためのフレームワークを提供するため、不可欠です。これらにより、すべてのオブジェクトが有効で意味のあるデータから始まることが保証され、ライフサイクル全体を通じてオブジェクトの状態を管理しやすくなります。
コンストラクターを理解すると、new キーワードを使用してオブジェクトが作成されるときにコンストラクターが自動的に呼び出されることが理解できるでしょう。
Java のコンストラクターの種類
Java には主に 3 種類のコンストラクターがあります:
- 引数なしのコンストラクター
- パラメータ化されたコンストラクター
- デフォルトのコンストラクター
それぞれを詳しく見てみましょう。
1.引数なしのコンストラクター
引数なしのコンストラクター は、パラメーターを受け取らないコンストラクターです。デフォルト値またはコンストラクター内で定義された値を使用してオブジェクトを初期化します。
例:
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 オブジェクトの作成時に長さと幅をデフォルト値で初期化します。
2.パラメーター化されたコンストラクター
パラメータ化コンストラクター を使用すると、引数を渡して特定の値でオブジェクトを初期化できます。この柔軟性により、異なる初期状態を持つ複数のオブジェクトを作成できます。
例:
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 です。
ここで、パラメーター化されたコンストラクターは長さと幅を引数として受け入れ、各オブジェクトにカスタム値を設定できるようにします。
3.デフォルトのコンストラクター
クラスにコンストラクターが定義されていない場合、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 でのコンストラクターのオーバーロード
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 は、オブジェクトの作成時に渡される引数の数とタイプに基づいてこれらを区別します。
コンストラクターの this キーワード
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 をマスターするために重要です。
あなたはどうですか?どのような種類のコンストラクターを使用することを好みますか?
以上がJava のコンストラクターをマスターする: 型と例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











一部のアプリケーションが適切に機能しないようにする会社のセキュリティソフトウェアのトラブルシューティングとソリューション。多くの企業は、内部ネットワークセキュリティを確保するためにセキュリティソフトウェアを展開します。 ...

多くのアプリケーションシナリオでソートを実装するために名前を数値に変換するソリューションでは、ユーザーはグループ、特に1つでソートする必要がある場合があります...

システムドッキングでのフィールドマッピング処理は、システムドッキングを実行する際に難しい問題に遭遇することがよくあります。システムのインターフェイスフィールドを効果的にマッピングする方法A ...

intellijideaultimatiateバージョンを使用してスプリングを開始します...

データベース操作にMyBatis-Plusまたはその他のORMフレームワークを使用する場合、エンティティクラスの属性名に基づいてクエリ条件を構築する必要があることがよくあります。あなたが毎回手動で...

Javaオブジェクトと配列の変換:リスクの詳細な議論と鋳造タイプ変換の正しい方法多くのJava初心者は、オブジェクトのアレイへの変換に遭遇します...

Redisキャッシュソリューションは、製品ランキングリストの要件をどのように実現しますか?開発プロセス中に、多くの場合、ランキングの要件に対処する必要があります。

eコマースプラットフォーム上のSKUおよびSPUテーブルの設計の詳細な説明この記事では、eコマースプラットフォームでのSKUとSPUのデータベース設計の問題、特にユーザー定義の販売を扱う方法について説明します。
