黑马程序员技术交流社区

标题: 内部类 外部内 问题 [打印本页]

作者: 彭彪    时间: 2013-6-14 10:49
标题: 内部类 外部内 问题
本帖最后由 彭彪 于 2013-6-14 12:19 编辑
  1. package com.itheima;
  2. /*
  3. *7、 创建一个包含实例内部类的类,外部类中定义一个名为str的String字符串并初始化任意值,在内部类中定义
  4. *跟外部类同种类型且同名的变量,并在内部类中定义一个方法,分别打印外部类和内部类的变量。 */

  5. public class Test7 {
  6.         public static void main(String[] args)
  7.         {
  8.                 // 建立一个内部类对象,同时需一起建立外部类对象   
  9.                 Out.Inner ou = new Out().new Inner();
  10.             // 调用内部类的方法
  11.             ou.print();
  12.     }
  13.         
  14.         public class Out // 创建一个外部类
  15.         {
  16.             String str = "out";// 定义一个外部类变量
  17.             class Inner // 创建一个内部类
  18.             {
  19.                 String str = "inner"; // 创建一个内部类变量
  20.                 void print() // 定义一个内部类方法
  21.                 {
  22.                     System.out.println("外部类变量str="+Out.this.str); // 在this前加上外部类名,打印外部类变量
  23.                     System.out.println("内部类变量str="+this.str); // 用this关键字打印内部类的变量
  24.                 }
  25.             }
  26.             
  27.         }

  28. }
复制代码
No enclosing instance of type Test7 is accessible. Must qualify the allocation with an enclosing instance of type Test7 (e.g. x.new A() where x is an instance of Test7).

        at com.itheima.Test7.main(Test7.java:10)


QQ截图20130614104456.png (24.28 KB, 下载次数: 0)

QQ截图20130614104456.png

作者: x378320002    时间: 2013-6-14 11:37
同学,这个问题在于 你有一个大括号放错了位置,你的test7类的大括号都跑哪去了你看看,
这不成out都是test7的内部类了么,仔细看错误提示~~~
作者: 彭彪    时间: 2013-6-14 12:18
x378320002 发表于 2013-6-14 11:37
同学,这个问题在于 你有一个大括号放错了位置,你的test7类的大括号都跑哪去了你看看,
这不成out都是test ...

谢谢。太马虎了。




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