JAVA总结(修饰符)
修饰符:
访问修饰符(在类中声明,供别的类制定):public、private、protected、default
访问权限:公开、默认的、受保护的、私有的
非访问修饰符:final、static、abstract、synchronized
访问修饰符:
是用来控制其他类对该类的类、实例变量、构造方法、实例方法的访问权限。Java的访问权限有4种:
public 公开的、适用对象:类、接口、变量、方法。
protected 受保护的、适用对象:变量、方法。
默认的(default),没有任何关键字来表示、适用对象:类、接口、变量、方法。
private 私有的、适用对象:变量、方法。
(声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。)
修饰符 |
当前类 |
同包的类 |
同包的子类 |
异包 |
异包的子类 |
public |
√ |
√ |
√ |
√ |
√ |
protected |
√ |
√ |
√ |
× |
√ |
默认的 |
√ |
√ |
√ |
× |
× |
private |
√ |
× |
× |
× |
× |
Ø 如果没有使用static关键字修饰,该方法为普通方法(实例方法),即对象的方法;
Ø 静态方法中,只能直接调用静态方法;
Ø 实例方法中,可以直接调用静态方法,也可以直接调用实例方法;
Ø 静态方法中如果要调用实例方法,必须先实例化对象,使用对象名调用;
2、final:一般配合final使用,即public static fianl,标识符使用大写Ø 当final修饰类时,当前类不能被继承;
Ø 当final修饰方法时,该方法不能被重写;
Ø 当final修饰变量时,变量的值不能被修改,即为常量;
3、abstract:Ø 含有抽象方法的类,一定是抽象类;
Ø 抽象类中可以声明成员变量、常量、成员方法、抽象方法,抽象类中不一定要有抽象方法;
Ø 抽象类不能被实例化;
Ø 抽象类可以被继承;
Ø 可以通过两种方式获得抽象类对象:父类引用指向子类对象(多态)、匿名内部类;
Ø 子类必须重写抽象父类的所有抽象方法,或者是把子类也定义为抽象类;
Ø 如果一个类继承的抽象父类还有上级抽象父类,那么子类中需要要重写所有抽象父类的所有抽象方法;
Ø 抽象类也可以继承非抽象类,同时继承了父类的所有非私有的属性和方法;
4、synchronized :处理多线程并发问题