java修饰符及其作用
时间: 2023-10-18 18:30:21 浏览: 124
Java修饰符用于控制类、方法、变量、构造方法等访问权限及其他属性。Java中共有两大类修饰符:访问控制修饰符和非访问控制修饰符。
1. 访问控制修饰符(Access Control Modifiers):用于控制类、方法、变量等的访问权限,包括public、protected、private和default。
- public:可以被任何类访问。
- protected:可以被同一包内的类访问,以及不同包中的子类访问。
- private:只能被本类访问。
- default(即不加任何访问控制修饰符):只能被同一包内的类访问。
2. 非访问控制修饰符(Non-Access Modifiers):用于控制类、方法、变量、构造方法等的其他属性,包括final、static、abstract、synchronized、volatile、transient等。
- final:用于声明类、方法、变量等为不可变的,即不允许被修改。
- static:用于声明类、方法、变量等为静态的,即可以通过类名直接访问。
- abstract:用于声明类、方法等为抽象的,即只有声明而没有实现。
- synchronized:用于声明方法等为同步的,即多线程访问时只能一个线程访问。
- volatile:用于声明变量为易变的,即多个线程可以同时访问并修改该变量。
- transient:用于声明变量为瞬态的,即不会被序列化保存。
相关问题
java中类的修饰符
Java中类的修饰符主要分为两类:访问修饰符和非访问修饰符。
1. 访问修饰符
访问修饰符用于控制类、变量、方法的访问级别,Java中有四种访问修饰符:
- public:公共的,可以被任何类访问。
- protected:受保护的,可以被同一包内的类及其子类访问。
- default(即不写任何修饰符):默认的,可以被同一包内的类访问。
- private:私有的,只能被本类访问。
2. 非访问修饰符
非访问修饰符用于定义类、方法或变量的特性,Java中有以下几种非访问修饰符:
- final:最终的,用于修饰类、方法、变量,分别表示类不能被继承、方法不能被重写、变量只能被赋值一次。
- abstract:抽象的,用于修饰类、方法,分别表示类不能被实例化、方法只有声明没有实现。
- static:静态的,用于修饰方法、变量,分别表示方法不需要实例化即可调用、变量属于类而不是实例。
- synchronized:同步的,用于修饰方法、代码块,表示在多线程环境下保证方法或代码块的同步性。
- volatile:易失性的,用于修饰变量,表示变量在多线程环境下保证可见性和有序性。
下面是一个示例代码,演示了Java中类的修饰符的使用:
```java
public final class MyClass { // 最终类
private static int count; // 静态变量
protected String name; // 受保护的实例变量
int age; // 默认访问修饰符的实例变量
public MyClass(String name, int age) { // 公共的构造方法
this.name = name;
this.age = age;
}
public static void increaseCount() { // 公共的静态方法
count++;
}
synchronized void printInfo() { // 同步的实例方法
System.out.println("Name: " + name + ", Age: " + age);
}
}
```
阅读全文