首页 新闻 会员 周边

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

0
悬赏园豆:50 [已解决问题] 解决于 2018-12-28 19:34

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

}

java小菜鸡2号的主页 java小菜鸡2号 | 初学一级 | 园豆:159
提问于:2018-12-25 11:51
< >
分享
最佳答案
0

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

收获园豆:50
快乐的凡人721 | 老鸟四级 |园豆:3918 | 2018-12-25 12:01

谢谢,我想知道为什么message方法是直接访问,还是实际上是通过外部类的对象来调用的?

java小菜鸡2号 | 园豆:159 (初学一级) | 2018-12-25 16:17

@java小菜鸡2号:
一切皆对象,
内部类、方法都是外部类的组成部分,是兄弟姐妹,为何不能互相帮助?

快乐的凡人721 | 园豆:3918 (老鸟四级) | 2018-12-25 17:33

@行者Ben: 好的,谢谢你

java小菜鸡2号 | 园豆:159 (初学一级) | 2018-12-28 19:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册