2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Java中如何創建和使用對象?

更新時間:2022-04-01 來源:黑馬程序員 瀏覽量:

要想使用一個類則必須要有對象。在Java程序中可以使用new關鍵字創建對象,具體格式如下:

類名對象名稱= null;
對象名稱=new 類名();

上述格式中,創建對象分為聲明對象和實例化對象兩步,也可以直接通過下面的方式創建對象,具體格式如下:

類名對象名稱= new 類名();

例如,創建Student類的實例對象,示例代碼如下:

Studentstu= newStudent();

上述代碼中,newStudent()用于創建Student類的一個實例對象,Studentstu則是聲明了一個Student類型的變量stu。運算符“=”將新創建的Student對象地址賦值給變量stu,變量stu引用的對象簡稱為stu對象。
了解了對象的創建之后,就可以使用類創建對象了,示例代碼如下:

class Student {
    String name; // 聲明姓名屬性
    void read() {
        System.out.println("大家好,我是" + name + ",我在看書!");
    }
}
public class Test {
    public static void main(String[] args[]) {
        Student stu = new Student(); //創建并實例化對象
    }
}

上述代碼在main()方法中實例化了一個Student對象,對象名稱為stu。使用new關鍵字創建的對象是在堆內存分配空間。stu對象的內存分配如圖3-2所示。

stu對象的內存分配

圖3-2stu對象的內存分配

從圖3-2中可以看出,對象名稱stu保存在棧內存中,而對象的屬性信息則保存在對應的堆內存之中。

創建Student對象后,可以使用對象訪問類中的某個屬性或方法,對象屬性和方法的訪問通過“.”運算符實現,具體格式如下:

對象名稱.屬性名
對象名稱.方法名

接下來通過一個案例學習對象屬性和方法的訪問,如文件3-1所示。

文件3-1Example01.java

class Student {
    String name; // 聲明姓名屬性
    void read() {
        System.out.println("大家好,我是" + name);
    }
}
class Example01 {
    public static void main(String[] args) {
        Student stu1 = new Student(); // 創建第一個Student對象
        Student stu2 = new Student(); // 創建第二個Student對象
        stu1.name = "小明"; // 為stu1對象的name屬性賦值
        stu1.read(); // 調用對象的方法
        stu2.name = "小華";
        stu2.read();
    }
}

文件3-1的運行結果如圖3-3所示。

創建和使用對象

圖3-3文件3-1的運行結果

在文件3-1中,第2~5行代碼聲明了一個String類型的name屬性和一個read()方法,第9~10行代碼創建了stu1對象和stu2對象;第11行代碼為stu1對象name屬性賦值;第12行代碼通過stu1對象調用read()方法。

第13行代碼為stu2對象name屬性賦值;第14行代碼通過stu2對象調用read()方法。從圖3-3所示的運行結果可以看出,stu1對象和stu2對象在調用read()方法時,打印的name值不相同。這是因為stu1對象和stu2對象是兩個完全獨立的個體,它們分別擁有各自的name屬性,對stu1對象的name屬性進行賦值并不會影響到stu2對象name屬性的值。為stu1對象和stu2對象中的屬性賦值后,stu1對象和stu2對象的內存變化如圖3-4所示。

stu1對象和stu2對象中的屬性賦值后的內存變化

圖3-4stu1對象和stu2對象中的屬性賦值后的內存變化

從圖3-4可以看出,程序分別實例化了兩個Student對象stu1和stu2,分別指向各自的堆內存空間。




猜你喜歡:

面向對象中類和對象的定義是什么?

Java中的垃圾回收機制是什么?哪些對象會被回收?

Java創建實例對象

jvm如何判斷對象已死?

黑馬程序員Java高級工程師培訓

分享到:
在線咨詢 我要報名
和我們在線交談!