java面向对象-封装构造方法
时间: 2025-03-09 18:00:06 浏览: 42
### Java 中面向对象编程的封装特性和构造方法
#### 封装的概念
封装是面向对象编程的核心概念之一,指的是隐藏对象的具体实现细节并仅暴露必要的接口给外部使用。通过访问修饰符(`private`, `protected`, 和 `public`),可以控制类成员变量和方法的可见性。
- 使用 `private` 关键字来定义私有字段,这些字段只能被同一个类内部的方法访问。
- 提供公共 getter/setter 方法用于读取或修改私有字段的内容[^1]。
```java
// 定义一个具有封装性的 Person 类
class Person {
private String name;
private int age;
// Getter and Setter methods for accessing the fields.
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge(){
return this.age;
}
public void setAge(int age){
this.age=age;
}
}
```
#### 创建构造方法
构造方法是在创建新实例时自动调用的一种特殊方法,主要用于初始化对象的状态。如果未显式声明任何构造函数,则编译器会提供默认无参构造函数;一旦自定义了至少一个构造函数,默认构造函数就不再存在。
当子类继承父类时,除非特别指明要调用哪个超类构造器,否则会在子类构造器的第一条语句中隐含地调用无参数版本的父类构造器。
```java
// 父类及其带参数的构造方法
class Person {
protected String name;
protected int age;
// 带两个参数的构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("Parent constructor called.");
}
}
// 继承自 Person 的子类 Student 并重写其构造方法
class Student extends Person {
private String school;
// 调用父类构造方法,并添加自己的逻辑
public Student(String name, int age, String school) {
super(name, age); // 显式调用父类构造方法
this.school = school;
System.out.println("Child constructor called.");
}
}
```
上述例子展示了如何在一个简单的父子关系结构里运用构造链机制完成多级初始化工作流程。每当创建一个新的 `Student` 对象时,都会先执行基类 (`Person`) 的构造过程再继续到派生类(`Student`) 自身的部分。
阅读全文
相关推荐


















