匿名对象
(1)匿名对象分析:
普通申明一个对象是这样的
A a = new A();
那么这个时候a就是类A的一个对象,这个对象名字就是a
再来看下面一个例子:
method(A a);
整理method是一个方法,他需要传递一个对象来作为参数,那么这个时候有2种方法:
方法1:
A a =new A();
method (a);
方法2:
method (new A());
(2)匿名对象详细:
1,所谓的匿名对象就是比之前的对象少一个栈内存的引用关系。
2,只使用一次的对象,称为匿名对象。
3,匿名对象只在堆内存中开辟空间,而不在栈空间中开辟空间。(声明的对象在栈内存中开辟空间)
例子2:
class Person{ private String name ; private int age ; public Person(String n,int a){ // 声明构造方法,为类中的属性初始化 this.setName(n) ; this.setAge(a) ; } public void setName(String n){ name = n ; } public void setAge(int a){ if(a>0&&a<150){ age = a ; } } public String getName(){ return name ; } public int getAge(){ return age ; } public void tell(){ System.out.println("姓名:" + this.getName() + ";年龄:" + this.getAge()) ; } }; public class NonameDemo01{ public static void main(String args[]){ new Person("张三",30).tell() ;//这里通过一个new类(),事实上也实现了一个分配堆内存的操作,实现了一个匿名对象的分配。 //new Person("张三",30).tell() 的功能等于Person p=new Person("张三",30).tell() ; } };