首页 > 编程 > Java > 正文

java 内部类小结

2019-11-06 06:53:41
字体:
来源:转载
供稿:网友

内部类:指的是一个类的定义放在另一个类的内部。内部类作为外部类的一个成员,并且依附于外部类而存在的。

              内部类仍是一个独立的额的类,每个内部类都能独立的继承自一个(接口)的实现,所以无论外围类是否已经集成了某个接口的实现,对于内部类都没有影响。

内部类分为4种:

              成员内部类:在一个包含类中定义的不使用静态修饰符的类型                                   与成员变量、方法同一个层次                                    可以访问包含类所有的成员                                    在包含类中中创建成员内部类实例的语法:                                    this.new Innerclass();                                    在包含类外创建成员内部类实例的语法                                    (new Outerclass()).new Innerclass();

              方法内部类:定义在方法体中的类                                   方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化                                   最少使用的内部类形式                                   如同本地变量的定义,不允许有访问修饰符                                     只能访问用final修饰的本地变量

              匿名内部类:没有名字的内部类                                   只用到类的一个实例                                   类在定义后马上用到                                   类非常小(OLD SUN推荐是在4行代码以下)                                   给类命名并不会导致你的代码更容易被理解

                                

              静态内部类:不能与包含类同名                                    编译后生成一个完全独立的类文件                                    只能访问包含类所有静态变量、静态方法                                    要创建嵌套类的对象,并不需要其外围类的对象                                    创建静态内部类实例的语法:                                    Outer.Inner inner = new Outer.Inner();

package study3_3;public class demo01 { public static void main(String[] args) {  //Outer.Inner2 inner2 = new Outer.Inner2();    Outer outer = new Outer();  outer.setName("tom");  System.out.PRintln(outer.innerClass());    //要获得一个内部类,必须先创建外部类  /*Outer outer = new Outer();  Outer.Inner inner = outer.getInnerClass();    inner.getInfo();    Outer.Inner inner2 = outer.new Inner();*/ }} package study3_3;public class Outer { private String name; public String innerClass(){  class Inner{   public String getInfo(){    return"hello:"+name;   }  }  Inner inner =new Inner();  return inner.getInfo(); } public String getName(){  return name; } public void setName(String name){  this.name=name; } public String getInfo(){  return name; } //成员内部类 class Inner{  private String str;  public String getInfo(){   return str +name;  }  //静态内部类  /*static class Inner2{   public void pribtInfo(){//    System.out.println(name);   }  }*/ }}

                                                                   


上一篇:Java泛型详解

下一篇:java equal和==的比较

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