Java コンストラクターとは何ですか?

青灯夜游
リリース: 2020-09-18 08:57:15
オリジナル
30019 人が閲覧しました

コンストラクターは、コンストラクター メソッドおよびコンストラクター関数とも呼ばれ、クラス内のメンバー変数 (フィールド) の初期化を担当する特別なタイプのメソッドです。コンストラクターの目的は、オブジェクトの作成時に初期化を実行することです。オブジェクトの作成時に、システムはオブジェクトのインスタンスに対してデフォルトの初期化を実行します。

Java コンストラクターとは何ですか?

#コンストラクターとは

1. コンストラクター。コンストラクター メソッドおよびコンストラクター関数とも呼ばれます。その機能は、クラスのインスタンスを構築し、オブジェクトが確実に初期化されるようにすることです。

2. コンストラクターの形式: パーミッション修飾子クラス名 (パラメーターなし/パラメーターあり){}。

3. パラメータの有無により、パラメータレス構築とパラメータ化構築に分けられます。

コンストラクターの最大の用途は、オブジェクトの作成時に初期化を実行することです。オブジェクトの作成時に、システムはオブジェクトのインスタンスに対してデフォルトの初期化を実行します。このデフォルトの初期化を変更したい場合は、カスタム コンストラクターを通じて変更できます。

コンストラクターは、オブジェクトの初期化時にデータ メンバーを初期化するために使用できます。クラスには複数のコンストラクターを含めることができます。クラスのコンストラクターの名前は、クラスの名前と一致する必要があります。構築を終了するには、return 文 "return;" を使用できます

コンストラクタの特徴

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!