posts - 51, comments - 17, trackbacks - 0, articles - 9
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

java 内部类

Posted on 2007-04-08 22:13 chenweicai 阅读(122) 评论(0)  编辑  收藏


1。类中定义内部类

public class Outer {

 private int outer_i = 100;//内部类可以访问外部类的变量
 
 void test(){
  Inner inner = new Inner();
  inner.display();
 }
 
 //当一个类中的程序代码要用到另外一个类的实例对象,
 //而另外一个类的程序代码又要访问第一个类的成员时
 // 将另外一个类作成第一个类的内部类。
 class Inner{
  
  private int inner_i;
  //内部类的成员只有在内部类的范围之内是可知的,
  //并不能被外部类使用
  
  void display(){
   System.out.println("display: outer_i = " + outer_i);
  }
 }
}


 public static void main(String[] args) {

  Outer outer = new Outer();
  outer.test();
 }

2.

public class Outer {

 private int size = 1;
 
 public void print(){
  Inner inner = new Inner();
  inner.method(11);
 }
 
 public class Inner{
  private int size = 3;
  
  public void method(int size){
   size++;//method的形参
   this.size++;//Inner类中的成员变量
   Outer.this.size++;//Outer类中的成员变量
   
   System.out.println("method size is :" +size);
   System.out.println("Inner size is :" + this.size);
   System.out.println("Outer size is :" + Outer.this.size);
  }
 }
 
 public static void main(String[] args){
  Outer outer = new Outer();
  outer.print();
 }
}

3.内部类被外部引用

public class Outer {

 private int size = 10;
 
 //内部类声明为public 可从外部类之外被调用
 public class Inner{
  public void print(){
   System.out.println(++size);
  }
 }
}

public class test {


 public static void main(String[] args) {

  Outer outer = new Outer();
  Outer.Inner inner = outer.new Inner();
  inner.print();
 }
}

4.方法中定义内部类

public class Outer {

 int outer_i = 100;
 String str = new String("Between");
 
 void test(){
  for(int i=0; i<5; i++){
   
   class Inner{
    void display(){
     System.out.println("display: outer_i = " + outer_i);
    }
   }
   
   Inner inner = new Inner();
   inner.display();
  }
 }
 
 //在方法中定义的内部类只能访问方法中的final类型的局部变量
 //因为用final定义的局部变量相当于一个常量,她的生命周期超出了方法运行的生命周期
 public void amethod(final int iArgs){
  int it315;//此变量内部类不能访问
  
  class Bicycle{
   public void sayhello(){
    System.out.println(str);
    System.out.println(iArgs);
   }
  }
  Bicycle bicycle = new Bicycle();
  bicycle.sayhello();
 }
}


 public static void main(String[] args) {

  Outer outer = new Outer();
  outer.test();
  outer.amethod(18);
  
 }


只有注册用户登录后才能发表评论。


网站导航: