天天看点

java语言基础(46)——内部类概述及使用

内部类定义:

把类定义在其它类内部,这个类就被称为内部类。

内部类的访问特点:

(1)内部类可以直接访问外部类的成员,包括私有

(2)外部类要访问内部类的成员,必须new对象。

内部类的分类:

(1)成员内部类:在成员位置定义的类

(2)局部内部类:在方法内部定义的类

成员内部类的直接调用:

格式:外部类名.内部类名   对象名 = 外部类对象.内部类对象。

例如:

class Outer
{
  class Inner
  {
    public void show(){
      System.out.println("Inner show");
    }
  }
}

class InnerClassTest
{
  public static void main(String[] args){
          // 调用格式
    Outer.Inner oi = new Outer().new Inner();
    oi.show();//输出  Inner show
  }
}      

但是上述调用方法,有悖于我们的封装思想。既然是定义在类内部的类,就是为了更好的提现封装的思想。不能轻易让外界访问,所以我们一般给成员内部类加  private 权限修饰,然后,我们可以通过外部类的一个公开的方法访问内部类。

静态修饰后的内部类的调用:

静态可以修饰内部类,是因为内部类可以看做是类的成员。

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

例如:

class Outer
{
  static class Inner
  {
    public void show(){
      System.out.println("static Inner show");
    }
    public static void show2(){
      System.out.println("static Inner show2");
    }
  }
}

class InnerClassTest
{
  public static void main(String[] args){
      // 调用格式
    Outer.Inner oi = new Outer.Inner();
    oi.show();//输出  static Inner show
      oi.show2();//输出  static Inner show2
    // 由于Inner是静态类,并且show2是静态方法,
    // 我们还可以这样调用 show2
    Outer.Inner.show2();
  }
}      

继续阅读