黑马程序员技术交流社区

标题: 一个问题【已解决】 [打印本页]

作者: 杨锦    时间: 2012-9-2 12:04
标题: 一个问题【已解决】
本帖最后由 杨锦 于 2012-9-3 15:53 编辑

class Test {

public static void main(String[] args) {
  A a = new A();
  A.B b = a.new B();  
  
  a.name = "aaa";
  b.name = "bbb";
  
  a.fun();
  b.fun();
}
}
class A {
String name;
void fun() {
  System.out.println("A.fun(), name is " + name);
}                                //内部类可以访问外部类的成员变量,只要加A.this.name就可以了,//那外部类能不能访问内部类的成员变量呢?要怎么访问

class B {   
  String name;
  void fun() {
   String name = "ccc";
   System.out.println("B.fun(), name is " + this.name + ", Outer class name is " + A.this.name);  
   A.this.fun();
  }
}
}

作者: 焦晨光    时间: 2012-9-2 12:11
本帖最后由 焦晨光 于 2012-9-2 12:16 编辑

外部类不能直接访问内部类的成员变量,必须创建内部类对象进行访问
然后用类名调用的方式访问:类.成员变量
作者: 芦曦    时间: 2012-9-2 13:34
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Outer o = new Outer();
  6.                 o.method();
  7.         }
  8. }
  9. class Outer
  10. {
  11.         private int x=3;
  12.                 class Inner//内部类
  13.                 {
  14.                         int x=4;//内部类的成员变量
  15.                         void show()
  16.                         {
  17.                                 System.out.println(x);
  18.                         }
  19.                 }
  20.         void method()
  21.         {
  22.                 Inner in =new Inner();//外部类访问内部类必须建立内部类对象
  23.                 in.show();//这个是外部类访问内部类的方式。
  24.         }
  25. }
复制代码

作者: AngieFans85    时间: 2012-9-2 20:43
// 内部类可以访问外部类的成员变量,只要加A.this.name就可以了,
// 那外部类能不能访问内部类的成员变量呢?要怎么访问
B b = new B();
System.out.println(b.name);
作者: AngieFans85    时间: 2012-9-2 20:44
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 A a = new A();
  4.                 A.B b = a.new B();

  5.                 a.name = "aaa";
  6.                 b.name = "bbb";

  7.                 a.fun();
  8.                 b.fun();
  9.         }

  10. }

  11. class A {

  12.         String name;

  13.         void fun() {
  14.                 System.out.println("A.fun(), name is " + name);

  15.                 // 内部类可以访问外部类的成员变量,只要加A.this.name就可以了,
  16.                 // 那外部类能不能访问内部类的成员变量呢?要怎么访问
  17.                 B b = new B();
  18.                 System.out.println(b.name);
  19.         }

  20.         class B {
  21.                 String name;

  22.                 void fun() {
  23.                         // String name = "ccc";
  24.                         System.out.println("B.fun(), name is " + this.name
  25.                                         + ", Outer class name is " + A.this.name);
  26.                         A.this.fun();
  27.                 }
  28.         }

  29. }
复制代码





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