class Person{
String name;
void setName (String name){
this.name = name;
}
String getName(){
return name;
}
}
class Student{
public static void main(Strring[] args){
Person a = new Person();
a.setName("kakanu");
System.out.println(new Person().getName());// 用new Person()去调getNname方法结果为什么是null,而没得到返
//回值: kakanu ?
}
}
------解决方案--------------------
new person()构造了一个新的匿名对象,你没有给他赋值,他返回的肯定是NULL啊。把System.out.println(new Person().getName());改成:System.out.println(a.getName());
------解决方案--------------------
System.out.println(new Person().getName());在这句里面,你使用的new person()是构造了一个新的对象,这个对象跟你前面构造的那个对象a不是同一个对象。
------解决方案--------------------
因为在Person 类中的name定义为非static,所以当你new Person().getName()时候,实际上
创建了一个新的Person对象,name会再次被初始化,于是name = null,如果你在String name前面
加个static的话,那么得到的就是kakanu,即使你new Person().getName(),因为name成为
了共享的了
------解决方案--------------------
Person a = new Person(); 这里你声明了一个对象
调用a.setName给它赋值了
System.out.println(new Person().getName());// 这句话里的new Persion(); 你又声明了一个对象 你并没有给这个对象的name属性赋值 所以输出是null