幕布斯2575146
2018-05-10 16:49
public class Classdemo {
public static void main(String[] args) {
outer out=new outer();
out.show();
outer.inner in=out.new inner();
in.print();
}
}
class outer{
int num=3;
String name="zhangsan";
void show() {
System.out.println("num="+num+" "+"name"+name);
}
class inner{
int num=8;
String name="lisi";
void print() {
show();
}
}
}
不太懂你意思,我运行程序,没什么错误,具体代码我完全没看,你要是真心想解决问题就描述清楚,你要实现什么功能,这样才能帮你啊,大兄弟!
你应该想的是inner为outer的内部类,所以inner可以直接使用outer的方法来输出自己的值吧。
这是我找的那一节,注意第二条,内部类可以访问外部类的方法,而并没有说内类可以直接使用外类的方法来输出自己的值吧。你可能没意识到,这是继承的概念。
有两种解决方法
1、如果你不想继承,直接把inner的print方法的方法体改为”System.out.println("num="+num+" "+"name"+name);“,应该可以按你的要求运行。
2、我不知道你学过继承没,你想用继承的话,我把代码改成如下,你可以运行一遍。
public class Classdemo{
public static void main(String[] args) {
outer out=new outer();
out.show();
outer.inner in=out.new inner();
in.num=8;
in.name="lisi";
in.show();
}
}
class outer{
int num=3;
String name="zhangsan";
void show() {
System.out.println("num="+num+" "+"name"+name);
}
class inner extends outer{}
}
有什么问题欢迎回复
Java入门第二季 升级版
530715 学习 · 6091 问题
相似问题