手册

目录

Java.io 包教程

Java 修饰符

收藏663

阅读988

更新时间2025-07-22

前言:

在本教程中,您将学习如何使用Java修饰符,修饰符现在,您已经非常熟悉我们几乎所有示例中出现的public关键字:publicclassMyClasspublic关键字是一个访问修饰符,这意味着它用于设置类、属性、方法和构造函数的访问级别。

修饰符

现在,您已经非常熟悉我们几乎所有示例中出现的public关键字:

public class MyClass

public 关键字是一个访问修饰符,这意味着它用于设置类、属性、方法和构造函数的访问级别。

我们将修饰符分为两组:

  • 访问修饰符 - 控制访问级别
  • 非访问修饰符 - 不控制访问级别,但提供其他功能

访问修饰符

对于 classes,可以使用 publicdefault:

修饰符 描述 试一试
public 该类可由任何其他类访问 试一试 »
default 该类只能由同一包中的类访问。在不指定修改器时使用此选项。您将在" Packages"一章中了解有关软件包的更多信息 试一试 »

对于属性、方法和构造函数,可以使用以下选项之一:

修饰符 描述 试一试
public 所有类都可以访问该代码
private 代码只能在声明的类中访问 试一试 »
default 该类只能由同一包中的类访问。在不指定修改器时使用此选项。您将在" Packages"一章中了解有关软件包的更多信息 试一试 »
protected 代码可以在相同的包和子类中访问。在 继承一章中,您将了解有关子类和超类的更多信息 试一试 »

非访问修饰符

对于,可以使用finalabstract:

修饰符 描述 试一试
final 该类不能被其他类继承(您将在 继承一章中了解有关继承的更多信息) 试一试 »
abstract 该类不能用于创建对象(要访问抽象类,它必须从另一个类继承。您将在 继承和抽象章节中了解有关继承和抽象的更多信息)

对于属性和方法,可以使用以下选项之一:

修饰符 描述
final 无法覆盖/修改属性和方法
static 属性和方法属于类,而不是对象
abstract 只能在抽象类中使用,并且只能在方法上使用。该方法没有主体,例如抽象abstract void run();。主体由子类(继承自)提供。 在继承和抽象章节中,您将了解有关继承和抽象的更多信息
transient 序列化包含属性和方法的对象时,将跳过属性和方法
synchronized 方法一次只能由一个线程访问
volatile 属性值不是本地缓存的线程,总是从"主内存"中读取


Final

如果不希望覆盖现有属性值,请将属性声明为 final:

实例

public class MyClass {
  final int x = 10;
  final double PI = 3.14;

  public static void main(String[] args) {
    MyClass myObj = new MyClass();
    myObj.x = 50; // 将产生错误:无法为 final 变量赋值
    myObj.PI = 25; // 将产生错误:无法为 final 变量赋值
    System.out.println(myObj.x);
  }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


Static

static 静态方法意味着可以在不创建类对象的情况下访问它,这与public不同:

实例

演示staticpublic方法之间差异的示例:

public class MyClass {
  // 静态方法
  static void myStaticMethod() {
    System.out.println("Static methods can be called without creating objects");
  }

  // 公共方法
  public void myPublicMethod() {
    System.out.println("Public methods must be called by creating objects");
  }

  // Main 方法
  public static void main(String[ ] args) {
    myStaticMethod(); // 调用静态方法
    // myPublicMethod(); 这将输出错误

    MyClass myObj = new MyClass(); // 创建一个 MyClass 的对象
    myObj.myPublicMethod(); // 调用公共方法
  }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


Abstract

abstract 抽象方法属于abstract抽象类,它没有主体。主体由子类提供:

实例

// Code from filename: Person.java
// 抽象类
abstract class Person {   public String fname = "John";   public int age = 24;   public abstract void study(); // 抽象方法 } // 子类(从 Person 继承) class Student extends Person {   public int graduationYear = 2018;   public void study() { // 此处提供了抽象方法的主体     System.out.println("Studying all day long");   } } // End code from filename: Person.java // Code from filename: MyClass.java class MyClass {   public static void main(String[] args) {     // 创建 Student 类的对象(从 Person 继承属性和方法)     Student myObj = new Student();     System.out.println("Name: " + myObj.fname);     System.out.println("Age: " + myObj.age);     System.out.println("Graduation Year: " + myObj.graduationYear);     myObj.study(); // 调用抽象方法
  } }


精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

71万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号