1.前面已知,想要抽象出一个对象,首先要写好它的模板——类
但是存在一个问题,我们想创建一个对象,要用构造方法去初始化这个对象。但是如果我们只想在某个时候只使用这个对象一次,之后就不要用了,那是不是这个对象就会占我们的内存,就像我们借走别人的笔(这个对象),之后要还给别人。所以就有了匿名对象这个存在,来帮我们解决这个问题。
2.代码展示——(运用匿名对象和命名对象)明白他们的作用。
package stu.zuo.er;
class Phone{
public Phone(){ }//空构造方法,还有切记不能为构造方法指定类型
public String tell(String friend){//成员方法
return friend;
}
}
class Person{
String name;//数据成员
int age;
public Person(){ }//空构造方法
Person(String name1,int age1){//构造方法
name = name1;
age = age1;//初始化对象
}
public void telling(Phone phone,String poem,String friend,String firstpoem){//将对象作为参数
System.out.println(name+"告诉"+phone.tell(friend)+poem+"的第一句诗");//调用另一个类的对象的成员方法
System.out.println(firstpoem);
}
}
public class Anonymous {
public static void main(String[] args) {
Person lb = new Person("李白",55);
lb.telling(new Phone(),"蜀道难","Tom","君不见黄河之水天上来");//创建匿名对象——Phone
//Phone huawei = new Phone();//命名对象——对象名为huawei
//lb.telling(huawei,"蜀道难");//调用成员方法
}
}
代码结果——
李白告诉Tom蜀道难的第一句诗
君不见黄河之水天上来
3.分析
在代码中我创建了Phone类和Person类,并写好了数据成员与成员方法。
最后在自己的主方法中先初始化李白,然后创建了匿名对象,使它作为Person类中telling成员方法中的参数。
之后在下一行注释中使用命名对象的方法作为该参数。
从中对比我们会发现命名对象明显要申明然后创建对象,这时Java就会在我们的堆内存中开辟空间存并储对象内容,然后在栈内存中保留对象名。这一步在这里肯定就减少了开发效率,而匿名对象则只会在堆内存开辟空间,所以大大提高了开发效率。
4.明白了匿名对象和命名对象,我们之后就可以更好的设计我们的程序,来优化它们!
接下来是学习Java中的重点,关键字了!!!