翻书看见了匿名对象,感觉挺有意思的,来写一写。
先写个简单的代码
//通常写法
class Student{
int num;
String name;
void information(){
System.out.println(name+":"+num);
}
}
class ObjectDemo{
public static void main(String[] args){
student s = new student();
s.num = 1234;
s.name = "小明";
s.information();
}
}
//输出结果: 小明:1234
另有一种简化的写法是这样式的:
//这没区别
class Student{
int num;
String name;
void information(){
System.out.println(name+":"+num);
}
}
class ObjectDemo{
public static void main(String[] args){
//直接使用了Student类中的方法
new student().num = 1234;
new student().name = "小明";
new student().information();
}
//没有名字的对象----匿名对象
//输出结果: null:0
为森魔会出现这种结果???
看图:
//这个图画的顺序有问题,get到点就行 ╭(●`∀´●)╯╰(●’◡’●)╮
我在“JAVA中数组的内存(栈和堆)”那篇写了
堆内存:存储的都是对象,每一个对象都有一个首地址值。堆内存的变量都有默认初始化值。 当对象不再使用时,会被Java垃圾回收机制处理。
所以new carnew student().num = 1234; 之后,这个就没惹。
所以这个匿名对象有什么用呢
当调用对象方法并且只调用一次时,可以简化成匿名对象来写
new s = new Student();
s.information;
————–>
new Student().information;
拙见ಥ_ಥ