看到书上有两种,比如一个创建Demo对象,一种是Demo demo=new Demo();另一种是直接new Demo();请问这两者有什么区别和使用条件
Demo demo=new Demo();这样的写法代表有引用,用demo这个名字可以去操作这个对象,但是直接new的话就是匿名对象,没有引用指向它,只能在new的一瞬间做一些事情,后来就会被当成垃圾回收掉
Cat cat1 = new Cat();
cat1.cry();
cat1.play();
以上是同一只猫叫, 玩耍
new Cat().cry();
new Cat().play();
以上是两只猫, 第一个猫在叫, 第二只猫在玩耍
一个是使用匿名对象的方式 new xxx()
一个是创建一个对象 在下面还要继续用到 就好比如你定义一个变量一样
Xxx xxx=new Xxx()
使用时就要看你具体的需求了
Demo demo=new Demo(); 创建对象,并把对象赋值给demo
new Demo(); 只是创建了一个对象
一般如果你要对对象进行操作则选用第一种,否则第二种就足够了
Demo demo=new Demo(); 代表的是 新建一个对象并赋值给变量demo
new Demo(); 代表是 新建一个对象,无其他操作,无使用
假设你在别的类里写了个方法 叫做public vod play(){},这时候你想要在主函数中调用它,就可以用new方法,比如Play play=new Play(),
new关键字表示你新建了这个对象
匿名对象是一次性的,你这样记就行
另外我觉得这两种都算直接new啊,不直接的,应该是单例之类的吧?
Demo demo=new Demo() 和 new Demo() 唯一的区别是否要持有这个对象,
如果你后续还要操作这个对象,可以使用第一种,
如果只是临时变量而已,建议使用匿名类,典型的就是setOnxxxListener()这种情况。