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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭彪 中级黑马   /  2013-6-14 10:49  /  2156 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭彪 于 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

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

2 个回复

倒序浏览
同学,这个问题在于 你有一个大括号放错了位置,你的test7类的大括号都跑哪去了你看看,
这不成out都是test7的内部类了么,仔细看错误提示~~~

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
x378320002 发表于 2013-6-14 11:37
同学,这个问题在于 你有一个大括号放错了位置,你的test7类的大括号都跑哪去了你看看,
这不成out都是test ...

谢谢。太马虎了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马