【JAVA】修饰符-访问/非访问控制符的分类及说明

Java修饰符是Java编程语言中用于改变类、方法、变量或包访问权限及行为的关键词。以下是Java中常见的修饰符分类及其详细说明:

一、访问控制修饰符:


1. public:
   - 最大的访问权限,任何类、对象都可以访问。
   - 用于类时,表示类可以在任何其他包中被访问和实例化。
   - 用于成员变量和方法时,表示它们可以在任何类中访问。

2. protected:
   - 相对较小的访问权限,仅限于同一个包内的类和任何子类(无论子类在哪个包中)可以访问。
   - 用于类时,Java中并不支持类声明为protected,但在内部类中可以使用protected。

3. 默认(无修饰符):
   - 称为包访问权限,只允许在同一包内的类访问,而在其他包中的类则无法访问。
   - 如果没有任何访问修饰符,类、字段或方法默认为包访问权限。

4. private:
   - 最小的访问权限,仅限于当前类内部可以访问。
   - 私有成员变量和方法只能在声明它们的类中访问,不能在类外部或子类中访问。

权限顺序:public>protected>默认>private  无修饰符除了private是访问权限最小的

二、非访问控制修饰符:


1. static:
   - 用于修饰成员变量和方法,使其成为类级别而不是对象级别的,也就是说,即使没有类的实例也可以通过类名直接访问。
   - static变量称为类变量,所有类实例共享一个副本;static方法称为类方法,可以直接通过类名调用,而不必创建类的实例。

2. final:
   - 修饰类时表示该类不能被继承。
   - 修饰方法时表示该方法不能被子类重写(override)。
   - 修饰变量时表示该变量一旦被赋值后就不能再修改(对于基本类型是值不可变,对于对象类型是引用不可变)。

3. abstract:
   - 用于修饰类,表示此类不能被实例化,只能作为其他类的父类(抽象类)。
   - 用于修饰方法,表示该方法没有具体实现,必须在子类中重写。

拓展的非访问修饰符:

4. synchronized:
   - 用于修饰方法,表示同一时间只能有一个线程访问该方法。
   - 也可用于修饰代码块,提供锁机制以实现多线程环境下的并发控制。

5. volatile:
   - 用于修饰变量,确保不同线程对共享变量的可见性,禁止指令重排序,有助于实现多线程间的并发访问。

6. transient:
   - 用于修饰变量,表示该变量不应被序列化,即在对象被转化为流进行存储或传输时不包含此变量。

7. native:
   - 用于修饰方法,表示该方法是由非Java语言(如C、C++)实现的,并通过JNI(Java Native Interface)与Java程序交互。

8. strictfp:
   - 用于修饰类或方法,表示在该类或方法中进行浮点运算时,将严格遵循IEEE 754浮点数算术标准,确保跨平台的一致性。

了解并合理运用这些修饰符对于编写高质量的Java代码至关重要。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值