構造器、對象數組、對象屬性、靜態實例塊、this關鍵字

它的名字:構造函數、構造方法、初始化方法。

構造條件? 以後我們如何去使用構造器? 你覺得那些對象中那些屬性值是必要的,你就在構造器中提出來(就是你如果想創造對象必須要傳入我所需要的參數)


public class Dog {//這裏就是一個簡單的類、狗的類
    String name;
    String chi;

    public Dog(String name, String chi) {//如果你想創建對象輸入這兩個參數
        this.name = name;
        this.chi = chi;
    }
}

構造器的創建:

                      1.構造器的名稱與類名一致

                      2.構造器沒有返回參數

                      3.當你的類中沒有一個構造器的時候,java虛擬機會自動加入一個空參數的構造器


構造器是在創建完對象後調用

構造器就是一個方法,此方法沒有返回值,並且與類名一致

構造器在創建完對象後 調用,調用完畢後,創建對象就結束


調用流程:

               DD f=new DD();

               1.先判斷類是否加載了,如果沒有加載,必須先加載

               2.創建對象,分配對象的屬性和方法內存

               3.調用構造器

               4.構造器調用完畢,返回對象給f


構造器重載:

                   與方法重載是一致的


對象數組:將對象放入數組中規定長度,並且可以通過循環賦值。


import java.util.Scanner;

public class Dog {//這裏就是一個簡單的類、狗的類
    String name;

    public static void main(String[] args) {
        Dog dog[] = new Dog[10];//這裏只是創建對象數組
        dog[0] = new Dog();
        dog[0].name = "x";
        System.out.println(dog[0]);//這裏取出的只是數組地址
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            dog[i] = new Dog();//只要是對象就是他玩出花來他都是要創建對象的
            dog[i].name = input.next();
        }
        System.out.println(dog[1].name);
        System.out.println(dog[3].name);
    }
}

沒有賦值的對象變量是什麼值?:

                                                  null

                                                  null 表示變量沒有指向任何內存


 實例塊:

             每次創建對象 都會執行實例塊, 在構造器之前執行


public class Dog {
    {
        System.out.println("我是實例塊");
    }
}

靜態塊:

             在類加載的時候調用的(只要加載類就會調用,無需加載對象他就會加載)


public class Dog {
    static {
        System.out.println("我是靜態塊");
    }
}


一個創建對象是如何執行new Dog():

                                                       1.先加載類,將類的屬性進行內存分配

                                                       2.然後執行靜態塊static和賦值(順序執行)

                                                       3.加載實例屬性

                                                       4.執行實例塊和賦值(順序執行)

                                                       5.構造器調用

                                                       6.返回創建好的對象內存


this關鍵字:

                  當前對象

                  Java允許不同區域的重名,在嵌套區域中重名,是就近原則

                  訪問對象,只能訪問到屬性和方法

                  不能在靜態成員中使用

                  1.是當前對象 this 

                  2.可以用於轉發構造器 this():

                                                              只能寫在構造器代碼的第一行上

                                                              一個構造器只能寫一句


public class Dog {//構造器轉發代碼不知道用那


    String name;
    String Dizhi;
    int age;

    public Dog(String name) {
        this(name, "哈哈", 10);//運行到這句 馬上轉發到構造器上 等構造器執行完畢後 在向下執行代碼
    }

    public Dog(String name, String dizhi) {
        this(name, dizhi, 10);
    }

    public Dog(String name, String dizhi, int age) {
        this.name = name;
        this.Dizhi = dizhi;
        this.age = age;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章