封装
封装 是指将对象的 属性和方法 封装在对象内部,只允许通过对象提供的 方法 来访问和修改对象的内部属性。
封装最主要的目的是隐藏了对象的内部实现细节,保护对象的完整性,并提高了代码的可维护性和可重用性。
封装可以通过以下 2 种方式实现:
- 将数据隐藏在类内部:可以使用
private
将属性声明为私有,外部无法直接访问这些属性; - 提供公共方法(
getter
和setter
)来访问和修改属性:通过定义public
的getter
和setter
方法,外部调用这些方法访问和修改属性;
简单示例:
java
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
java
Person person = new Person("Yibo wang", 18);
person.setName("sunny");
person.setAge(20);
System.out.println(person.getName());
System.out.println(person.getAge());
权限修饰符
实现封装就是控制类中成员的可见性范围。这就需要权限修饰符来控制了。
权限修饰符主要分为以下 4 种(从上到下,访问权限越来越大):
修饰符 | 本类内部 | 本包内部 | 子类内部 | 非子类内部 |
---|---|---|---|---|
private | ✔️ | ❌ | ❌ | ❌ |
缺省(default) | ✔️ | ✔️ | ❌ | ❌ |
protected | ✔️ | ✔️ | ✔️ | ❌ |
public | ✔️ | ✔️ | ✔️ | ✔️ |
TIP
- 外部类 (
class
) 只能使用public
和缺省
修饰; - 类内部的属性和方法,可以使用
private
、缺省
、protected
、public
4种修饰符进行修饰;
JavaBean 风格
JavaBean是一种符合特殊约定的 java 类,用于封装数据和提供对这些数据的访问方法。
JavaBean 通常用于表示应用程序中的业务对象,例如用户、订单、产品等。
它的主要目的是提供一种标准化的方式来封装和访问数据。
JavaBean的标准约定:
- 公有的无参构造方法:JavaBean 必须有一个公有的无参构造方法,以便可以通过反射机制创建实例;
- 私有的属性:JavaBean的属性应该声明为
peivate
,以实现封装; - 共有的
getter
和setter
方法:每个属性都应该提供公有的getter
和setter
方法,以允许外部代码访问和修改属性的值;
简单示例:
java
public class Customer {
private int id;
private String name;
public Customer() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}