java 访问修饰符

一, 访问控制修饰符

修饰符 当前类 同一包类 子孙类(同一包) 子孙类(不同包) 其他包
public yes yes yes yes yes
prodected yes yes yes yes/no no
default yes yes yes no no
private yes no no no no

 

 

 

 

 

 

二, 非访问修饰符

  1, stasic 修饰符,用来修饰类方法和类变量。

  static 修饰的变量和方法称为静态变量和静态方法,也叫类变量和类方法, 静态变量和静态方法不随这创建对象而创建,它们属于类本身所有

  2. final 修饰符,用来修饰类、方法和变量

  • final 修饰的类不能被继承。
  • final 修饰的方法可以被继承,但是不能被子类重新定义
  • 修饰的变量为常量,是不可修改的,用final修饰的常量在创建时必须赋值
    public class Test{
      final int value = 10;
      // 下面是声明常量的实例
      public static final int BOXWIDTH = 6;
      static final String TITLE = "Manager";
     
      public void changeValue(){
         value = 12; //将输出一个错误
      }
    }

     

  3. abstract 修饰符,用来创建抽象类和抽象方法。

  4. synchronized 修饰符声明的方法同一时间只能被一个线程访问。

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

  6. transient 序列化的对象包含被 transient 修饰的实例变量时,java虚拟机(jvm)跳过改特定的变量

posted @ 2018-11-13 17:29  申继林  阅读(176)  评论(0编辑  收藏  举报