Java 类和对象
1. 概述
在本快速教程中,我们将了解 Java 编程语言的两个基本组成部分——类和对象。它们是面向对象编程 (OOP) 的基本概念,我们用它来模拟现实生活中的实体。
在 OOP 中,类是对象的蓝图或模板。我们用它们来描述实体的类型。
另一方面,对象是生命实体,由类创建。它们在各自的领域内包含某些状态,并通过各自的方法表现出某些行为。
2. 内容
简单来说,类代表一个定义或一种对象。在 Java 中,类可以包含字段、构造函数和方法。
让我们看一个使用代表汽车的简单 Java 类的示例:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码class Car {
// fields
String type;
String model;
String color;
int speed;
// constructor
Car(String type, String model, String color) {
this.type = type;
this.model = model;
this.color = color;
}
// methods
int increaseSpeed(int increment) {
this.speed = this.speed + increment;
return this.speed;
}
// ...
}
这个 Java 类通常表示一辆汽车。我们可以从这个类创建任何类型的汽车。我们使用字段来保存状态,并使用构造函数从这个类创建对象。
每个 Java 类默认都有一个空构造函数。如果我们没有像上面那样提供特定的实现,我们将使用它。以下是我们的Car类的默认构造函数:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码Car(){}
此构造函数只是用默认值初始化对象的所有字段。字符串初始化为null,整数初始化为零。
现在,我们的类有一个特定的构造函数,因为我们希望我们的对象在创建它们时定义它们的字段:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码Car(String type, String model) {
// ...
}
综上所述,我们编写了一个定义汽车的类。其属性由字段描述,字段包含类的对象状态,其行为则使用方法来描述。
3. 对象
虽然类是在编译时翻译的,但对象是在运行时从类创建的。
类的对象称为实例,我们使用构造函数创建并初始化它们:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码Car focus = new Car("Ford", "Focus", "red");
Car auris = new Car("Toyota", "Auris", "blue");
Car golf = new Car("Volkswagen", "Golf", "green");
现在,我们已经创建了不同的Car对象,它们都来自同一个类。这就是重点,在一个地方定义蓝图,然后在多个地方多次重复使用它。
到目前为止,我们有三个Car对象,由于速度为零,它们都处于停放状态。我们可以通过调用increaseSpeed方法来改变这种情况:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码focus.increaseSpeed(10);
auris.increaseSpeed(20);
golf.increaseSpeed(30);
现在,我们改变了汽车的状态——它们都以不同的速度行驶。
4.访问修饰符
在前面的示例中,我们省略了访问修饰符以简化代码。通过这样做,我们实际上使用了默认的 package-private 修饰符。该修饰符允许从同一包中的任何其他类访问该类。
通常,我们会对构造函数使用公共修饰符,以允许所有其他对象访问:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码public Car(String type, String model, String color) {
// ...
}
我们类中的每个字段和方法也应该通过特定的修饰符定义访问控制。类通常具有public修饰符,但我们倾向于将字段保留为 private。
字段保存对象的状态,因此我们希望控制对该状态的访问。我们可以将其中一些字段保留为private,将其他字段保留为 public。我们通过称为 getter 和 setter 的特定方法来实现这一点。
让我们看一下具有完全指定访问控制的类:
代码语言:javascript代码运行次数:0运行复制java 代码解读复制代码public class Car {
private String type;
// ...
public Car(String type, String model, String color) {
// ...
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getSpeed() {
return speed;
}
// ...
}
我们的类被标记为 public,这意味着我们可以在任何包中使用它。 此外,构造函数也是public,这意味着我们可以在任何其他对象中从此类创建一个对象。
我们的字段被标记为 私有的,这意味着它们不能直接从我们的对象访问,但我们可以通过 getter 和 setter 访问它们。 type 和model 字段没有 getter 和 setter,因为它们保存着对象的内部数据。我们只能在初始化期间通过构造函数来定义它们 。**
此外,颜色可以访问和更改,而 速度只能访问,不能更改。我们通过专门的公共方法increaseSpeed() 和declineSpeed() 强制调整速度。
换句话说,我们使用访问控制来封装对象的状态。
5. 结论
在本文中,我们介绍了 Java 语言的两个基本元素:类和对象,并展示了它们的使用方式和原因。介绍了访问控制的基础知识并演示了其用法。
要学习Java语言的其他概念,我们建议下一步阅读继承、super关键字和抽象类。
发布评论