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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 薆情媬証書 中级黑马   /  2013-10-5 17:45  /  1806 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-10-5 21:21 编辑

情景:
在一个非主函数的外部内中有一个内部类
问题:
如何在该主函数中声明一个该内部类的对象?
class a
{
        class b
       {
             void run()
              {
  
              }
        }
}
public class ThreadDemo
{
        public static void main(String[] args)
        {

  
         }
}

就是如何在main函数中声明一个b对象??(我想应该很简单,但是我不会,别喷哈)
上午在23届发过贴了,可没几个回的,亲们再帮我看看吧!!

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

正序浏览
FFF 发表于 2013-10-5 17:59
代码如下,不知道是否符合您的要求!看毕老师的视频里就说过,一般都不直接调用内部类。这样做(直接调用内 ...

谢谢,受教了!!
回复 使用道具 举报
呵呵,还是这里高手多哈,解决啦。谢谢亲们!!
回复 使用道具 举报
当内部类定义在外部类的成员位置上,而且非私有时,可以在外部其他类中直接建立内部类对象,格式为:

外部类名.内部类  变量名 = 外部类对象.内部类对象

a.b  newB = new a().newb();
回复 使用道具 举报
    在其他外部类中创建内部类的对象的格式是这样的:Outer.Inner inner = new Outer().new Inner();(Outer表示外部类,Inner表示内部类,inner表示内部类的对象)
    所以本题代码如下,只写主函数的部分啊:
  1.     a.b inner = new a().new b(); //这里inner是内部类的对象名称,
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 FFF 于 2013-10-5 18:00 编辑

代码如下,不知道是否符合您的要求!
  1. class a {
  2.         class b {
  3.                 void run() {
  4.                         System.out.println("我直接调用了内部类");
  5.                 }
  6.         }
  7. }

  8. public class Temp10_05 {
  9.         public static void main(String[] args) {
  10.                 a x = new a();
  11.                 a.b y = x.new b();
  12.                 y.run();

  13.         }
  14. }
复制代码
看毕老师的视频里就说过,一般都不直接调用内部类。这样做(直接调用内部类)意义不大!

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

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