java中有几种修饰符?
java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下五种。
1、权限访问修饰符
public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。
2、final修饰符
final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
3、abstract修饰符
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
4、static修饰符
static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例
5、volatile修饰符
易失 ( 共享 ) 域修饰符 volatile 是用来说明这个成员变量可能被几个线程所控制和修改。也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。
扩展资料:
修饰符的特点:
static是一个修饰符,用于修饰成员(成员变量和成员函数)
静态成员随着类的加载而加载。静态成员优先于对象存在。静态成员被所有对象所共享静态成员多了一个中调用方式,可以被类名直接调用。
使用的注意事项:
静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态。静态方法中不可以定义this,super关键字。因为this代表是对象。而静态存在时,有可能没有对象。所以静态方法运行时,this是没有任何对象代表的。
简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据。主函数是静态的。
在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修饰方法的时候,表示这个方法是抽象方法,一个抽象类里面可以没有抽象方法,但是当一个类里面有抽象方法的时候,那么这个类是抽象类;java学习方面的问题可以访问下这个网页网页链接,希望我的回答能帮到你。
(有的资料说只有private ,可我写了一个内部类,用protected修饰,没什么问题.)
1 public:所有的类都可以访问。
2 private:只有在同一个类中才可以访问。
3 protected:同一个类中、同一个包中、子类中都可以访问
4、包类型的,即默认类型 同一个类中、同一个包中可以访问到
(有的资料说只有private ,可我写了一个内部类,用protected修饰,没什么问题.)
1 public:所有的类都可以访问。
2 private:只有在同一个类中才可以访问。
3 protected:同一个类中、同一个包中、子类中都可以访问
4、包类型的,即默认类型 同一个类中、同一个包中可以访问到
应是4种:
1 public:所有的类都可以访问。
2 private:只有在同一个类中才可以访问。
3 protected:同一个类中、同一个包中、子类中都可以访问4、包类型的,即默认类型 同一个类中、同一个包中可以访问到