java修饰符主要分为两类:1.访问修饰符 2.非访问修饰符
修饰符用来定义类、方法或者变量,通常放在语句的最前端。
一:访问控制修饰符
java中使用访问控制符来保护对类、变量、方法和钩子方法的访问。有四种不同的访问权限:
默认的:default,在同一包内见,不使用任何修饰符
私有的:private,在同一类内可见
共有的:public,对所有类可见
受保护的:protected,对同一包内的类和所有子类可见
访问控制和继承规则:
-
父类中声明为public的方法在子类中也必须为public。
-
父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private。
-
父类中默认修饰符声明的方法,能够在子类中声明为private。
-
父类中声明为private的方法,不能够被继承。
二:非访问修饰符
static修饰符,用来创建类方法和类变量。
Final修饰符,用来修饰类、方法和变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
Abstract修饰符,用来创建抽象类和抽象方法。
Synchronized和volatile修饰符,主要用于线程的编程
以static举例:
public class InstanceCounter{ private static int numInstances = 0; protected static int getCount(){ return numInstances; } private static void addInstance(){ numInstances++; } InstanceCounter(){ InstanceCounter.addInstance(); } public static void main(String[] arguments){ System.out.println("Staring with" + InstanceCounter.getCount() + "instances"); for (int i = 0; i < 500;++i){ new InstanceCounter(); } System.out.println("Created" + InstanceCounter.getCount() + "instances"); } }
运行结果:
Staring with0instance
Created500instances