temp=new Animal();为什么会报错,不是还没有实例化吗?不存在再指向另一个对象啊?
来源:3-2 final关键字的使用(下)
手撕包菜1
2019-08-03 09:49:23
public class Animal {
public String name;
public int month;
public Animal() {
}
public void eat() {
System.out.println(this.name+"在吃东西");
}
public void help(final Animal temp) {
temp=new Animal();
temp.name="花花";
temp.eat();
}
}public class Test {
public static void main(String[] args) {
Animal one=new Animal();
one.name="花花";
Animal two=new Animal();
two.name="凡凡";
one.help(two);
}
}1回答
同学你好,
1、因为参数被声明为final,而temp是一个引用变量,那么它就不能被修改指向另一个对象,所以会报错。
2、使用new Animal();已经进行实例化了,因为在内存中分配空间了,使temp指向了新的对象。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题