Java 内部类Student如何实现访问外部类People的Message方法

2019-01-02 20:07发布

问题:

请问:内部类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方法
}

}

回答1:

直接访问:
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
--
进阶:
还需要区分是否 静态方法、是否 静态内部类,



标签: