竹木人

----------------隐感存理,去伪存真,做个安分的守候者

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、重写<Override>,重载<Overloading>

重写相对于父类,重载下相对于本类,都是Java多态的一种表现形式。

2、java内部类

刚开始学,没必要对每个功能都细究,自顶向下,罗列如下:

<1>内部类定义:顾名思义,在类内部定义的类便是一个内部类

<2>内部类的简单例子:

public class OutClass()
{
  public class InsideClass()
  {
    ...   } }

<3>内部类的使用:(通过一个内部类来访问外部类成员变量)

public class Test2{ 
  private
int num ;   public Test2(){   }   public Test2(int num){   this.num = num;   }   private class Inner{   public Test2 getTest2(){   return Test2.this;   }   public Test2 newTest2(){   return new Test2();   }   }   public static void main(String [] args){   Test2 test = new Test2(5);   Test2.Inner inner = test.new Inner();   Test2 test2 = inner.getTest2();   Test2 test3 = inner.newTest2();   System.out.println(test2.num);   System.out.println(test3.num);   }
}
输出结果为:5 0
解释:只要通过外部类新建了一个内部类对象,内部类便与外部类有了一定的关联,无须限制便可访问外部类成员变量、方法
   用以下方法:外部类.this;
原理:在外部类创建内部类对象时,内部类会秘密的捕获一个指向外部类的引用,具体机制是编译器的问题,初期没必要细究

<4>内部类的封装与隐藏实现细节:

public class Example {  
     
    private class InsideClass implements InterfaceTest  
    {  
         public void test()  
         {  
             System.out.println("This is test");  
         }  
    }  
    public InterfaceTest getIn()  
    {  
        return new InsideClass();  
    }  
}
//程序测试
public class TestExample { public static void main(String args[]) { Example a=new Example(); InterfaceTest a1=a.getIn(); a1.test(); } }
解释:很明显,Example类的InterfaceTest()方法返回的是一个,InsideClass对象,加上InsideClass又是私有的所以,我们如果不认真看代码,根本
   看不到InsideClass的具体实现,这个备用,貌似比较高端

OK,就到这!

 

posted on 2012-06-14 15:59  竹木人  阅读(1325)  评论(0编辑  收藏  举报