深入理解Java嵌套类和内部类-创新互联

 一、什么是嵌套类及内部类

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的江陵网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种:


  其一、在一个类(外部类)中直接定义的内部类;


  其二、在一个方法(外部类的方法)中定义的内部类;


  其三、匿名内部类。


下面,我将说明这几种嵌套类的使用及注意事项。

二、静态嵌套类


如下所示代码为定义一个静态嵌套类,


public class StaticTest { 
  private static String name = "javaJohn";    
  private String id = "X001"; 
  static class Person{ 
    private String address = "swjtu,chenDu,China"; 
    public String mail = "josserchai@yahoo.com";//内部类公有成员 
    public void display(){ 
      //System.out.println(id);//不能直接访问外部类的非静态成员 
      System.out.println(name);//只能直接访问外部类的静态成员 
      System.out.println("Inner "+address);//访问本内部类成员。 
    } 
  } 
 
  public void printInfo(){ 
    Person person = new Person(); 
    person.display(); 
    //System.out.println(mail);//不可访问 
    //System.out.println(address);//不可访问 
    System.out.println(person.address);//可以访问内部类的私有成员 
    System.out.println(person.mail);//可以访问内部类的公有成员 
 
  } 
  public static void main(String[] args) { 
  StaticTest staticTest = new StaticTest(); 
  staticTest.printInfo(); 
} 
} 

网站栏目:深入理解Java嵌套类和内部类-创新互联
当前网址:http://pwwzsj.com/article/ddjhdh.html