美文网首页
Java 的小白学习笔记四(修饰符)

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

作者: 空心斌 | 来源:发表于2018-07-23 16:10 被阅读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类)

    相关文章

      网友评论

          本文标题:Java 的小白学习笔记四(修饰符)

          本文链接:https://www.haomeiwen.com/subject/yddjmftx.html