Java 面向对象 · 交互课程

类与对象

类与对象

Java 是纯面向对象语言:程序的基本单元是「类」,运行时的基本单元是「对象」。理解两者关系,是整个 OOP 的地基。

类 = 蓝图

类描述「一类事物长什么样、能做什么」——字段(状态)+ 方法(行为):

public class Dog {
    String name;   // 字段:状态
    int age;

    void bark() {  // 方法:行为
        System.out.println(name + " 汪汪!");
    }
}

Dog 本身不占运行内存,它只是一份定义。

对象 = 实例

用 new 依据类创建具体对象:

Dog d1 = new Dog();   // 堆上创建对象,d1 是引用
Dog d2 = new Dog();   // 另一个独立对象

一句话:类是模板,对象是按模板造出来的实例。 同一个类可以造出任意多个对象。

交互实验:类定义构建器(ClassBuilder)

三步走:① 写类——把字段卡、方法卡点进类框;② new 对象——每个字段自动获得 Java 默认值;③ 访问成员——赋值语句只改实例内存,不改类本身。

类名(创建对象后锁定)

字段卡(点选进类框)

方法卡(点选进类框)

public class Student {
    String name;
    int age;

    public void sayHi() {
    }
}

构造方法与 this

public class Dog {
    String name;
    int age;

    Dog() { this("Rex", 1); }                 // 无参 → 委托给有参构造

    Dog(String name, int age) {
        this.name = name;                     // this 区分成员变量与参数
        this.age = age;
    }

    void bark() { System.out.println(name + " 汪汪!"); }
}

Dog d1 = new Dog();                            // 走无参构造(内部委托)
Dog d2 = new Dog("Fido", 3);                   // 走有参构造

封装:数据保护(预告)

面向对象的第一个支柱就是封装:把数据和操作它的代码捆绑进对象内部,属性用 private 隐藏、对外只暴露 public 受控入口(getter/setter),在方法里做校验后再改数据。访问控制符的细节与四种可见范围,将在下一课《封装与继承》中展开。

学习小测验

学习小测验

Q1

关于 Java 中「类」和「对象」,哪个说法正确?

Q2

执行 new Dog() 后发生了什么?

Q3

关于构造方法,正确的是( )

Q4

this 在构造方法首句 this("Rex", 1) 中的作用是( )

Q5

default(不写修饰符)与 protected 的关键区别是( )

Q6

把属性设为 private 并提供 public getter/setter 的目的是( )