Java修饰符都有什么

2020-06-02 19:50发布

在Java中提供了很多的修饰符,修饰符可以用来修饰类,接口,方法,变量的信息;不同的修饰符,可以控制不同的访问权限;

以我们最开始见到的main方法来说:public static void main(String[] args){}

public 就是一个修饰符与public类似的修饰符还有default(默认),private(私有),protected(保护)

对于不同的修饰符,有不同的访问范围:

public(公有的)访问权限,可以修饰类,接口,变量,方法;public所修饰的内容,在当前类,同一个包,其他包都可以访问;

protected(受保护的):可以修饰变量,方法,不可修饰外部类;使用该修饰符修饰的类型可以在当前包,类,同一包类的子类中访问;其他包不可以访问;

default(默认):可以修饰类,接口,变量,方法使用该修饰符修饰的类型可以在当前包,类,同一包内的子类中访问;其他包不可以访问

private(私有的):可以修饰变量,方法,不能修饰外部类;使用该修饰符修饰的对象只可以在本类中使用,其他任何地方都不可以使用;

除了这些访问的修饰符,Java中还存在其他的修饰符:比如static, final, abstract等修饰符;

static(静态):可以修饰变量和方法,使用static修饰变量的时候,这个变量在内存中只有一份,也就是说无论这个类有多少个对象,都使用同一个内存空间,也就是说每个对象所访问该变量的值都是一样的,如果有一个对象将这个值进行了修改,那么其他对象访问这个值也就相应的进行了修改;使用static修饰方法,使用static修饰的方法为静态方法,静态方法中不可以调用没有static的非静态方法;

final(最终):使用final修饰的变量,初始化之后,不可以再次修改这个变量的值,也就说当给这个变量赋值之后,就不能再重新赋值;被final修饰的变量,当定义的时候,给他初始化了;final修饰的方法,可以防止这个方法被子类重写修改;

abstract(抽象): 可以修饰的类型有类和方法;当修饰类的时候,表示这个类是一个抽象的类;抽象类不可以实例化对象,只能被继承;当抽象类的子孙类不是抽象类的时候,才可以被实例化;当abstract修饰方法的时候,表示这个方法是抽象方法,一个抽象类里面可以没有抽象方法,但是当一个类里面有抽象方法的时候,那么这个类是抽象类;