欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 中内部类的实例详解

程序员文章站 2024-02-25 15:46:57
java 中内部类的实例详解 一:内部类可直接访问外部类的成员变量,包括外部类私有的成员变量   二:外部类要访问内部类的成员变量,需要建立内部...

java 中内部类的实例详解

一:内部类可直接访问外部类的成员变量,包括外部类私有的成员变量  

二:外部类要访问内部类的成员变量,需要建立内部类的对象  

class outer{ 
   int x=110; 
   public void show(){ 
      system.out.println("外部类的x="+x); 
   } 
  public void showinner(){ 
      inner inner=new inner(); 
      inner.show(); 
      system.out.println(inner.x); 
   }  
  class inner{//内部类 
    int x=220; 
    public void show(){ 
         system.out.println("内部类的x="+x); 
      } 
  } 
} 
 
 
 
public class outerdemo { 
   public static void main(string[] args) { 
     outer outer=new outer(); 
     outer.show(); 
     outer.showinner(); 
     outer.inner outerinner=new outer().new inner();//特殊情况.外部类直接访问内部类成员变量 
     outerinner.show(); 
   } 
 
} 

内部类之所以可以直接访问外部类的成员变量,是因为内部类持有外部类的引用。格式:外部类名.this 

如:system.out.println("x="+outer.this.x);//访问外部类的x  

class outer{ 
   int x=110; 
   class inner{ 
     int x=220; 
     public void show(){ 
        int x=330; 
        system.out.println("x="+x);//访问show()中的x 
        system.out.println("x="+this.x);//访问内部类的x 
        system.out.println("x="+outer.this.x);//访问外部类的x 
 
     } 
   } 
  void showinner(){ 
     inner inner=new inner(); 
     inner.show(); 
  } 
} 
 
 
 
public class outerdemo { 
    public static void main(string[] args) { 
      outer outer=new outer(); 
      outer.showinner(); 
     
    } 
 
} 

在内部类(一)和内部类(二)中,内部类都是作为全局变量出现的即定义在了类里  ,在此奖内部类定义为局部变量,即定义在方法里.尤其注意:此时内部类要想访问局部变量,那么此  局部变量必须是被final修饰的,如此处的y  

 package cn.com; 
class outer { 
   int x = 110; 
   public void show() { 
      final int y=99; 
      class inner {// 内部类 
       int x = 880; 
       public void showinner() { 
         system.out.println("局部变量y=" + y); 
        } 
      } 
   new inner().showinner(); 
   } 
 
} 
 
public class outerdemo { 
   public static void main(string[] args) { 
      outer outer = new outer(); 
      outer.show(); 
   } 
 
} 

 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!