Java 类和对象

简介: 本文介绍了Java编程中类和对象的基础知识,作为面向对象编程(OOP)的核心概念。类是对象的蓝图,定义实体类型;对象是具体实例,包含状态和行为。通过示例展示了如何创建表示汽车的类及其实例,并说明了构造函数、字段和方法的作用。同时,文章还探讨了访问修饰符的使用,强调封装的重要性,如通过getter和setter控制字段访问。最后总结了类与对象的关系及其在Java中的应用,并建议进一步学习继承等概念。

1. 概述

在本快速教程中,我们将了解 Java 编程语言的两个基本组成部分——类和对象。它们是面向对象编程 (OOP) 的基本概念,我们用它来模拟现实生活中的实体。

在 OOP 中,类是对象的蓝图或模板。我们用它们来描述实体的类型。

另一方面,对象是生命实体,由类创建。它们在各自的领域内包含某些状态,并通过各自的方法表现出某些行为。

2. 内容

简单来说,类代表一个定义或一种对象。在 Java 中,类可以包含字段、构造函数和方法。

让我们看一个使用代表汽车的简单 Java 类的示例:

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类的默认构造函数:

java

代码解读

复制代码

Car(){}

此构造函数只是用默认值初始化对象的所有字段。字符串初始化为null,整数初始化为零。

现在,我们的类有一个特定的构造函数,因为我们希望我们的对象在创建它们时定义它们的字段:

java

代码解读

复制代码

Car(String type, String model) {
    // ...
}

综上所述,我们编写了一个定义汽车的类。其属性由字段描述,字段包含类的对象状态,其行为则使用方法来描述。

3. 对象

虽然类是在编译时翻译的,但对象是在运行时从类创建的

类的对象称为实例,我们使用构造函数创建并初始化它们:

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方法来改变这种情况:

java

代码解读

复制代码

focus.increaseSpeed(10);
auris.increaseSpeed(20);
golf.increaseSpeed(30);

现在,我们改变了汽车的状态——它们都以不同的速度行驶。

4.访问修饰符

在前面的示例中,我们省略了访问修饰符以简化代码。通过这样做,我们实际上使用了默认的 package-private 修饰符。该修饰符允许从同一包中的任何其他类访问该类。

通常,我们会对构造函数使用公共修饰符,以允许所有其他对象访问:

java

代码解读

复制代码

public Car(String type, String model, String color) {
        // ...
        }

我们类中的每个字段和方法也应该通过特定的修饰符定义访问控制。类通常具有public修饰符,但我们倾向于将字段保留为 private

字段保存对象的状态,因此我们希望控制对该状态的访问。我们可以将其中一些字段保留为private,将其他字段保留为 public。我们通过称为 getter 和 setter 的特定方法来实现这一点。

让我们看一下具有完全指定访问控制的类:

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关键字和抽象类


转载来源:https://juejin.cn/post/7385464240917741608

相关文章
|
2月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
261 83
|
3月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
171 35
|
4月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
69 0
|
12天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
90 0
|
2月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
83 11
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
50 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
76 0
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
2月前
|
SQL Java 数据库连接
Java 期末考试救急必备涵盖绝大多数核心考点及五大类经典代码助你过关
本文为Java期末考试复习指南,涵盖基础语法、面向对象编程、异常处理、文件操作、数据库连接五大核心考点,提供详细解析与实用代码示例,助力快速掌握重点,高效备考,轻松应对考试。
61 0

热门文章

最新文章