访问修饰符
private 访问权限:本类
默认 访问权限:同包
protected 访问权限:同包子类
public 访问权限:都可以
封装
使类中的成员变量都是private;又被成为数据隐藏。
封装的好处:
类的成员变量可以成为只读或者只写的;
类可以对存储 在其成员变量中的内容有一个整体的控制。
类的用户不需要知道类是如何存储数据的。
静态成员
static 的方法不能操作非static的任何属性和方法。
原因:1、 static是类级别,与对象无关。
2、static 修饰的是首先家族的,此时非static的还没被加载到内存,所以无法访问。
写工具类的工具方法时用static修饰。
非static 的方法是可以操作static的任何属性和方法的。
初始化块
{
}
实例初始化块:产生对象的时候自动执行,在父类的构造方法之后,在本类构造方法之前
使用量很少,因为完全可以把代码就写到本类构造方法前几行。
静态初始化块
static{
}在类的加载的时候自动执行,只会执行一次。
使用量很高,通常会把 一些程序运行前的准备工作放在这里,让其在加载期就完成准备。
内部类
成员内部类
1、可以有访问修饰符
2、class文件的名字:外部类类名$内部类类名.class
3、就是一个完整的独立的类
4、在本类的任意非static方法中都可以new出来,在第三方类中必须用外部类对象.new的方式产生内部类对象。
局部内部类
1、不能有访问修饰符
2、class文件的名字:外部类类名$序号+内部类类名.class
3、就是一个完整的独立的类
4、在本方法内可以产生对象,然后使用。
静态内部类
1、可以有访问修饰符
2、class文件的名字:外部类类名$内部类类名.class
3、就是一个完整的独立的类
4、在本类的任意方法中都可以new出来,在第三方类中要new出来,无需产生外部类对象,只需用外部类类名.的方式就可以了。
匿名内部类
由于没有类名,所以是在产生对象的时候用语句告诉JVM它的结构。
只能用1次。
class文件名字:外部类类名+序号.class