Java 的小白学习笔记四(修饰符)

2018-07-23  本文已影响0人  空心斌

一、访问控制修饰符

1. default(什么也不写):在同一包内可见,不使用任何修饰符。

2. private:在同一类内可见。不能修饰类(外部类)

3. public:对所有类可见。

4. protected:对同一包内类和子类可见。不能修饰类(外部类)

default和public使用对象为类、接口、变量、方法。

private和protected使用对象为变量和方法。

访问控制和继承

父类声明为public的方法子类中也必须为public、

父类中声明为protected的方法在子类中声明为public或protected,不能为private。

父类中声明为private的方法,子类不能继承

二、非访问控制修饰符

1. static:修饰静态方法和静态变量。

静态方法:不能使用非静态变量。

静态变量:只有一份拷贝,局部变量不能被声明为static变量

2. final:修饰类、方法、变量。修饰的类不能被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,不可修改。

3. abstract:用来创建抽象类和抽象方法。

抽象类:

不能用来实例化对象,是为了将来对该类进行扩充。

若一个类包含抽象方法,该类一定要声明为抽象类。

抽象类可以包含抽象方法和非抽象方法。

abstract class Dog{

    private String price;

    public abstract void goFast();//抽象方法

}

抽象方法:

是一种没有任何实现的方法,具体实现由子类提供。

抽象方法不能被声明为final和static。

任何继承抽象类的子类必须实现父类的所有抽象方法,除非它也是抽象类。

抽象方法的声明以分号结尾。

public abstract class Dog{

    abstract void m(); //抽象方法

}

class MyDog extends Dog{

    //实现抽象方法

    void m(){

    ...

    }

}

4. synchronized:该关键字声明的方法同一时间只能被一个线程访问

5. transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。

该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

6. volatile:volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个 volatile 对象引用可能是 null。

上一篇:Java 的小白学习笔记三(数据类型和变量类型)

下一篇:Java的小白学习笔记五(Character类和String类)

上一篇下一篇

猜你喜欢

热点阅读