1.9 匿名对象
經(jīng)過前面的學(xué)習(xí),我們知道創(chuàng)建對象的標(biāo)準(zhǔn)格式如下:
類名稱 對象名 = new 類名稱();每次 new 都相當(dāng)于開辟了一個新的對象,并開辟了一個新的物理內(nèi)存空間。如果一個對象只需要使用唯一的一次,就可以使用匿名對象,匿名對象還可以作為實(shí)際參數(shù)傳遞。
匿名對象就是沒有明確的給出名字的對象,是對象的一種簡寫形式。一般匿名對象只使用一次,而且匿名對象只在堆內(nèi)存中開辟空間,而不存在棧內(nèi)存的引用。
public class Person {public String name; // 姓名public int age; // 年齡// 定義構(gòu)造方法,為屬性初始化public Person(String name, int age) {this.name = name;this.age = age;}// 獲取信息的方法public void tell() {System.out.println("姓名:" + name + ",年齡:" + age);}public static void main(String[] args) {new Person("張三", 30).tell(); // 匿名對象} }程序運(yùn)行結(jié)果為:
姓名:張三,年齡:30在以上程序的主方法中可以發(fā)現(xiàn),直接使用了“new Person("張三",30)”語句,這實(shí)際上就是一個匿名對象,與之前聲明的對象不同,此處沒有任何棧內(nèi)存引用它,所以此對象使用一次之后就等待被 GC(垃圾收集機(jī)制)回收。
匿名對象在實(shí)際開發(fā)中基本都是作為其他類實(shí)例化對象的參數(shù)傳遞的,在后面的 Java 應(yīng)用部分的很多地方都可以發(fā)現(xiàn)其用法,而且細(xì)心的讀者可以發(fā)現(xiàn),匿名對象實(shí)際上就是個堆內(nèi)存空間,對象不管是匿名的還是非匿名的,都必須在開辟堆空間之后才可以使用。
總結(jié)
- 上一篇: 1.8 深入解析new运算符
- 下一篇: 1.2 Object类详解