news 2026/3/3 9:37:59

Java中,方法/类的修饰符的书写位置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中,方法/类的修饰符的书写位置

一.书写顺序(含类、方法、字段)

在Java中,方法的修饰符和返回类型的书写顺序是有规定的

如main方法中,正确且标准的写法是:

public static void main(String[] args){ ... }

这是Java社区、官方文档、IDE(如Intellij IDEA、Eclipse)默认生成的写法,也是最清晰、最广泛接受的顺序

其他合法的写法(语法上正确,但不推荐)

Java允许public和static交换顺序,因为它们属于不同类别的修饰符

如:

static public void main(String[] args) // 语法上正确但不推荐这样书写

根据Java语言规范(Chapter 8. Classeshttps://docs.oracle.com/javase/specs/jls/se17/html/jls-8.html?spm=5176.28103460.0.0.49d17551ApEHpJ#jls-8.4.3

方法的修饰符顺序是任意的,只要:

  • 访问修饰符最多能有一个(public / protected / private)
  • 非访问修饰符(如static、final、等)可以有多个
  • 返回类型(如void)必须在方法名之前,必须紧挨方法名,不能在修饰符和方法名中间
[访问修饰符] [非访问修饰符] 返回类型 方法名()

其中[]表示可以有也可以没有

这是业界普通约定俗成的书写顺序

类的书写顺序为:

[访问修饰符] [非访问修饰符] class ClassName [extends ...] [implements ...]

如:

public final class StringUtils implements Serializable, Cloneable

而下面这种写法合法但不推荐:

final public class StringUtils implements Serializable // ❌ 顺序混乱

字段(Filed/成员变量)的书写顺序:

[访问修饰符] [非访问修饰符] 类型 变量名 [= 初始值];

总结:

场景规则
访问修饰符只能写一个:publicprotectedprivate或默认(不写)
implements/extends写在类名之后,不属于修饰符,所以不在修饰符顺序中
格式:class A extends B implements C, D
interface是关键字,不是修饰符。定义接口时用:
public interface MyInterface
void/ 返回类型必须紧挨着方法名之前,不能放在修饰符中间
非法组合private abstract method()❌(abstract方法必须被子类实现,不能私有)
static abstract method()❌(Java 8 前不允许;Java 8+ 的static方法不能是abstract

二.Java中的非访问修饰符

在 Java 中,非访问修饰符(Non-Access Modifiers)是用于定义类、方法、变量等的行为、生命周期或特殊语义的关键字,它们不控制访问权限(那是public/protected/private的职责),而是提供额外的功能特性

修饰符可用于作用说明
static类、方法、字段、代码块、嵌套类表示属于类本身,而非实例;可直接通过类名访问
final类、方法、字段、局部变量表示“不可变”:类不能被继承,方法不能被重写,变量值不能更改
abstract类、方法抽象类(不能实例化)、抽象方法(无实现,必须由子类实现)
synchronized方法、代码块保证线程安全,同一时间只有一个线程可执行该方法/代码块
volatile字段保证多线程下变量的可见性(每次读都从主存取,不缓存)
transient字段标记字段不参与序列化(如密码字段)
native方法表示方法由本地代码(如 C/C++)实现,通常通过 JNI 调用
strictfp类、方法保证浮点运算在不同平台结果一致(IEEE 754 标准

注意:某些修饰符有使用限制(如abstract不能和final共存)

组合是否合法说明
abstract+final抽象要被继承,final 禁止继承 → 矛盾
abstract+static❌(方法)抽象方法需被重写,static 方法不能被重写
abstract+private❌(方法)private 方法无法被子类访问,无法实现抽象
final+static常量(如public static final int MAX = 100;
synchronized+static锁的是类对象(Class.class
native+abstractnative 有外部实现,abstract 无实现 → 冲突
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/2 13:29:08

海报模板 | 学术工具 | 学术海报模板 | 学术会议海报 | 学术会议必备 | 科研展示 | 科研海报 | 国际学术海报 | 会议参会交流 | 科研成果展示 | 海报展示 | 免费下载 | 科研必备

学术海报模板之所以是提升科研展示效率的关键工具,核心在于它通过结构化设计、视觉化规范和时间成本优化,帮助研究者将复杂的研究内容高效转化为清晰、专业的展示媒介。1. 结构化逻辑,降低组织内容的难度固定框架引导:模板通常预设…

作者头像 李华
网站建设 2026/3/1 3:40:23

网络安全究竟防什么?说清网络空间安全的五大重点防护领域

什么是网络安全,网络空间安全有哪些安全? 本文章详细列举出网络空间安全的十六大种类 网络空间安全是一个覆盖 “物理层 - 网络层 - 应用层 - 数据层 - 业务层” 的全域防护体系,其安全种类可根据防护对象、技术场景和业务领域划分为 16 大…

作者头像 李华
网站建设 2026/2/27 6:17:34

单北斗变形监测系统的应用与安装维护探讨

本文主要介绍单北斗变形监测系统的安装与维护,探讨其在实际应用中的重要性。在安装方面,需要遵循规范,确保设备准确定位并保证信号畅通。维护则强调定期检查、校准以及清洁,确保系统的长期稳定运行。同时,北斗形变监测…

作者头像 李华