首页 > 编程 > Java > 正文

java 中内部类的实例详解

2019-11-26 11:29:36
字体:
来源:转载
供稿:网友

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();    }  } 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表