1. 概述

在这篇简明教程中,我们将介绍 Java 编程语言中的两个基础构建块:类(Class)对象(Object)。它们是面向对象编程(OOP)的基本概念,用于对现实世界中的实体进行建模。

在 OOP 中:

  • 类是对象的蓝图或模板,用来描述某一类实体的结构和行为。
  • 对象是类的实例,是在运行时根据类创建出来的具体实体,拥有状态(字段)和行为(方法)。

2. 类

简单来说,类是对某种对象的定义或类型描述。在 Java 中,一个类可以包含以下内容:

  • 字段(fields):用于保存对象的状态
  • 构造器(constructors):用于创建对象
  • 方法(methods):用于定义对象的行为

来看一个表示 Car(汽车) 的简单 Java 类:

class Car {

    // 字段
    String type;
    String model;
    String color;
    int speed;

    // 构造器
    Car(String type, String model, String color) {
        this.type = type;
        this.model = model;
        this.color = color;
    }
    
    // 方法
    int increaseSpeed(int increment) {
        this.speed = this.speed + increment;
        return this.speed;
    }
    
    // ...
}

这个类是对“汽车”这一概念的通用描述。我们可以通过它创建各种类型的汽车对象。字段用于保存状态,构造器用于初始化对象。

默认构造器

每个 Java 类在没有显式定义构造器的情况下,会默认提供一个无参构造器。它会将所有字段初始化为默认值(如 Stringnullint 为 0):

Car(){}

但在这个例子中,我们定义了一个带参数的构造器,因为我们希望在创建对象时就指定它的字段值:

Car(String type, String model) {
    // ...
}

总结:我们定义了一个类来描述汽车,它的属性通过字段体现,行为通过方法体现。

3. 对象

类在编译时被处理,而 对象是在运行时从类中创建出来的

对象也被称为类的 实例(instance),它们通过构造器进行创建和初始化:

Car focus = new Car("Ford", "Focus", "red");
Car auris = new Car("Toyota", "Auris", "blue");
Car golf = new Car("Volkswagen", "Golf", "green");

我们通过同一个类创建了三个不同的 Car 对象。✅ 这就是类的核心价值:一次定义,多次复用。

目前这些车的速度都是 0,处于静止状态。我们可以通过调用 increaseSpeed 方法改变它们的状态:

focus.increaseSpeed(10);
auris.increaseSpeed(20);
golf.increaseSpeed(30);

现在,这些车都在以不同的速度行驶,状态发生了变化。

⚠️ 为了更好地控制类的访问权限,我们通常会使用 访问修饰符 来限制类、构造器、字段和方法的可见性。

4. 访问修饰符

在之前的例子中,我们省略了访问修饰符以简化代码。这样做实际上使用了默认的 包级私有(package-private) 修饰符,意味着只有同一个包中的类可以访问。

但在实际开发中,我们通常会使用如下修饰符:

  • public:表示该类、方法或字段可以被任何地方访问
  • private:仅限本类内部访问

来看一个完整的示例,加上访问控制:

public class Car {
    private String type;
    // ...

    public Car(String type, String model, String color) {
       // ...
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getSpeed() {
        return speed;
    }

    // ...
}

说明:

  • ✅ 类标记为 public:可以在任何包中使用
  • ✅ 构造器标记为 public:可以在任何地方创建对象
  • ❌ 字段标记为 private:不能直接从外部访问

我们通过 getter 和 setter 方法 来提供对字段的受控访问:

  • typemodel 字段没有 getter/setter,因为它们是初始化时设定的内部数据
  • color 可读可写
  • speed 只读,修改需通过 increaseSpeed()decreaseSpeed() 方法

通过访问控制,我们实现了对对象状态的封装,这是 OOP 的核心原则之一。

5. 总结

本文介绍了 Java 中两个最基础的概念:类和对象。我们展示了如何定义类、创建对象,并通过访问修饰符控制类成员的可见性。

如果你希望继续深入学习 Java OOP,建议了解以下内容:

📘 示例代码已上传至 GitHub:GitHub 示例代码


原始标题:Java Classes and Objects