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();
}
}关键步骤解析
声明 (Declaration):
Dog myDog;- 这行代码声明了一个名为
myDog的变量,它的类型是Dog。此时,它还没有指向任何具体的对象,其值为null。
- 这行代码声明了一个名为
实例化 (Instantiation):
new Dog();new是 Java 的一个关键字,用于创建一个新的对象。Dog()是一个对Dog类的构造函数 (Constructor) 的调用。构造函数是一种特殊的方法,用于初始化新创建的对象。如果我们不显式定义构造函数,Java 会提供一个默认的无参构造函数。
初始化 (Initialization):
myDog = new Dog();- 这行代码将新创建的
Dog对象的内存地址赋给myDog变量。现在,myDog就引用了这个具体的Dog实例。
- 这行代码将新创建的
总结
- 类是创建对象的蓝图,定义了属性和行为。
- 对象是类的具体实例,拥有独立的属性值。
- 使用
new关键字来创建对象。 - 使用点 (
.) 操作符来访问对象的属性和调用其方法。
理解类和对象是学习 Java 的基石。几乎所有 Java 程序都是通过定义类以及创建和操作这些类的对象来构建的。