“好的。上次我们讨论了类。今天,我要告诉你如何创建对象。非常容易。写入关键字 new,然后写入要创建其对象的类的名称。”

示例
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

“我已经明白了。

“我知道你明白了。请继续听讲。”

“创建对象时,你可以传递放在括号内的各种参数。今天晚些时候我会详细介绍这一点。现在我们来看一下 Cat 类:”

Java 语言代码 说明
class Cat {
    public String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

name 为实例变量。它有一个 public 访问修饰符,使其在项目中随处可见。


getName 方法为 getter。它将返回实例变量 name 的值。该方法的名称源自单词“get”加上首字母大写的变量名称。


setName 方法为 setter。它用于为实例变量 name 赋予新值。该方法的名称源自单词“set”加上首字母大写的变量名称。在此方法中,参数与实例变量具有相同的名称,因此我们在实例变量的名称之前加上 this

“这些 getter 和 setter 是什么?”

“在 Java 中,普遍做法是对其他类隐藏变量。通常,在类的内部声明的变量具有 private 修饰符。

“要允许其他类更改这些变量的值,可为每个变量创建一对方法:getsetget 方法返回变量的当前值。set 方法为变量设置新值。

“这样做有什么意义呢?”

“如果不希望任何人更改实例变量的值,可以不为它创建 set 方法,或者将该变量声明为 private此外,还可以向该方法添加附加数据检查。如果传递的新值无效,则不会进行任何更改。”

“我明白了。”

“由于一个类可以包含很多变量,因此 get 和 set 方法的名称通常包含它们所处理的变量的名称。”

“如果一个变量名为‘name’,则方法名为 setNamegetName等等。”

“我明白了。这似乎很合理。”

“下面是处理新创建的对象的其他示例:”

步骤 代码 说明
1
new Cat();
创建 Cat 对象
2
Cat catOscar = new Cat();
在变量 catOscar 中存储 Cat 对象
3
catOscar.name = "奥斯卡";
catOscar.age = 6;
catOscar.weight = 4;
使用以下数据填充对象:name、age、weight
4
catOscar.sleep();
在对象上调用方法
5
catOscar.fight(catSmudge);
使对象交互。