Java 是一种面向对象的编程语言。面向对象方法的关键概念是将复杂问题分解为更小的对象。
对象是任何具有状态和行为的实体。例如,一辆自行车就是一个对象。它有
- 状态:空闲、一档等
- 行为:刹车、加速等。
在学习对象之前,我们先来了解一下 Java 中的类。
Java 类
类是对象的蓝图。在创建对象之前,我们首先需要定义类。
我们可以将类看作是一栋房子的草图(原型)。它包含了所有关于楼层、门、窗等的详细信息。根据这些描述,我们建造房子。房子就是对象。
因为可以根据同一个描述建造许多房子,所以我们可以从一个类创建许多对象。
在 Java 中创建类
我们可以使用 class 关键字在 Java 中创建类。例如,
class ClassName {
// fields
// methods
}
- 字段用于存储数据
- 方法用于执行某些操作
对于我们的自行车对象,我们可以创建类为
class Bicycle {
// state or field
private int gear = 5;
// behavior or method
public void braking() {
System.out.println("Working of Braking");
}
}
在上面的例子中,我们创建了一个名为 Bicycle 的类。它包含一个名为 gear 的字段和一个名为 braking() 的方法。
这里,Bicycle 是一个原型。现在,我们可以使用这个原型创建任意数量的自行车。并且,所有的自行车都将共享这个原型的字段和方法。
注意:我们使用了 关键字 private
和 public
。它们被称为访问修饰符。想了解更多,请访问 Java 访问修饰符。
Java 对象
对象称为类的实例。例如,假设 Bicycle 是一个类,那么 MountainBicycle、SportsBicycle、TouringBicycle 等可以被认为是该类的对象。
在 Java 中创建对象
下面是如何创建类的对象。
className object = new className();
// for Bicycle class
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
我们使用 new
关键字和类的构造方法来创建对象。构造方法类似于方法,并且名称与类名相同。例如,Bicycle()
是 Bicycle 类的构造方法。想了解更多,请访问 Java 构造方法。
在这里,sportsBicycle 和 touringBicycle 是对象的名称。我们可以使用它们来访问类的字段和方法。
正如你所见,我们创建了两个类的对象。在 Java 中,我们可以创建一个类的多个对象。
注意:类中的字段和方法也称为类的成员。
访问类的成员
我们可以使用对象的名称加上 .
运算符来访问类的成员。例如,
class Bicycle {
// field of class
int gear = 5;
// method of class
void braking() {
...
}
}
// create object
Bicycle sportsBicycle = new Bicycle();
// access field and method
sportsBicycle.gear;
sportsBicycle.braking();
在上面的例子中,我们创建了一个名为 Bicycle 的类。它包含一个名为 gear 的字段和一个名为 braking()
的方法。注意语句,
Bicycle sportsBicycle = new Bicycle();
这里,我们创建了一个名为 sportsBicycle 的 Bicycle 对象。然后我们使用该对象来访问类的字段和方法。
- sportsBicycle.gear - 访问 gear 字段
- sportsBicycle.braking() - 访问
braking()
方法
我们已经多次提到了方法一词。你将在下一章中详细学习 Java 方法。
现在我们已经了解了什么是类和对象。让我们看一个完整的示例。
示例:Java 类和对象
class Lamp {
// stores the value for light
// true if light is on
// false if light is off
boolean isOn;
// method to turn on the light
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
// method to turnoff the light
void turnOff() {
isOn = false;
System.out.println("Light on? " + isOn);
}
}
public class Main {
public static void main(String[] args) {
// create objects led and halogen
Lamp led = new Lamp();
Lamp halogen = new Lamp();
// turn on the light by
// calling method turnOn()
led.turnOn();
// turn off the light by
// calling method turnOff()
halogen.turnOff();
}
}
输出:
Light on? true Light on? false
在上面的程序中,我们创建了一个名为 Lamp 的类。它包含一个变量:isOn 和两个方法:turnOn()
和 turnOff()
。
在 Main 类中,我们创建了两个 Lamp 类的对象:led 和 halogen。然后我们使用这些对象调用了类的方法。
- led.turnOn() - 它将 isOn 变量设置为
true
并打印输出。 - halogen.turnOff() - 它将 isOn 变量设置为
false
并打印输出。
类中定义的变量 isOn 也称为实例变量。这是因为当我们创建类的对象时,它被称为类的实例。并且,每个实例都将拥有自己的变量副本。
也就是说,led 和 halogen 对象将拥有自己的 isOn 变量副本。
示例:在同一个类中创建对象
请注意,在前面的示例中,我们在另一个类中创建了对象,并从该类访问了成员。
但是,我们也可以在同一个类中创建对象。
class Lamp {
// stores the value for light
// true if light is on
// false if light is off
boolean isOn;
// method to turn on the light
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
public static void main(String[] args) {
// create an object of Lamp
Lamp led = new Lamp();
// access method using object
led.turnOn();
}
}
输出
Light on? true
在这里,我们在同一个类的 main()
方法中创建对象。