定义在⼀个类内部的类叫内部类,包含内部类的类称为外部类。外部类按常规的类访问⽅式使⽤内部类,唯⼀的差别是外部类可以访问内部类的所有⽅法与属性,包括私有⽅法与属性。
一、Java中类的分类
定义在⼀个类内部的类叫内部类,包含内部类的类称为外部类。
内部类可以声明public、protected、 private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final 的,也可以实现特定的接⼝。
外部类按常规的类访问⽅式使⽤内部类,唯⼀的差别是外部类可以访问内部类的所有⽅法与属性,包括私有⽅法与属性。
二、内部类与静态类的区别
1,静态内部类可以有静态成员(⽅法,属性),⽽⾮静态内部类则不能有静态成员(⽅法,属性)。
2,静态内部类只能够访问外部类的静态成员,⽽⾮静态内部类则可以访问外部类的所有成员(⽅法,属性)。
3,实例化⼀个⾮静态的内部类的⽅法:
a.先⽣成⼀个外部类对象实例 OutClassTest oc1 = new OutClassTest(); b.通过外部类的对象实例⽣成内部类对象 OutClassTest.InnerClass no_static_inner = oc1.new InnerClass();
4,实例化⼀个静态内部类的⽅法:
a.不依赖于外部类的实例,直接实例化内部类对象 OutClassTest.InnerStaticClass inner = new OutClassTest.InnerStaticClass();
b.调⽤内部静态类的⽅法或静态变量,通过类名直接调⽤ OutClassTest.InnerStaticClass.static_value OutClassTest.InnerStaticClass.getMessage()
以上就是关于Java中类与静态类的知识希望对大家有帮助。