原文: https://javatutorial.net/java-objects-and-classes-tutorial

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

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

创建类

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

  1. public class Car {
  2. int currentSpeed;
  3. String name;
  4. public void accelerate() {
  5. }
  6. public void park() {
  7. }
  8. public void printCurrentSpeed() {
  9. }
  10. }

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

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

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

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

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

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

  1. public class Car {
  2. int currentSpeed;
  3. String name;
  4. public Car(String name) {
  5. this.name = name;
  6. }
  7. public void accelerate() {
  8. // add 10 miles per hour to current speed
  9. currentSpeed = currentSpeed + 10;
  10. }
  11. public void park() {
  12. // set current speed to zero
  13. currentSpeed = 0;
  14. }
  15. public void printCurrentSpeed() {
  16. // display the current speed of this car
  17. System.out.println("The current speed of " + name + " is " + currentSpeed + " mpH");
  18. }
  19. }

类名

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

Java 类构造函数

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

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

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

  1. Car audi = new Car("Audi");

Java 注释

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

创建对象

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

  1. public class CarTest {
  2. public static void main(String[] args) {
  3. // create new Audi car
  4. Car audi = new Car("Audi");
  5. // create new Nissan car
  6. Car nissan = new Car("Nissan");
  7. // print current speed of Audi - it is 0
  8. audi.printCurrentSpeed();
  9. // call the accelerate method twice on Audi
  10. audi.accelerate();
  11. audi.accelerate();
  12. // call the accelerate method once on Nissan
  13. nissan.accelerate();
  14. // print current speed of Audi - it is now 20 mpH
  15. audi.printCurrentSpeed();
  16. // print current speed of Nissan - it is 10 mpH
  17. nissan.printCurrentSpeed();
  18. // now park the Audi car
  19. audi.park();
  20. // print current speed of Audi - it is now 0, because the car is parked
  21. audi.printCurrentSpeed();
  22. }
  23. }

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

执行CarTest的结果将如下所示:

  1. The current speed of Audi is 0 mpH
  2. The current speed of Audi is 20 mpH
  3. The current speed of Nissan is 10 mpH
  4. The current speed of Audi is 0 mpH

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

在我们的下一个教程中,您将了解有关面向对象编程的概念的更多信息