类

类 属于 Java

12 个练习

关于 类

Java 中主要的面向对象构造是_类_,它把数据(字段,又称实例变量)和行为(方法)组合在一起。类的字段和方法称为它的_成员_。

可以通过访问修饰符来控制对成员的访问,其中最常见的两个是:

  • public:任何代码都可以访问该成员(没有任何限制)。
  • private:只有同一个类中的代码才能访问该成员。

在 Java 中,如果没有指定访问修饰符,默认是_包可见性_。此时,该成员对定义在同一个包中的所有类可见。

上面这种把相关的数据和行为组合在一起,并限制对成员的访问的做法,称为封装,它是面向对象的核心概念之一。

你可以把类看作创建该类实例的模板。要创建类的实例(也称为_对象_),需要使用new关键字:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

字段有类型和名字(使用 camelCase 命名),可以定义在类中的任意位置(类名使用 PascalCase 命名)。

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

你可以选择为字段赋一个初始值。如果字段_没有_指定初始值,它会被设为其类型的默认值。实例的字段值可以用点号表示法访问和更新。

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

私有字段通常是在调用方法时作为副作用被更新的。这类方法通常不返回任何值,这时返回类型应该是void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

注意,在 Java 类中使用公有字段并不常见。通常使用的是私有字段,并通过getter 和 setter来访问。

在类中,this关键字指的是当前类。当形参与字段同名时,这一点尤其有用:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
通过 GitHub 编辑 该链接会在新窗口或标签页中打开

学习 类