Java从入门到放弃(十九):面向对象基础

class和instance

在面向对象编程(OOP)中,classinstance是两个核心概念,它们共同构成了对象模型的基础。理解这两个概念对于掌握OOP至关重要。

首先,class可以被视为创建对象的蓝图或模板。它定义了一类对象的属性(也称为字段或变量)和方法(函数或行为)。class本身并不是一个具体的实体,而是提供了创建具体对象的指南。在Java代码中,class通过关键字class来定义,如示例中的Book类。

// 定义一个类
class Book {
    // 属性和方法
}

另一方面,instance是指根据class创建的具体对象。每个instance都是其class的一个具体表现,拥有独立的属性值(即状态)和可以执行的方法。在Java中,通过使用new关键字来创建一个类的实例。例如,根据Book类,我们可以创建多个书籍实例,每个实例都有其独特的属性值,如书名、作者等。

// 创建一个类的实例
Book book1 = new Book();
Book book2 = new Book();
Book book3 = new Book();

每个instance都是class的一个实例,这意味着它们都属于同一个类,共享相同的方法,但它们的属性值可以不同。这种设计允许我们创建多个具有相似特征和行为的对象,同时保持每个对象的独立性和个性化。

操作示例

现在我们定义一个Person类,用来简单描述一个人:

public class Person {
    public String name; // 定义一个名为name的字段,类型为String
    public int age;      // 定义一个名为age的字段,类型为int
}

在这个Person类中,我们定义了两个公共(public)字段:nameagepublic关键字表示这些字段可以被任何其他类访问,这是Java中的一种访问修饰符。字段是用来存储对象状态的变量,它们是类的组成部分。

创建类的实例是通过new关键字完成的。以下是如何根据Person类创建两个不同的实例,并分别通过变量minghong指向它们。

Person ming = new Person(); // 创建一个Person类型的实例,并将其引用赋给变量ming
Person hong = new Person(); // 创建另一个Person类型的实例,并将其引用赋给变量hong

每个实例都是独立的,并且拥有自己的nameage字段。我们可以通过引用变量来访问和修改这些字段的值。

通过引用变量,我们可以对实例的字段进行操作。例如:

ming.name = "Xiao Ming"; // 给ming实例的name字段赋值
ming.age = 12;             // 给ming实例的age字段赋值
System.out.println(ming.name); // 输出ming实例的name字段的值

hong.name = "Xiao Hong";  // 给hong实例的name字段赋值
hong.age = 15;              // 给hong实例的age字段赋值

它们在内存中的结构如下:

两个instance拥有class定义的nameage字段,且各自都有一份独立的数据,互不干扰。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧