正在回答
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 星