JAVA面向对象(十 八)------ 内部类

一、内部类定义

一个类可以包含属性、方法,实际上java的类也允许类嵌套,即类中也可以包含类,被包含的类就叫内部类。代码形式如下:

class Outer{
    private String name = "我是私有属性";
    public void info(){
        Inner inner = new Inner();
        inner.print();
    }
    // 定义内部类
    class Inner {
        public void print(){
            System.out.println(Outer.this.name);
        }
    }

}

public class InnerClassDemo {
    public static void main(String[] args) {
        Outer out = new Outer();
        out.info();
    }
}
我是私有属性

二、内部类的作用

内部类的存在从结构角度实际上是破坏了正常类的结构,之所以还存在内部类主要还是因为内部类可以无限制的访问外部类的私有属性。

三、内部类说明

  • 内部类可以访问外部类的私有成员和方法,外部类也可以轻松访问内部类的私有成员和方法;
  • 使用内部类后,内部类和外部类间的不需要通过setter或getter方法进行访问;
  • 内部类只给其外部类使用,可以用private修饰;

四、static定义的内部类

static定义的内部类可以理解成是一个外部类,static定义的都是独立于类的结构。

五、方法中定义的内部类

内部类可以在任意结构中定义,包括类、方法、代码块。方法中定义的内部类如下:

class Outer{
    private String name = "我是私有属性";
    public void info(){
        // 定义内部类
        class Inner {
            public void print(){
                System.out.println(Outer.this.name);
            }
        }
        new Inner().print();
    }
}
public class MethodInnerClass {
    public static void main(String[] args) {
        new Outer().info();
    }
}

六、匿名内部类

发布了92 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41231928/article/details/103006284