类和对象的概念

类和对象的概念

现实世界由无数个具体的个体组成,面向对象编程正是通过对这些个体进行归纳和抽象,提炼出”类”这一概念。

对象与类的关系

对象(具体、独一无二)类(抽象、归类)
唐伯虎人(Person)
小强蟑螂(Cockroach)
旺财狗(Dog)
秋香人(Person)
霸王枪武器(Weapon)
class Person {}
class Cockroach {}
class Dog {}
class Weapon {}

Person tbh = new Person(); // 唐伯虎是人类的一个具体实例Code language: JavaScript (javascript)

核心定义

概念说明
对象现实世界中具体存在的个体,独一无二
类对一组具有相同特征和行为的对象的抽象描述

你可以说”唐伯虎是人类”,但不能说”人类是唐伯虎”。类是抽象的模型,对象是模型塑造出的具体产物。

类的组成部分

组成部分对应现实Java 中的体现
属性/特征对象有什么成员变量
行为/能力对象能做什么成员方法
class Person {
    // 属性(成员变量)
    String name;
    int age;
    String gender;

    // 行为(成员方法)
    void eat() {
        System.out.println(name + "在吃饭");
    }

    void sleep() {
        System.out.println(name + "在睡觉");
    }
}Code language: JavaScript (javascript)

一个类可以创建多个对象

Person tbh = new Person();  // 唐伯虎
tbh.name = "唐伯虎";
tbh.age = 25;

Person qx = new Person();  // 秋香
qx.name = "秋香";
qx.age = 22;Code language: JavaScript (javascript)
对比项唐伯虎(tbh)秋香(qx)
结构相同(都有 name、age、gender)相同
数据name="唐伯虎", age=25name="秋香", age=22

同一个类创建的对象,结构相同,数据不同。

类与对象的关系总结

类比类对象
月饼模具模具决定了月饼的形状和花纹用模具压出的每一个具体月饼
建筑图纸图纸规定了房屋的格局按图纸建好的每一栋具体房屋
汽车设计图设计图定义了车的参数生产线上下来的每一辆具体车

创建对象的过程

Person p = new Person();Code language: JavaScript (javascript)
步骤说明
Person p声明一个 Person 类型的引用变量 p
new Person()在堆内存中创建 Person 对象,成员变量赋予默认值
=将对象地址赋值给引用变量 p

注意事项

要点说明
类是模板类本身不占用对象的内存,只定义结构
对象是实体每个 new 出来的对象在堆中独立存在
引用变量栈中的引用变量存储的是对象在堆中的地址
空引用引用变量为 null 时调用成员会抛 NullPointerException

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注