目录
1. public
2. protected
3. Default (无修饰符)
4. private
在Java编程语言中,访问修饰符是非常重要的一部分,它决定了类、变量、方法和构造器的访问级别。Java中主要有四种访问修饰符:public
、protected
、default
(没有修饰符时使用)和private
。这些修饰符帮助程序员控制其他类对某个类内部成员的访问级别。接下来,我们将从功能、使用场景及代码示例等方面详细探讨这些修饰符。
1. public
public
修饰符是最宽松的访问级别。被public
修饰的类、方法、构造器或成员变量可以被任何其他类访问。
应用场景:
- 公共API的功能方法和常量。
- 通常在公共接口中使用。
代码示例:
public class Car {public int wheelCount;public Car(int wheelCount) {this.wheelCount = wheelCount;}public void display() {System.out.println("车轮的数量是:" + wheelCount);}
}class Test {public static void main(String[] args) {Car car = new Car(4);car.display(); // 输出: 车轮的数量是:4}
}
2. protected
protected
修饰符提供了更多的封装性,只允许同一个包的类或者不同包中的子类访问。
应用场景:
- 当想要隐藏类的部分成员不对外公开,但允许子类访问时。
- 继承关系中保护成员不被外部直接使用。
代码示例:
public class Vehicle {protected int maxSpeed;protected void setMaxSpeed(int speed) {this.maxSpeed = speed;}
}class Car extends Vehicle {public void displaySpeed() {setMaxSpeed(180);System.out.println("最大速度是:" + maxSpeed + "公里/小时");}
}class Test {public static void main(String[] args) {Car myCar = new Car();myCar.displaySpeed(); // 输出: 最大速度是:180公里/小时}
}
3. Default (无修饰符)
当没有指定访问修饰符时,使用默认访问级别,只允许在同一包内部的类访问。
应用场景:
- 当类的功能仅供包内其他类使用时。
- 控制同一个包内的组件访问权限。
代码示例:
class PackageClass {int count;void display() {System.out.println("数字是:" + count);}
}public class Test {public static void main(String[] args) {PackageClass obj = new PackageClass();obj.count = 15;obj.display(); // 输出: 数字是:15}
}
4. private
private
修饰符是最严格的访问级别,被它修饰的数据成员、方法和构造器只能被同一个类的其他成员访问。
应用场景:
- 隐藏类的实现细节和保护数据。
- 控制读取和修改的权限。
代码示例:
public class Account {private double balance;private void deposit(double amount) {if (amount > 0) {balance += amount;}}public void addMoney(double money) {deposit(money);}public double getBalance() {return balance;}
}class Test {public static void main(String[] args) {Account myAccount = new Account();myAccount.addMoney(1000);System.out.println("当前余额是:" + myAccount.getBalance()); // 输出: 当前余额是:1000.0}
}
总结: Java的四种访问修饰符public
、protected
、默认(无修饰符)和private
,各有其用途和应用场景。理解并合理运用这些访问修饰符,可以帮助Java开发者有效地封装数据和方法,保护数据安全,同时也便于团队协作和代码维护。通过上述示例,我们可以看到不同访问级别修饰符的具体应用,这对于编写可靠和可维护的Java代码至关重要。