java代码如何封装
封装的概念
封装是面向对象编程(OOP)的三大特性之一,通过隐藏对象的内部细节和实现,仅对外暴露必要的接口,从而提高代码的安全性和可维护性。
实现封装的方法
使用访问修饰符
Java提供了四种访问修饰符来控制类成员的可见性:
private:仅限当前类内部访问。protected:允许当前类、子类及同一包内的类访问。default(无修饰符):允许同一包内的类访问。public:允许所有类访问。
public class Person {
private String name; // 私有属性,外部无法直接访问
private int age;
public String getName() { // 提供公共方法访问私有属性
return name;
}
public void setName(String name) {
this.name = name;
}
}
通过Getter和Setter方法
封装的核心是通过公共方法(Getter/Setter)间接操作私有属性,可以在方法中添加逻辑控制。
public class Account {
private double balance;
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
if (balance >= 0) { // 添加校验逻辑
this.balance = balance;
}
}
}
隐藏实现细节
将类的内部实现(如数据结构、算法)隐藏,仅暴露功能接口。例如,使用接口定义行为,具体实现由类完成。

public interface Vehicle {
void start();
void stop();
}
public class Car implements Vehicle {
private Engine engine; // 隐藏具体实现
@Override
public void start() {
engine.ignite();
}
@Override
public void stop() {
engine.shutdown();
}
}
封装的好处
- 安全性:防止外部直接修改敏感数据。
- 灵活性:内部逻辑修改不影响外部调用。
- 可维护性:代码结构更清晰,易于扩展。
示例:完整封装类
public class Student {
private String id;
private String name;
private int score;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
// Getter和Setter方法
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
if (score >= 0 && score <= 100) {
this.score = score;
}
}
}
通过合理使用封装,可以显著提升代码的健壮性和可读性。






