匿名对象
匿名对象
前面说的创建对象都是有名字的对象,现在我要说的是匿名对象,即没有名字的对象,它与有名字的对象的区别,在于只能调用一次,请看下面例子。public class Text {
public static void main(String[] args) {
Text n = new Text(); //创建一个名为n的Text对象
n.m("java"); //调用m方法
n.d(); //调用n方法
System.out.println("----------------");
new Text().d(); //创建匿名对象,调用d方法(1)
System.out.println("----------------");
new Text().d(); // //创建匿名对象,调用d方法(2)
}
//匿名对象的(1)和(2),虽然结果都是相同,
//但是对象已经不是同一个对象了,因为每new一个对象,都会为其在堆内存中开辟一个
//空间,空间的地址不同,自然就是同一个对象啦
public void d(){
System.out.println("666");;
}
public void m(String name){
System.out.println("结果是:");
System.out.println(name);
}
}
结果
结果是:
java
666
----------------
666
----------------
666
内存图
从图中可以看出n这个对象,要是调用方法的话,是同一个对象调用,而下面的匿名对象则是不同的对象调用方法