java中有几种修饰符
发布时间:2025-05-25 12:42:46 发布人:远客网络
一、java中有几种修饰符
java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下五种。
public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。
final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。
static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例
易失(共享)域修饰符 volatile是用来说明这个成员变量可能被几个线程所控制和修改。也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。
static是一个修饰符,用于修饰成员(成员变量和成员函数)
静态成员随着类的加载而加载。静态成员优先于对象存在。静态成员被所有对象所共享静态成员多了一个中调用方式,可以被类名直接调用。
静态方法只能访问静态成员,非静态方法既可以访问静态又可以访问非静态。静态方法中不可以定义this,super关键字。因为this代表是对象。而静态存在时,有可能没有对象。所以静态方法运行时,this是没有任何对象代表的。
简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据。主函数是静态的。
二、java中修饰符有哪些
1、java的修饰符有:权限修饰符:public、protected、default、private
2、修饰符:abstract、static、final
3、public使用对象:最广,类、接口、变量、方法
4、protected使用对象:变量、方法注意:不能修饰类(外部类)
5、default使用对象:类、接口、变量、方法。(即缺省,什么也不写)
6、private使用对象:变量、方法注意:不能修饰类(外部类)
7、abstract使用对象:类、接口、方法
8、static使用对象:类、变量、方法、初始化函数(注意:修饰类时只能修饰内部类)
9、transient:告诉编译器,在类对象序列化的时候,此变量不需要持久保存
10、volatile:指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理
11、native:用该修饰符定义的方法在类中没有实现,而大多数情况下该方法的实现是用C、C++编写的。
12、synchronized:修饰方法,多线程的支持
13、类分外部类和内部类,他们的访问控制是相同的吗
14、外部类是相对于内部类而言的,内部类是定义在类里面的类。
15、default(缺省,不写):类定义时前面未加任何修饰符,表示同一个包中可见。
16、public:修饰类时表示该类能被项目中所有类可见
17、scrictpf:(java关键字)当对一个类或接口使用 strictfp关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754算法对操作数预期的结果,以单精度和双精度格式表示
18、内部类又分:成员内部类、局部内部类、静态内部类、匿名内部类
19、成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列
20、局部内部类:定义在外部类的方法体里面的类
21、静态内部类:使用static修饰的内部类
22、匿名内部类:就是没有名字的内部类
23、private:private不能修饰外部类,
24、static:可以当做普通类使用,而不用先实例化一个外部类。(用他修饰后,就成了静态内部类了)
25、strictfp:(java关键字)即 strict float point(精确浮点)。(可修饰类、接口、方法)
26、java中的类修饰符、成员变量修饰符、方法修饰符。
27、public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。
28、abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。
29、final,将一个类生命为最终(即非继承类),表示他不能被其他类继承。
30、friendly,默认的修饰符,只有在相同包中的对象才能使用这样的类。
31、public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。
32、private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
33、protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
34、friendly,在同一个包中的类可以访问,其他包中的类不能访问。
35、final,最终修饰符,指定此变量的值不能变。
36、static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
37、transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。
38、volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。
39、private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类)
40、protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。
41、static,指定不需要实例化就可以激活的一个方法。
42、synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。
43、native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。
三、java 修饰符有哪几个
1、类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是:公共类修饰符 public
非访问控制符有:抽象类修饰符 abstract;最终类修饰符 final
1)公共类修饰符 public: Java语言中类的可访问控制符只有一个: public即公共的。每个 Java程序的主类都必须是 public类作为公共工具供其它类和程序使用的应定义为 public类。
2)抽象类修饰符 abstract:凡是用 abstract修饰符修饰的类,被称为抽象类。所谓抽象类是指这种类没有具体对象的一种概念类。这样的类就是 Java语言的 abstract类。
3)最终类修饰符 final:当一个类不可能有子类时可用修饰符 final把它说明为最终类。被定义为 final的类通常是一些有固定作用、用来完成某种标准功能的类。
4)类缺省访问控制符:如果一个类没有访问控制符,说明它具有缺省的访问控制符特性。此时,这个类只能被同一个包中的类访问或引用。这一访问特性又称为包访问性。
2.域的控制修饰符也分为:可访问控制符和非访问控制符两类。
可访问控制符有 4种:公共访问控制符: public;私有访问控制符: private;保护访问控制符: protected;私有保护访问控制符: private protected
非访问控制符有 4种:静态域修饰符: static;最终域修饰符: final;易失(共享)域修饰符: volatile;暂时性域修饰符: transient
1)公共访问控制符 public:用 public修饰的域称为公共域。如果公共域属于一个公共类,则可以被所有其它类所引用。由于 public修饰符会降低运行的安全性和数据的封装性,所以一般应减少 public域的使用。
2)私有访问控制符 private:用 private修饰的成员变量(域)只能被该类自身所访问,而不能被任何其它类(包括子类)所引用。
3)保护访问控制符 protected:用 protected修饰的成员变量可以被三种类所引用:①该类自身;②与它在同一个包中的其它类;③在其它包中的该类的子类。使用修饰符 protected的主要作用是允许其它包中它的子类来访问父类的特定属性。
4)私有保护访问控制符 private protected:用修饰符 private protected修饰的成员变量可以被该类本身或该类的子类两种类访问和引用。
5)静态域修饰符 static:用 static修饰的成员变量仅属于类的变量,而不属于任何一个具体的对象,静态成员变量的值是保存在类的内存区域的公共存储单元,而不是保存在某一个对象的内存区间。任何一个类的对象访问它时取到的都是相同的数据;任何一个类的对象修改它时,也都是对同一个内存单元进行操作。
6)最终域修饰符 final:最终域修饰符 final是用来定义符号常量的。一个类的域(成员变量)如果被修饰符 final说明,则它的取值在程序的整个执行过程中都是不变的。
7)易失(共享)域修饰符 volatile:易失(共享)域修饰符 volatile是用来说明这个成员变量可能被几个线程所控制和修改。也就是说在程序运行过程中,这个成员变量有可能被其它的程序影响或改变它的取值。因此,在使用中要注意这种成员变量取值的变化。通常 volatile用来修饰接受外部输入的域。
8)暂时性域修饰符 transient:暂时性域修饰符 transient用来定义一个暂时性变量。其特点是:用修饰符 transient限定的暂时性变量,将指定 Java虚拟机认定该暂时性变量不属于永久状态,以实现不同对象的存档功能。否则,类中所有变量都是对象的永久状态的一部分,存储对象时必须同时保存这些变量。
3.方法的控制修饰符也分为:可访问控制符和非访问控制符两类。
可访问控制符有 4种:公共访问控制符: public;私有访问控制符: private;保护访问控制符: protected;私有保护访问控制符: private protected
非访问控制符有 5种:抽象方法控制符: abstract;静态方法控制符: static;最终方法控制符: final;本地方法控制符: native;同步方法控制符: synchronized
1)抽象方法控制符 abstract:用修饰符 abstract修饰的方法称为抽象方法。抽象方法是一种仅有方法头,没有方法体和操作实现的一种方法。
2)静态方法控制符 static:用修饰符 static修饰的方法称为静态方法。静态方法是属于整个类的类方法;而不使用 static修饰、限定的方法是属于某个具体类对象的方法。由于 static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量,即 static方法只能处理 static的域。
3)最终方法控制符 final:用修饰符 final修饰的方法称为最终方法。最终方法是功能和内部语句不能更改的方法,即最终方法不能重载。这样,就固定了这个方法所具有的功能和操作,防止当前类的子类对父类关键方法的错误定义,保证了程序的安全性和正确性。所有被 private修饰符限定为私有的方法,以及所有包含在 final类(最终类)中的方法,都被认为是最终方法。
4)本地方法控制符 native:用修饰符 native修饰的方法称为本地方法。为了提高程序的运行速度,需要用其它的高级语言书写程序的方法体,那么该方法可定义为本地方法用修饰符 native来修饰;
5)同步方法控制符 synchronized:该修饰符主要用于多线程共存的程序中的协调和同步。
本文出自