1.理解:我们创建的对象,没有显式的赋给一个变量名。即为匿名对象
2.特征:匿名对象只能调用一次。
public class InstanceTest {
public static void main(String[] args){
//匿名对象
new Phone().sendEmail();
new Phone().playGame();
//两个new出来的匿名对象不是同一个对象,匿名对象运行结束后就被回收了
new Phone().price = 1999;
new Phone().showPrice(); //没有赋过值,输出为0.0
//**********************************
PhoneMall mall = new PhoneMall();
// Phone p = new Phone();
// mall.show(p);
//匿名对象的使用
mall.show(new Phone()); //直接在形参中使用匿名对象代替new出来的对象p,即这一句代替了以上两句
}
}
class PhoneMall{
public void show(Phone phone){
phone.sendEmail();
phone.playGame();
//此时的功能调用的是同一个对象phone
}
}
class Phone{
double price;//价格
public void sendEmail(){
System.out.println("发送邮件");
}
public void playGame(){
System.out.println("玩游戏");
}
public void showPrice(){
System.out.println("手机价格为:" + price);
}
}