请问:内部类Student如何实现访问外部类People的Message方法?
代码如下:
//外部类People
public class People {
private String name = "LiLei"; //外部类的私有属性
//外部类Message()方法
public void Message(){
System.out.print("内部类如何实现访问外部类的方法");
}
//内部类Student
public class Student {
String ID = "20151234"; //内部类的成员属性
//内部类的方法
public void stuInfo(){
System.out.println("访问外部类中的name:" + name);
System.out.println("访问内部类中的ID:" + ID);
System.out.println("访问外部类中的方法"+new People.Message());//这里想访问外部类的Message方法为什么实现不了?
}
}
//测试成员内部类
public static void main(String[] args) {
People a = new People(); //创建外部类对象,对象名为a
Student b = a.new Student(); //使用外部类对象创建内部类对象,对象名为b
// 或者为 People.Student b = a.new Student();
b.stuInfo(); //调用内部对象的suInfo方法
}
}
直接访问:
public class Test {
public void message() {
System.out.println("outer message");
}
public class Stu {
public void print() {
System.out.println("print");
message();
}
}
public static void main(String[] args) {
// 181225测试
Test t = new Test();
Stu st = t.new Stu();
st.print();
--
输出:
print
outer message
--
进阶:
还需要区分是否 静态方法、是否 静态内部类,
谢谢,我想知道为什么message方法是直接访问,还是实际上是通过外部类的对象来调用的?
@java小菜鸡2号:
一切皆对象,
内部类、方法都是外部类的组成部分,是兄弟姐妹,为何不能互相帮助?
@行者Ben: 好的,谢谢你