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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尹善波 中级黑马   /  2012-8-1 00:49  /  1791 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


//多线程中的内部类
class ThreadTest
{
  public static void main(String[] args)
  {
    new Thread()//这里是把Thread默认为是这个内部类的父类吗,可不可以new另外的
{
  public void run()
   {
    for(int x=0; x<100; x++)
     {
   System.out.println(Thread.currentThread().getName()+"...1.."+x);
     }
   }
}.start();
  //Runnable r  = new Runnable()
   new Runnable()//接口不是也可以创建匿名内部类吗;为什么这么些会错
                  //而注释的却可以
  {
      public void run()
        {
             for(int x=0; x<100; x++)
                   {
        System.out.println(Thread.currentThread().getName()+"...3.."+x);
       }
   }
  }.start();
  //new Thread(r).start();
}
}
//如果匿名内部类中有静态方法,那么这些方法访问外部类会不会受局限

评分

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

查看全部评分

2 个回复

正序浏览

RE: 内部类问题

以解决,,谢谢了
回复 使用道具 举报
class ThreadTest
{
   public static void main(String[] args)
  {
     new Thread()//这里是把Thread默认为是这个内部类的父类吗,可不可以new另外的? 这里是这个内部类的父类。匿名内部类,{ }中的就是要继承或者实现Thread().若是new其他的,就是匿名其他类了。
{
   public void run()
    {
     for(int x=0; x<100; x++)
      {
    System.out.println(Thread.currentThread().getName()+"...1.."+x);
      }
    }
}.start();
   //Runnable r  = new Runnable()
    new Runnable()//接口不是也可以创建匿名内部类吗;为什么这么些会错?出错是因为Runnable()不能调用.start()方法,new Thread(r).start();才是启动线程。如果把.start()去掉,就没有问题了。但由于匿名了,所以也无法达到启动线程的目的。
                   //而注释的却可以?注释了的也不能直接调用.start()方法,但可以通过new Thread(r).start();启动线程。
   {
       public void run()
         {
              for(int x=0; x<100; x++)
                    {
         System.out.println(Thread.currentThread().getName()+"...3.."+x);
        }
    }
   }.start();
  //new Thread(r).start();
}
}
//如果匿名内部类中有静态方法,那么这些方法访问外部类会不会受局限?静态方法只能访问静态
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马