A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨锦 中级黑马   /  2012-9-2 12:04  /  1859 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨锦 于 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();
  }
}
}

评分

参与人数 1技术分 +1 收起 理由
田建 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 焦晨光 于 2012-9-2 12:16 编辑

外部类不能直接访问内部类的成员变量,必须创建内部类对象进行访问
然后用类名调用的方式访问:类.成员变量
回复 使用道具 举报
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
包晗 + 1

查看全部评分

回复 使用道具 举报
// 内部类可以访问外部类的成员变量,只要加A.this.name就可以了,
// 那外部类能不能访问内部类的成员变量呢?要怎么访问
B b = new B();
System.out.println(b.name);
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马