java的修饰符混用_一起学JAVA——修饰符

本文详细介绍了Java中的各种修饰符,包括访问修饰符如public和default,以及static、final、abstract和synchronized等特殊修饰符。解释了它们如何控制类成员的可见度、使用范围和线程安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java修饰符的作用就是对类或类成员进行修饰或限制。

访问修饰符

访问修饰符作用是控制类成员的可见度。

0e3b0e1d60d4834f045d1879b62b3e02.png

e26590799be8b6a38baec0a42bccc618.png

类的访问控制符有两种:

public关键字修饰:可以被所有的类访问缺省为default:只能被同一包中的类访问static(静态修饰符)

static关键字用来修饰类的成员,被这个关键字修饰的成员都和类加载有关。

JVM运行时不会将所有类加载到内存,因为无法确定程序中要使用哪些。类在第一次使用时加载,只加载一次。

静态变量

用static修饰的变量就是静态变量。

静态变量在类加载后就初始化。

静态变量被类的所有实例所共享。

静态变量可以使用 类名.变量名 形式访问。

如果在定义一个类的时候,发现一个成员变量需要被所有实例所共享,那么这个成员变量就需要定义为static的。

f2fa49ed8f5cdf6b57d69252de28ebba.png

静态方法

用static修饰的方法就是静态方法。

静态方法在类加载后就可以使用。

静态方法可以使用 类名.方法名 形式访问。

静态方法不能直接访问外部非静态成员。

因为外部非静态成员必须在类创建对象之后才能使用,而静态方法可以在没创建对象时就使用。

如果要在静态方法内部访问外部非静态成员,需要先创建该类对象,通过对象访问。

静态方法中不能使用this关键字。

因为this是个引用,哪个对象调用方法就引用哪个对象。 而静态方法有可能不是被对象调用的,this无从引用。

如果一个方法不用访问对象的非静态成员,那么就可以定义为静态的,这样使用者就不需要创建对象,直接用类名调用。

静态方法通常是作为工具方法或者一个可以产生对象的方法被声明,目的是为了让调用者更方便地使用,不必创建对象。

用实例方法可以访问static方法,而static方法不能访问实例方法,因为这时不一定有实例的存在。

静态代码块

用static修饰的代码块就是静态代码块。

静态代码块在类加载后执行。

静态代码块和静态方法相同,不能使用外部非静态成员。

静态代码块执行和静态变量的初始化顺序由代码从上到下顺序决定。

e6e7cce014344246bd727376113be4a3.png

final修饰符

final标记的类不能被继承。

final标记的方法不能被子类重写。

final标记的变量即为常量,只能赋值一次。

abstract 修饰符

抽象类:

抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。

一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

抽象类可以包含抽象方法和非抽象方法。

抽象方法

抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。

抽象方法不能被声明成 final 和 static。

任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。

抽象方法的声明以分号结尾,例如:public abstract sample();

synchronized 修饰符

synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。

transient 修饰符

序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。

该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。

volatile 修饰符

volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个 volatile 对象引用可能是 null。

afc869fed9ad970c408d8e2c6cdab948.png

精品推荐:

一起学JAVA——面向对象(三)

一起学JAVA——字符串类

一起学JAVA——面向对象(二)

编程技术笔记——搭建Redis5集群

34481e90571e6029d4e177f364b4cada.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值