正在回答
2回答
new Heart().temp=12;其实是这行代码报错了,在成员变量定义的位置,定义一个变量可以,但是new Heart().temp=12;这个不是变量定义的语句了,所以不能写在这个地方。Java中的代码除声明语句外,其他要写到方法里。祝学习愉快!
Ironxi_work
2018-01-28 20:48:22
已解决自己问的问题,现在问题如下: 想请教一下各位老师和大神,为何在Personal当中第四行报错: 代码如下: package com.imooc.people; //外部类 public class Personal { public int age =18;//为何此行报错? new Heart().temp=12; public Heart getHeart() { return new Heart(); } public void eat() { System.out.println("人会吃东西 "); } /* * 成员内部类 1.内部类在外部使用时,无法直接实例化,需要借助外部类实例化才能访问; * 2.内部类的访问修饰符,可以任意,但访问权限会受到影响; * 3.内部类的可以直接访问外部类的成员,如果出项同名属性,优先访问内部类中定义的; * 4.可以使用外部类中.this。成员的方式访问外部类当中同名的信息; * 5.外部类访问内部类不能直接访问,需要通过new 内部类()。对象名; * 6.内部类编译后.class文件命名:外部类$内部类。class; */ public class Heart { int age = 13; int temp = 223; public String beat() { return Personal.this.age + "岁的心脏在跳动"; // 访问personal类中的成员; } } } package com.imooc.people; public class PeopleTest { public static void main(String[] args) { // TODO Auto-generated method stub Personal lili = new Personal(); lili.age = 12; // 获取内部类的实例对象,方案一:new 外部类()。new 内部类(); Personal.Heart myHeart = new Personal().new Heart(); System.out.println(myHeart.beat()); // 获取内部类的实例对象,方案二:外部类对象。new 内部类(); myHeart=lili.new Heart(); System.out.println(myHeart.beat()); // 获取内部类的实例对象,方案三:外部类对象。获取方法; myHeart=lili.getHeart(); System.out.println(myHeart.beat()); } }
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星