コンストラクターは、コンストラクター メソッドおよびコンストラクター関数とも呼ばれ、クラス内のメンバー変数 (フィールド) の初期化を担当する特別なタイプのメソッドです。コンストラクターの目的は、オブジェクトの作成時に初期化を実行することです。オブジェクトの作成時に、システムはオブジェクトのインスタンスに対してデフォルトの初期化を実行します。
#コンストラクターとは
コンストラクタの特徴
1. 一般的なメソッド名とは異なり、コンストラクタ メソッド名は、クラスと同じである必要があります。名前は一貫したままであり、戻り値はなく、void さえありません。 2. Java コンパイラーはパラメーターなしのコンストラクターを自動的に作成するため、クラスにパラメーターなしのコンストラクターがない場合でも省略できます。オブジェクトをインスタンス化するときに値を割り当てる必要はありません3. パラメーター化されたコンストラクターがクラスにすでに存在する場合、コンパイラーはデフォルトのパラメーターなしコンストラクターを提供しなくなります。オブジェクトをインスタンス化するときに値を割り当てる必要があります。割り当てないとエラーが報告されます。 4. クラスがオブジェクトをインスタンス化すると、コンストラクターが自動的に呼び出されます。 5. static、final、synchronized、abstract、native では変更できません。コンストラクターをサブクラスに継承することはできません#6。各クラスには 0 個以上のコンストラクターを含めることができます。
#例 1: パラメーターなしの構築
Student Class
public class Student { //权限修饰符是public,表示内部属性能被其他类访问到。若使用private,则需要set/get才能访问 public String name; public int age; //无参构造,编译器自带,可不写。 public Student(){ System.out.println("括号内无参数,这就是无参构造"); } }
public class Test { public static void main(String[] args) { Student st = new Student();//创建对象,括号内无需赋值 //没赋值的情况下,字符类型默认值为null,数值类型默认值为0 System.out.println(st.name+" "+st.age);//null,0 //对属性进行赋值 st.name="Tom猫"; st.age=5; System.out.println(st.name+"今年"+st.age+"岁了"); } }
括号内无参数,这就是无参构造 null 0 Tom猫今年5岁了
例 2: パラメーター化された構築
学生クラス
public class Student { //权限修饰符是public,表示内部属性能被其他类访问到。若使用private,则需要set/get才能访问 public String name; public int age; //无参构造最好也写上 public Student(){ } public Student(String name,int age){ System.out.println("括号内有参数,就是有参构造"); //将形参变量的值,赋给成员变量。 this.name = name; this.age = age; //this.name = "吴邪" 若直接在构造方法内部赋值,则优先执行其内部的值,即吴邪会替掉Tom猫 } }
public class Test { public static void main(String[] args) { //创建对象。赋值后,定义的值会传递给构造器中的形参变量。 Student st = new Student("Tom猫",5);//创建对象,须在括号内赋值,不然报错 //使用对象调用成员变量(java对象只能调用成员变量) System.out.println(st.name+"今年 "+st.age+"岁了"); } }
括号内有参数,就是有参构造 Tom猫今年5岁了
以上がJava コンストラクターとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。