黑马程序员技术交流社区

标题: 如何在内部类中访问外部类中的成员??? [打印本页]

作者: 茄子    时间: 2014-6-2 20:41
标题: 如何在内部类中访问外部类中的成员???
本帖最后由 茄子 于 2014-6-2 21:31 编辑

下面是一段代码。要求是:在内部类中,访问外部类中的成员变量和成员方法,
我的结题思路:我是在内部类中建立了一个外部类的对象,来访问的外部类的成员变量和成员方法,这符不符合要求??

如果不符合??该怎么做呢??如果符合要求,那么,请问,还有其他的方法吗??

急啊
class Student
{
        int num=10;
        public void printName()
        {
                System.out.println("Student  run");
        }
        class GoodStudent                          //在外部类中定义一个内部类.           并且访问外部成员,并调用外部函数。
        {
                public void methord()
                {
                        Student x=new Student();
                        x.printName();
                        System.out.println("x=  "+x.num);                        
                }
               
        }
        public void function()                   //在外部类函数中创建内部类对象,调用内部类函数。
        {
                GoodStudent a=new GoodStudent();
                a.methord();
        }
}


public class InnerClassTest {


        public static void main(String[] args)
        {
                Student a = new Student();
                a.function();                    //在外部类函数中创建内部类对象,调用内部类函数。


        }


}



作者: 123_yaya    时间: 2014-6-2 20:49
楼主代码不能复制么?这是我以前写的,楼主参照着做咯。
  1. public class Test6 {
  2.        private int outnum=8;
  3.        public void Show()
  4.        {
  5.                System.out.println("外部类方法");
  6.        }
  7.        private class Inner
  8.        {
  9.                public void method()
  10.                {  
  11.                        //访问外部成员变量
  12.                        System.out.println(Test6.this.outnum);
  13.                        //调用外部函数
  14.                        Test6.this.Show();
  15.                }
  16.        }
  17.       public static void main(String[] args) {
  18.               //创建内部类对象
  19.                 Test6.Inner obj=new Test6().new Inner();
  20.                 //调用内部类函数
  21.                 obj.method();
  22.         }
  23. }
复制代码

作者: 茄子    时间: 2014-6-2 21:14
123_yaya 发表于 2014-6-2 20:49
楼主代码不能复制么?这是我以前写的,楼主参照着做咯。

嗯嗯,看到了!!谢谢
我一直以为写在输出语句里面的,不叫调用!!

还有一个问题就是,我刚才写的那中创建外部类对象的调用可以吗??
作者: 唤月    时间: 2014-6-2 21:23
可以啊.....
作者: 茄子    时间: 2014-6-2 21:30
唤月 发表于 2014-6-2 21:23
可以啊.....

诺,解决了!!谢谢!!
作者: ゞ导火索゛    时间: 2014-6-2 23:20
可以不用再内部类中实例化外部类的,你那样写没有错,但是建议是这样写,Test6.this.outnum  Test6.this.show()。

作者: 茄子    时间: 2014-6-3 10:51
ゞ导火索゛ 发表于 2014-6-2 23:20
可以不用再内部类中实例化外部类的,你那样写没有错,但是建议是这样写,Test6.this.outnum  Test6.this.sh ...

嗯嗯,问题解决了,不过还是谢谢你!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2