# Java 对象和类教程

> 原文： [https://javatutorial.net/java-objects-and-classes-tutorial](https://javatutorial.net/java-objects-and-classes-tutorial)

在本教程中，我将解释 Java 类和对象的基础。

Java 是一种面向对象的编程语言。 这意味着，除了基本类型之外，Java 中的所有内容都是一个对象。 但是，对象到底是什么？ 使用类和对象的概念是将状态和行为封装到单个编程单元中。 这个概念称为[封装](https://javatutorial.net/java-encapsulation-example)。 Java 对象类似于真实世界的对象。 例如，我们可以用 Java 创建一个汽车对象，该对象将具有当前速度和颜色等属性。 和行为，例如：加速和停车。

## 创建类

Java 类是创建对象的蓝图。 让我们创建一个代表汽车的类。

```java
public class Car {

	int currentSpeed;
	String name;

	public void accelerate() {	
	}

	public void park() {
	}

	public void printCurrentSpeed() {
	}
}
```

看上面的代码。 汽车对象状态（当前速度和名称）存储在字段中，并通过方法显示对象的行为（加速和停车）。 在此示例中，方法是`accelerator()`，`park()`和`printCurrentSpeed()`。

让我们在这些方法中实现一些功能。

1\. 每次调用加速方法时，我们将每小时增加 10 英里的当前速度。

2\. 调用驻车方法会将当前速度设置为零

3\. `printCurrentSpeed`方法将显示汽车的速度。

为了实现这三个要求，我们将创建一个名为`Car`的类并将文件存储为`Car.java`。

```java
public class Car {

	int currentSpeed;
	String name;

	public Car(String name) {
		this.name = name;
	}

	public void accelerate() {
		// add 10 miles per hour to current speed
		currentSpeed = currentSpeed + 10;
	}

	public void park() {
		// set current speed to zero
		currentSpeed = 0;
	}

	public void printCurrentSpeed() {
		// display the current speed of this car
		System.out.println("The current speed of " + name + " is " + currentSpeed + " mpH");
	}
}
```

## 类名

创建 Java 类时，必须遵循以下规则：**文件名和该类的名称必须相同**。 在我们的示例中 – `Car`类必须存储在名为`Car.java`的文件中。 Java 也是区分大小写的：用大写`C`编写的汽车与用小写`c`编写的汽车不同。

## Java 类构造函数

构造函数是特殊的方法。 当我们创建对象的新实例时会调用它们。 在上面的示例中，构造函数为：

```java
public Car(String name) {
	this.name = name;
}
```

构造函数必须与类本身具有相同的名称。 它们可以带或不带参数。 此示例中的参数为“名称”。 我们使用如下构造函数创建一个新的`car`对象（我将在本教程的后面部分对此进行详细说明）：

```java
Car audi = new Car("Audi");
```

## Java 注释

您是否注意到第 11、16 和 21 行前面的`//`标记？ 这就是我们用 Java 编写注释的方式。 执行程序时，标记为注释的行将被忽略。 您可以编写注释以进一步解释代码中发生的事情。 撰写评论是一种好习惯，它将帮助其他人理解您的代码。 稍后再返回代码时，它也将为您提供帮助。

## 创建对象

现在让我们继续我们的汽车示例。 我们将创建第二个名为`CarTest`的类，并将其存储到名为`CarTest.java`的文件中

```java
public class CarTest {

	public static void main(String[] args) {
		// create new Audi car
		Car audi = new Car("Audi");
		// create new Nissan car
		Car nissan = new Car("Nissan");

		// print current speed of Audi - it is 0 
		audi.printCurrentSpeed();

		// call the accelerate method twice on Audi
		audi.accelerate();
		audi.accelerate();

		// call the accelerate method once on Nissan
		nissan.accelerate();

		// print current speed of Audi - it is now 20 mpH
		audi.printCurrentSpeed();
		// print current speed of Nissan - it is 10 mpH
		nissan.printCurrentSpeed();

		// now park the Audi car
		audi.park();

		// print current speed of Audi - it is now 0, because the car is parked
		audi.printCurrentSpeed();
	}

}
```

在上面的代码中，我们首先创建 2 个类型为`Car`的新对象 – `Audi`和`Nissan`。 这是`Car`类的两个单独实例（两个不同的对象），当我们调用`Audi`对象的方法时，这不会影响`Nissan`对象。

执行`CarTest`的结果将如下所示：

```java
The current speed of Audi is 0 mpH
The current speed of Audi is 20 mpH
The current speed of Nissan is 10 mpH
The current speed of Audi is 0 mpH
```

我鼓励您尝试使用该代码。 尝试向`Car`类添加新方法或编写新类。

在我们的下一个教程中，您将了解有关面向对象编程的[概念的更多信息](https://javatutorial.net/java-oop)。