课程最后的问题
public class Animal2 {
public String name;
public int month;
public Animal2() {
}
public void eat() {
this.name=name;
System.out.println(this.name+"在吃东西");
}
public void help(final Animal2 temp) {
Animal2 temp = new Animal2();
temp.name="妞妞";
temp.eat();
}
public static void main(String[] args) {
Animal2 one = new Animal2();
one.name="花花";
Animal2 two = new Animal2();
two.name="凡凡";
one.help(two);
}
}1、为什么这里temp = new Animal2();的前面不加Animal2 ,变成Animal2 temp = new Animal2();
2、引用类型的变量 —— 初始化之后不能再指向另一个对象,temp不是同一个对象吗?
3、初始化的形式是Animal2 temp = new Animal2();,方法里只是把Animal2作为参数,也没说被初始化啊。Animal2作为参数和初始化之间有什么我不知道的联系吗?
正在回答
同学你好,
1、two,temp都是对象的引用。
2、Animal2 two=new Animal2();
根据以下几步来理解:
Animal2类不能作为引用类型,Animal2是一个类,
Animal2 two;是定义一个Animal2类的引用。
two=new Animal2();是创建一个Animal2类型的对象,使引用two指向新创建的对象。
当two做为参数传入help方法之前,执行语句:
Animal2 temp=new Animal2();
将two的引用指向了创建的Animal2类型的对象。传入之后,在help方法中,temp,two指向同一片地址,都指向新创建的对象。
3、如果不加final,temp之前加Animal2不会报错。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,课程中最后的问题是考察代码是否运行正确,出错的位置在何处。
1、这里temp = new Animal2();的前面加不加Animal2,temp都会报错,因为temp在传参的时候被final修饰,不能再去重新指向新的对象。

2、temp是引用,指向对象。同学在这里的问题是什么呢?请同学详细描述一下哦~
3、如下图所示,two在main方法中经过初始化后(这里应该是Animal2 two=new Animal2();),作为参数传入help方法中,所以,这里的temp是已经被初始化后的对象引用哦~


如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星