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回答

好帮手慕酷酷

2019-08-03

同学你好,

1、因为参数被声明为final,而temp是一个引用变量,那么它就不能被修改指向另一个对象,所以会报错。

2、使用new Animal();已经进行实例化了,因为在内存中分配空间了,使temp指向了新的对象。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


0

0 学习 · 11489 问题

查看课程

相似问题

回答 2

回答 2

回答 3

回答 3