java非访问修饰符

修饰符

变量

方法

abstract

抽象类


抽象方法

final

最终类

最终变量

最终方法

static


静态变量

静态方法

volatile


易失变量


native



本地方法

synchronized



同步方法


A:类的修饰符:abstract、final


Ø 凡是用abstract修饰的类被称为抽象类,就没有具体对象的概念类,不能被实例化(不能有new关键字创建对象);

定义抽象类的基本格式:

类名{

}

Ø 若一个类被final修饰和限定,说明该类不可能有子类;被final修饰符修饰的类通常情况下都是一些有固定作用、用来完成某种特定功能的类。

Abstract和final不能同时修饰同一个类,因为被abstract类自身不具有任何对象,需要其子类来创建对象;而final类不可能有子类。

定义一个最终类的基本形式:

类名{           } 


B:变量修饰符 static 、final、 volatile


Ø 用static修饰的变量属于类的静态变量。静态变量是类中每个对象共享的变量,不属于任何一个类的具体对象,是一个公共的存储单元。

定义一个静态变量:  static 数据类型  变量名 =  变量值

静态变量的引用:通过类名直接访问。

Ø 静态初始化器时由static引导的一对大括号中的语句组。其作用是加载时,初始化类的静态变量。与构造方法相同,都是用来完成初始化工作。

Ø 静态初始化器与构造方法的三个不同点

l 构造方法是对每个新创建对象的初始化,而静态初始化器是对类自身初始化

l 构造方法是在用new关键字产生新对象是又系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行

l 静态初始化器不是方法,因为它没有方法名、返回值和参数列表;

Ø 最终变量:final,java中用final修饰的变量实际上就是常量。

在使用final定义常量时要注意以下几点:

l 需要说明常量的数据类型

l 需要同时指明常量的具体取值

l 由于所有类的对象的常量其值都是固定的,通常将常量声明为static,这样做是为了节约内存空间

final 数据类型  常量名 = 常量值或

static  final  数据类型  常量名 = 常量值

Ø  易失变量:volatile  如果一个变量被该关键字修饰,那就说明这个变量同时被几个线程所控制和修改;它通常用来修饰外部输入的变量。


C:方法修饰符:abstract、static、final


Ø 抽象方法:abstract 用该关键字修饰的方法只有方法头,而没有具体的方法体和操作实现的方法。

l  使用抽象方法的目的:是使所有子类对外都呈现一个相同名字的方法,是  一个统一的接口。

l  所有的抽象方法都必须存在抽象类之中。

l  抽象方法基本格式:

public abstract class 类名 {

          public abstract void 方法名();

     }

Ø 静态方法:static  用该关键字修饰的方法属于整个类的方法,不同是的对象或实例的方法。

l   调用这种方法时,使用类名做前缀;

l   这种方法在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有,只能处理属于整个类的成员变量。

l  静态方法的基本格式:

    public static void 方法名(){

System.out.println("这是一个静态方法");

}

l  静态方法的调用方式:类名▪方法名

Ø 最终方法:final 该关键字用来修饰类的方法,表示功能和内部语句不能再更改的方法,不能被继承。

l   最终方法的基本格式:

public final void 方法名(){

System.out.println("这是一个最终方法,不能被重写");

     }


Ø 同步方法:synchronized 

l 该关键字如果修饰的方法是一个类方法,那么在被调用执行前,将把系统类Class中对应当前类的对象加锁

l 若修饰的是一个对象的方法,则在这个方法调用执行前,将把当前对象加锁。

 该关键字主要是用于多线程共存的程序中的协调和同步。