Skip to content

Java 对象和类

Java 是一种面向对象编程 (Object-Oriented Programming, OOP) 语言。这意味着程序的核心是围绕“对象”来构建的。要理解对象,我们必须先理解“类”。本章将深入探讨这两个基本概念。

什么是类 (Class)?

可以把想象成一个蓝图模板。它描述了一类事物所共有的属性(特征)和行为(能做什么)。

例如,我们可以创建一个 Dog(狗)类。这个蓝图会定义所有狗都具有的属性和行为:

  • 属性 (State/Attributes):
    • String breed (品种)
    • int age (年龄)
    • String color (颜色)
  • 行为 (Behavior/Methods):
    • bark() (吠叫)
    • wagTail() (摇尾巴)
    • eat() (吃东西)

类本身并不是一个具体的实体,它只是一个定义。就像房子的设计图纸一样,图纸本身不是房子,但它详细说明了如何建造一座房子。

什么是对象 (Object)?

对象是根据类的蓝图创建出来的具体实例 (Instance)。如果说 Dog 类是狗的设计图,那么一只具体的、名叫“旺财”的、3岁大的棕色拉布拉多犬就是一个 Dog 对象。

  • 这个“旺财”对象拥有 Dog 类定义的所有属性,并且这些属性有具体的值(品种=拉布拉多, 年龄=3, 颜色=棕色)。
  • 它也能执行 Dog 类定义的所有行为(bark(), wagTail() 等)。

您可以根据同一个 Dog 类的蓝图,创建出成千上万个不同的 Dog 对象,每一只都有自己独特的属性值。

在 Java 中定义一个类

下面是如何在 Java 中定义我们上面讨论的 Dog 类。代码通常保存在一个与类名相同的文件中,即 Dog.java

java
// 文件名: Dog.java
public class Dog {
    
    // 实例变量 (Instance Variables) - 定义对象的属性
    String breed;
    int age;
    String color;

    // 方法 (Methods) - 定义对象的行为
    void bark() {
        System.out.println("汪汪!");
    }

    void wagTail() {
        System.out.println("狗狗在摇尾巴...");
    }

    void displayInfo() {
        System.out.println("品种: " + breed + ", 年龄: " + age + ", 颜色: " + color);
    }
}
  • 实例变量 (Instance Variables): breed, age, color 这些在类中但在方法之外声明的变量,它们定义了对象的属性。每个对象实例都会有自己的一套实例变量副本。
  • 方法 (Methods): bark(), wagTail(), displayInfo() 这些是定义在类中的函数,它们描述了对象能执行的操作。

在 Java 中创建和使用对象

一旦我们有了类的蓝图,就可以在另一个类(例如,包含 main 方法的类)中创建和使用它的对象。

java
// 文件名: Main.java
public class Main {
    public static void main(String[] args) {
        // 1. 创建对象 (Instantiation)
        // 使用 'new' 关键字和类的构造函数来创建一个新的 Dog 对象
        Dog myDog = new Dog();

        // 2. 访问和设置属性 (Accessing Attributes)
        // 使用点 (.) 操作符来访问对象的实例变量并为其赋值
        myDog.breed = "拉布拉多";
        myDog.age = 3;
        myDog.color = "棕色";

        // 3. 调用方法 (Calling Methods)
        // 使用点 (.) 操作符来调用对象的方法
        System.out.println("--- 我的第一只狗 ---");
        myDog.displayInfo(); // 输出狗的信息
        myDog.bark();        // 执行吠叫行为

        // 我们可以创建另一个独立的对象
        Dog anotherDog = new Dog();
        anotherDog.breed = "哈士奇";
        anotherDog.age = 2;
        anotherDog.color = "黑白";

        System.out.println("\n--- 我的第二只狗 ---");
        anotherDog.displayInfo();
        anotherDog.wagTail();
    }
}

关键步骤解析

  1. 声明 (Declaration): Dog myDog;

    • 这行代码声明了一个名为 myDog 的变量,它的类型是 Dog。此时,它还没有指向任何具体的对象,其值为 null
  2. 实例化 (Instantiation): new Dog();

    • new 是 Java 的一个关键字,用于创建一个新的对象。
    • Dog() 是一个对 Dog 类的构造函数 (Constructor) 的调用。构造函数是一种特殊的方法,用于初始化新创建的对象。如果我们不显式定义构造函数,Java 会提供一个默认的无参构造函数。
  3. 初始化 (Initialization): myDog = new Dog();

    • 这行代码将新创建的 Dog 对象的内存地址赋给 myDog 变量。现在,myDog 就引用了这个具体的 Dog 实例。

总结

  • 是创建对象的蓝图,定义了属性和行为。
  • 对象是类的具体实例,拥有独立的属性值。
  • 使用 new 关键字来创建对象
  • 使用点 (.) 操作符来访问对象的属性和调用其方法。

理解类和对象是学习 Java 的基石。几乎所有 Java 程序都是通过定义类以及创建和操作这些类的对象来构建的。

本站内容仅供学习和研究使用。