zoukankan      html  css  js  c++  java
  • Java 修饰符

    Java 修饰符主要分为两类:

    • 访问修饰符
    • 非访问修饰符

    访问修饰符

    • public,对所有类可见
    • protected,对同一包内的类和子类可见
    • default,同一个包内的类可见
    • private,对当前类可见
    修饰符当前类同一包内子孙类其它包
    public Y Y Y Y
    protected Y Y Y N
    default Y Y N N
    private Y N N N

    非访问修饰符

    static

    • static 是一个修饰符,被 static 修饰的成员变量和成员方法,不依赖类的特定实例,被类的所有实例共享,因此静态类方法中不可以定义 this,super 等关键字。
    • 静态成员变量和方法,可以使用类直接调用,如下可以直接使用 Dog 访问 name,age,printInfo()。
    • 静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态成员,如在 printInfo() 方法使用 static 修饰,其中涉及的 name 和 age 也必须使用 static 修饰。
    public class Dog {
        
        static String name;
        static int age;
        
        public static void printInfo() {
            System.out.println("name:" + name + ", age:" + age);
        }
        
        public static void main(String[] args) {
            
            Dog.name = "roy";
            Dog.age = 3;
            Dog.printInfo();
            
            Dog dog = new Dog();
            dog.printInfo();
        }
    }
    
    name:roy, age:3
    name:roy, age:3
    

    final

    • final 可以修饰类,方法,变量(成员变量和局部变量)
    • 当 final 修饰一个类,表示这个类不能被继承
    • 当 final 修饰一个方法,明确禁止该方法在子类中被覆盖
    • 当 final 修饰一个变量,如是基本类型,表示数值一旦确定,不能修改,如是引用类型,则初始化之后不能指向另一个对象

    abstract

    • 抽象类不能实例化对象,声明抽象类的唯一目的是将来对该类进行扩充
    • 一个类不能同时被 abstract 和 final 修饰,如果一个类包含抽象方法,则类一定要声明为抽象类,抽象类不一定有抽象方法
    • 抽象方法是一种没有任何实现的方法,该方法具体由子类提供
    • 抽象方法不能被声明为 final 和 static
    • 任何集成抽象类的子类必须实现弗雷的所有抽象方法,除非子类也是抽象类
    public abstract class SuperClass {
        abstract void m();
    }
    
    class SubClass extends SubClass {
        void m() {
            ………………
        }
    }
    

    synchronized

    synchronized 表示同一时间只能被一个线程访问

    public synchronized void showDetails() {
    
    }
    

    volatile

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

    public class Run {
        private volatile boolean active;
    }
  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/wht123/p/14241404.html
Copyright © 2011-2022 走看看