内部类:将类定义在类的内部,那么该类就称为内部类
举例:
Java中不能被实例化的类型有哪些?
1.抽象类
2.接口
3.所有的构造方法都被private修饰的类型
4.内部类不能被外界直接实例化
为什么使用内部类:提高类的安全性
内部类的特点:
内部类可以直接访问外部类的所有的成员变虽和成员方法
外部类如果要访问内部类成员,必须创建内部类对象来实现
内部类编译后的class文件命名有别于普通类:外部类$内部类.class Qutter$lnner.class
要访问内部类的成员是非常麻烦的,且造成程序耦合性增强,可读性降低,内部类慎用
成员内部类:
如何在外部获取内部类对象
内部类非私有
因为内部类非私有,所以我们可以通过如下的格式直接获取内部类的对象
格式:外部类.内部类变量名称=外部类对象.内部类对象;
public static void main(String[] args) { Outter.Inner inner = new Outter().new Inner(); inner.show(); } } class Outter{ private String name = "张三"; class Inner{ public void show(){ System.out.println(name); } } void info(){ } }
私有化
内部私有
当变量名相同的情况