Java中常见的非访问修饰符
- static 修饰符,用来修饰类方法和类变量。
- final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
- abstract 修饰符,用来创建抽象类和抽象方法。
- synchronized 修饰符,主要用于线程的编程。
static修饰符
static主要方便在没有创建对象的情况下来进行调用(方法/变量)。
- 静态变量:static关键字用来声明独立于对象的静态变量,无论一个类实例化多少个对象,它的静态变量只有一份拷贝。静态变量也被称为类变量。局部变量不能被声明为static变量。
- 静态方法:static用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得倒数据,然后计算这些数据。
final修饰符
- final变量:
final表示"最后的,最终的"含义,变量一旦被赋值后,不能被重新赋值。被final修饰的实例变量必须显式指定初始值。
final通常和static一起用于创建常量。 - final方法:
父类中的final方法可以被子类继承,但是不能被子类重写。
声明final方法的主要目的是防止该方法的内容被修改。 - final类:
final类不能被继承,没有类能够继承final的任何特性。
abstract修饰符
- 抽象类:抽象类不能用来实例化对象,声明抽象类的目的就是为了将来对该类进行扩充。一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则会报错。
抽象类内可以声明抽象方法和非抽象方法 - 抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。
抽象方法不能用static和final修饰
任何继承抽象的子类必须实现父类的所有抽象方法,除非子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类,抽象类可以包含非抽象方法。
synchronized 修饰符
synchronized关键字声明的语句块"{}"或方法同一时间只能被一个线程访问。