版本:基于 Java 17 & Java 21 LTS
Java 是一门彻头彻尾的面向对象 (OOP) 语言。万物皆对象,而类 (Class) 则是产生对象的模板。本篇将带你建立正确的 OOP 思维。
1. 类与对象 (Class & Object)
类:就像一张图纸,定义了属性 (成员变量) 和行为 (方法)。
对象:根据图纸造出来的实体。
public class Student {
// 1. 属性 (状态)
String name;
int age;
// 2. 行为 (方法)
void study() {
System.out.println(name + " 正在学习...");
}
}2. 构造器 (Constructor)
构造器是专门用于创建对象并初始化的特殊方法。
public class Car {
String brand;
// 1. 无参构造器
public Car() {}
// 2. 有参构造器 (构造器重载)
public Car(String brand) {
this.brand = brand; // this 代表当前对象
}
}
var myCar = new Car("Tesla");3. 静态修饰符:static
static 修饰的变量或方法属于类本身,而不是属于某个具体的对象。它们被该类的所有对象共享。
public class Counter {
public static int count = 0; // 静态变量,全局共享
public Counter() {
count++;
}
public static void showCount() { // 静态方法,可通过类名直接调用
System.out.println("当前计数: " + count);
}
}4. 初始化块 (Initialization Blocks)
除了构造器,Java 还提供了初始化块来初始化对象。
public class Database {
// 1. 静态代码块:类加载时执行一次,通常用于加载驱动、读取配置文件
static {
System.out.println("静态块:连接池初始化中...");
}
// 2. 构造代码块:每次创建对象前都会执行,早于构造器
{
System.out.println("构造块:对象准备中...");
}
}5. 封装 (Encapsulation)
封装的本质是:隐藏实现细节,对外提供公共访问方式。
private: 仅本类可见。public: 全局可见。
标准的 Java Bean 写法 (Getter/Setter)
public class User {
private String password;
public String getPassword() { return "******"; }
public void setPassword(String password) { this.password = password; }
}6. 现代 OOP 的选择:Record
如果你只是想创建一个简单的“数据载体”类,请不要再写繁琐的 private/getter/setter 了,直接使用 Java 16+ 引入的 Record。
// 一行搞定:自动包含 private final 字段、全参构造器、Getter、toString、equals、hashCode
public record Point(int x, int y) {}
// 使用时
var p = new Point(10, 20);
System.out.println(p.x()); // 访问方法是 x() 而不是 getX()本章小结
第四篇我们深度学习了:
类与对象的核心概念及其相互关系。
构造器的重载与
this关键字的应用。static修饰符:静态变量与静态方法的本质。初始化块:静态块与构造块的执行时机。
封装原则与现代数据建模工具
Record。
下一篇预告:面向对象高级 (继承、多态、接口、内部类)