原文: https://www.programiz.com/java-programming/class-objects

在本教程中,您将学习 Java 中的面向对象编程,并借助示例来学习 Java 类和对象。

Java 是一种面向对象的编程语言。 它基于对象的概念。

这些对象具有两个特征:

  • 状态(字段)
  • 行为(方法)

例如,

  1. Lamp是对象
    状态onoff
    行为turnOnturnOff
  2. Bicycle是对象
    状态currentGeartwoWheelsnumberOfGear
    行为brakingacceleratingchangingGears

面向对象编程的原理:

面向对象编程的重点是将复杂的编程任务分解为包含字段(用于存储数据)和方法(用于对字段执行操作)的对象。


Java 类

在用 Java 创建对象之前,需要定义一个类。 类是对象的蓝图。

我们可以将类视为房子的草图(原型)。 它包含有关地板,门,窗户等的所有详细信息。基于这些描述,我们建造了房屋。 房子是对象。

由于可以用相同的描述制作许多房屋,因此我们可以根据一个类创建许多对象。


如何用 Java 定义类?

这是我们可以在 Java 中定义类的方法:

  1. class ClassName {
  2. // variables
  3. // methods
  4. }

例如:

  1. class Lamp {
  2. // instance variable
  3. private boolean isOn;
  4. // method
  5. public void turnOn() {
  6. isOn = true;
  7. }
  8. // method
  9. public void turnOff() {
  10. isOn = false;
  11. }
  12. }

在这里,我们创建了一个名为Lamp的类。

该类具有一个名为isOn的变量,以及两种方法turnOn()turnOff()。 在类中定义的这些变量和方法称为该类的成员

在上面的示例中,我们使用了关键字privatepublic。 这些被称为访问修饰符。 要了解更多信息,请访问 Java 访问修饰符


Java 对象

对象称为类的实例。 例如,假设Animal是类,则可以将CatDogHorse等视为Animal类的对象。

这是我们如何用 Java 创建对象的方法:

  1. className object = new className();

在这里,我们使用构造器className()创建对象。 构造器与类具有相同的名称,并且与方法类似。 要了解有关 Java 构造器的更多信息,请访问 Java 构造器

让我们看看如何创建Lamp类的对象。

  1. // l1 object
  2. Lamp l1 = new Lamp();
  3. // l2 object
  4. Lamp l2 = new Lamp();

在这里,我们使用Lamp类(Lamp())的构造器创建了名为l1l2的对象。

对象用于访问类的成员。 让我们创建Lamp类的对象


如何访问成员?

对象用于访问类的成员。 我们可以使用.运算符访问成员(调用方法和访问实例变量)。 例如,

  1. class Lamp {
  2. turnOn() {...}
  3. }
  4. // create object
  5. Lamp l1 = new Lamp();
  6. // access method turnOn()
  7. l1.turnOn();

该语句在l1对象的Lamp类内调用turnOn()方法。

我们已经多次提到方法这个词。 在下一章中,您将详细了解 Java 方法。 这是您现在需要知道的:

当使用上述语句调用该方法时,将执行turnOn()方法主体内的所有语句。 然后,程序的控制跳回到l1.turnOn()之后的语句;

Java 类和对象 - 图1

Java 中的方法的原理

同样,可以通过以下方式访问实例变量:

  1. class Lamp {
  2. boolean isOn;
  3. }
  4. // create object
  5. Lamp l1 = new Lamp();
  6. // access method turnOn()
  7. l1.isOn = true;

示例:Java 类和对象

  1. class Lamp {
  2. boolean isOn;
  3. void turnOn() {
  4. // initialize variable with value true
  5. isOn = true;
  6. System.out.println("Light on? " + isOn);
  7. }
  8. void turnOff() {
  9. // initialize variable with value false
  10. isOn = false;
  11. System.out.println("Light on? " + isOn);
  12. }
  13. }
  14. class Main {
  15. public static void main(String[] args) {
  16. // create objects l1 and l2
  17. Lamp l1 = new Lamp();
  18. Lamp l2 = new Lamp();
  19. // call methods turnOn() and turnOff()
  20. l1.turnOn();
  21. l2.turnOff();
  22. }
  23. }

输出

  1. Light on? true
  2. Light on? false

在上面的程序中

  1. 我们创建了一个名为Lamp的类。

  2. 该类具有一个实例变量isOn和两个方法turnOn()turnOff()

  3. Main类中,我们创建了Lamp类的两个对象l1l2

  4. 然后我们使用l1对象调用turnOn(),并使用l2对象调用turnOff()

    1. l1.turnOn();
    2. l2.turnOff();
  1. turnOn()方法将l1对象的isOn变量设置为true。 并打印输出。 同样,turnOff()方法将l2对象的isOn变量设置为false并打印输出。

注意:由于某种原因,在类内部定义的变量称为实例变量。 创建对象时,它称为类的实例。

每个实例都包含自己在类内部定义的变量的副本。 因此,称为实例变量。 例如,对象l1l2isOn变量不同。

在接下来的教程中,我们将探索有关 Java 的面向对象编程的更多信息。