内部类

来源:互联网 发布:nodejs java性能对比 编辑:程序博客网 时间:2024/05/16 10:24
1、定义:在一个类的内部定义类,这样的类即为内部类

      分类:成员内部类、静态内部类、方法内部类

1.1 成员内部类

在成员内部类中可以访问外部类的所有成员

public class Oper  {   public static void main(String[]args){           Outer outer =new Outer();  //创建外部类对象          outer.test();     //调用test()方法          //如果想通过外部类去访问内部类,则需要通过外部类对象去创建内部类对象。语法格式为          //外部类名.内部类名   对象名 = new 外部类名().new 内部类名();          Outer.Inner inner=new Outer().new Inner();            inner.show(); }     }   class Outer{private int num=3;public void test(){Inner inner =new Inner();inner.show();} class Inner{void show(){System.out.println("num="+num);}}}
运行结果为:num=3

num=3

1.2   静态内部类

使用static关键字修饰一个成员内部类,该内部类被称为静态内部类,可以在不创建外部类对象的情况下被实例化。

语法格式:外部类名.内部类名   对象名 = new 外部类名.内部类名();

public class Oper  {   public static void main(String[]args){           Outer.Inner inner=new Outer.Inner();            inner.show(); }     }   class Outer{private static int num=3;//定义一个静态内部类 static class Inner{void show(){System.out.println("num="+num);}}}
注意:1、在静态内部类中只能访问外部类的静态成员,否则编译出错;

    2、在静态内部类中可以定义静态的成员,而在非静态的内部类中不允许定义静态的成员。

1.3  方法内部类:在成员方法中定义的类,只能在当前方法中被使用

public class Oper  {   public static void main(String[]args){           Outer outer=new Outer();  //创建外部类对象          outer.test(); //调用test()方法}     }   class Outer{private static int num=3;public void test(){//创建方法内部类class Inner{void show(){System.out.println("num="+num);}  }Inner inner=new Inner(); //创建内部类对象inner.show();//调用内部类的方法}}
 Inner是方法内部类,因此程序只能在方法中创建该类的实例对象并调用show()方法。

0 0
原创粉丝点击