Java面向对象:封装与构造方法笔记
封装
-
private关键字:
- 概述:
private
是Java中的访问修饰符,用于隐藏类的内部细节,只通过公共方法(public)提供访问。 - 特点: 使用
private
修饰的成员变量或方法只能在同一个类内部访问,不能被类的外部直接访问。 - 使用方式:
- 成员变量:
this.成员变量名
,用于区分成员变量和方法参数同名的情况。 - 构造方法:
this(参数列表)
,用于在一个构造方法中调用另一个构造方法,实现构造方法的重载。 - 成员方法:
this.成员方法名(参数列表)
,虽然不常见,但在某些情况下可以用来调用当前对象的其他方法。
- 成员变量:
- 概述:
-
this关键字:
- 概述:
this
关键字指向当前对象的引用,可以用来访问当前对象的属性和方法。 - 使用场景:
- 区分成员变量和局部变量(参数)同名时。
- 在构造方法中调用另一个构造方法(构造方法重载)。
- 概述:
-
重载(Overloading):
- 概述: 在同一个类中创建多个同名方法,但参数列表不同(参数类型、个数或顺序不同)。
- 特点: 重载与方法的返回类型无关,仅与参数列表有关。
构造方法
- 概述: 构造方法是一种特殊的方法,用于创建对象时初始化对象的状态。
- 特点:
- 构造方法名必须与类名完全相同。
- 构造方法没有返回类型,连
void
都不能有。 - 如果没有显式定义构造方法,Java虚拟机(JVM)会提供一个默认的无参构造方法。
- 可以定义多个构造方法,实现构造方法的重载,以支持不同的初始化方式。
示例代码
public class Person {
private String name; // 私有成员变量
private int age;
// 无参构造方法
public Person() {
}
// 带参构造方法
public Person(String name, int age) {
this.name = name; // 使用this区分成员变量和参数
this.age = age;
}
// 成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 重载方法示例
public void display() {
System.out.println("Name: " + name + ", Age: " + age);
}
public void display(String message) {
System.out.println(message + " Name: " + name + ", Age: " + age);
}
}
总结
- 封装是面向对象编程的核心概念之一,通过
private
关键字实现对类内部状态的隐藏,通过this
关键字访问当前对象的成员。 - 重载是Java中一种多态的实现方式,允许在同一个类中定义多个同名方法,但参数列表必须不同。
- 构造方法用于创建对象时初始化对象的状态,可以有多个构造方法(重载),也可以不显式定义,让JVM提供默认构造方法。