外部类怎么输出内部类的成员?
public class Person { public int age; //创建一个获取内部类方法 public Heart getHeart() { new Heart().temp=110; //外部类访问内部类属性需要通过内部类实例 无法直接访问 System.out.println(new Heart().temp); return new Heart(); } //创建一个外部类方法 public void eat() { System.out.println("人会吃东西"); } class Heart{ int age=15; //优先访问内部类定义属性 int temp; //创建一个与外部类同名的内部类方法 public void eat() { System.out.println("我是内部类吃东西方法"); } //创建一个内部类独立方法 public String beat() { eat(); //内外同名方法优先调用内部类 return Person.this.age+"岁的心脏在跳动"; //访问外部类同名信息 } } }
public class PersonTest { public static void main(String[] args) { //访问外部类 Person lili=new Person(); lili.age=12; System.out.println(lili.getHeart().temp); } }
老师课程中外部类中也可以访问内部类成员 不过要通过内部类的实例
但是我为什么不能输出temp的结果呢 ?输出了也为0 不知道怎么理解了
12
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕小班
2019-11-18 17:16:07
同学你好,1、new Heart()--》调用new关键字,创建一个新的Heart类型的对象。所以每次的new Heart()都是创建一个新的Heart对象。
2、输出前那一句赋值不算吗
如下的赋值语句:
new Heart()创建一个新的Heart对象,如上所示,第7行调用new 关键字创建一个Heart对象,对这个对象的temp属性赋值为110,在第八行的输语句中,又创建一个新的Heart类型的对象,输出这个新的Heart类型的对象temp属性,此时的temp属性还是初始值0。
3、调用外部类给内部类的某个属性赋值,例如:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星