手册目录
Java 教程
Java 方法
Java 类
Java 文件处理
Java 数据结构
Java 案例
Java 参考手册
Java 关键字
Java String 方法
Java Math 方法
Java Output 方法
Java Arrays 类
Java ArrayList 方法
Java LinkedList 方法
Java HashMap 方法
Java Scanner 方法
Java 迭代器接口
Java 错误和异常类型
Java.io 包教程
Java.lang 包教程
Java.math 包教程
java.time 包教程
Java.util 包教程
Java 正则表达式教程
java.util.zip 包教程
前言
在本教程中,您将学习如何使用Java修饰符,修饰符现在,您已经非常熟悉我们几乎所有示例中出现的public关键字:publicclassMyClasspublic关键字是一个访问修饰符,这意味着它用于设置类、属性、方法和构造函数的访问级别。
现在,您已经非常熟悉我们几乎所有示例中出现的public关键字:
public class MyClass
public 关键字是一个访问修饰符,这意味着它用于设置类、属性、方法和构造函数的访问级别。
我们将修饰符分为两组:
对于 classes,可以使用 public 或 default:
| 修饰符 | 描述 | 试一试 |
|---|---|---|
public |
该类可由任何其他类访问 | 试一试 » |
| default | 该类只能由同一包中的类访问。在不指定修改器时使用此选项。您将在" Packages"一章中了解有关软件包的更多信息 | 试一试 » |
对于属性、方法和构造函数,可以使用以下选项之一:
| 修饰符 | 描述 | 试一试 |
|---|---|---|
public |
所有类都可以访问该代码 | |
private |
代码只能在声明的类中访问 | 试一试 » |
| default | 该类只能由同一包中的类访问。在不指定修改器时使用此选项。您将在" Packages"一章中了解有关软件包的更多信息 | 试一试 » |
protected |
代码可以在相同的包和子类中访问。在 继承一章中,您将了解有关子类和超类的更多信息 | 试一试 » |
对于类,可以使用final 或 abstract:
| 修饰符 | 描述 | 试一试 |
|---|---|---|
final |
该类不能被其他类继承(您将在 继承一章中了解有关继承的更多信息) | 试一试 » |
abstract |
该类不能用于创建对象(要访问抽象类,它必须从另一个类继承。您将在 继承和抽象章节中了解有关继承和抽象的更多信息) |
对于属性和方法,可以使用以下选项之一:
| 修饰符 | 描述 |
|---|---|
final |
无法覆盖/修改属性和方法 |
static |
属性和方法属于类,而不是对象 |
abstract |
只能在抽象类中使用,并且只能在方法上使用。该方法没有主体,例如抽象abstract void run();。主体由子类(继承自)提供。 在继承和抽象章节中,您将了解有关继承和抽象的更多信息 |
transient |
序列化包含属性和方法的对象时,将跳过属性和方法 |
synchronized |
方法一次只能由一个线程访问 |
volatile |
属性值不是本地缓存的线程,总是从"主内存"中读取 |
如果不希望覆盖现有属性值,请将属性声明为 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 静态方法意味着可以在不创建类对象的情况下访问它,这与public不同:
演示static 和 public方法之间差异的示例:
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抽象类,它没有主体。主体由子类提供:
// 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(); // 调用抽象方法
} }
相关视频
科技资讯
24小时阅读榜
1
2
3
4
5
6
7
8
9
10
精品课程
共5课时 | 17.4万人学习
共49课时 | 78.1万人学习
共29课时 | 62.5万人学习
共25课时 | 39.7万人学习
共43课时 | 73.8万人学习