Chinaunix首页 | 论坛 | 博客
  • 博客访问: 524188
  • 博文数量: 151
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 1405
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 14:32
文章分类

全部博文(151)

文章存档

2011年(1)

2010年(23)

2009年(1)

2008年(126)

我的朋友

分类: Java

2008-04-26 15:25:50

一、内部类(嵌套类)是指在一个类中定义的类。关于内部类的几点说明:
    1、内部类可以直接访问嵌套它的类的成员,包括private成员。但是内部类的成员却不能被嵌套它的类直接访问。如:
    class A
    {
        int x = 100;
        private String name;
    
     class B
        {
           int y = 500; 
        } 
    }
B可以访问到x、name,但A访问不到y。

    2、内部类对象保存了一个对外部类对象的引用。当内部类的成员方法试图访问某一变量时,它查找范围的先后顺序是这样的:成员方法->内部类->外部类。也就是说它在本身类中找不到该变量时,会自动到外部类查找。

二、什么情况下使用内部类 举个例子:
    class Outer
    {
       int outer_x = 100;
       void func()
       {
         Inner in = new Inner();
         in.show();
       }
     
       public static void main(String[] args)
       { 
          Outer ot = new Outer();
          ot.func(); 
       } 
    }
   
    class Inner
    {
      void show() 
      {
          Outer ot = new Outer();
          System.out.println("outer_x = "+ot.outer_x);
      }
    }
    如果要想在outer类中访问Inner中的show,而Inner中的show又要调用Outer中的某个成员变量,把上面代码的Inner类该为内部类,就可以不必在Inner中先创建Outer类了。

三、如果内部类前面用static修饰,则这个内部类相当于是外部类,虽然他还是写在一个类的里面。

四、内部类除了在类的内部定义外,还可以在类的方法中定义

五、内部类如何被外部类引用?
   内部类要用public关键字修饰。举个例子
   class Outer
   {
      private int size = 10;
      public class Inner
      {
         public void doStuff()
         {
            System.out.println(++size);
         }
      }
   }
  
   public class TestInner
   {
      public static void main(String[] args)
      {
         Outer outer = new Outer();
         Outer.Inner inner = outer.new Inner();
         inner.doStuff();
      }
   }


 

阅读(1022) | 评论(0) | 转发(0) |
0

上一篇:单态设计模式

下一篇:WinLike工具介绍

给主人留下些什么吧!~~