AptuSource




Java 类

什么是类?

在面向对象的设计中,类是最基本的概念,它相当于是创建对象的模板。

Java 中的类可能由以下 5 部分组成:

  • 字段
  • 方法
  • 构造函数
  • 静态初始化(Static initializers)
  • 实例初始化(Instance initializers)

字段和方法也叫做成员变量和成员方法,一个类中可以有任意多个字段和方法。

一个类中至少需要一个构造函数,用于创建类的实例。

初始化代码段用于初始化类中的字段,一个类中可以有任意多个静态或实例初始化代码段。

类的声明

Java 中最普通的声明类的方式如下:

<modifiers> class <class name> {
    // Body of the class
}

<modifiers>用于在声明类的时候指定类的修饰符。在类的声明中可以有 0 个或多个修饰符。

关键字class用于声明一个类。

<class name>是用户定义的类名,它必须是符合 Java 规定的合法的唯一标识。

每个类都有本体(body),它是由一对大括号({})所包含的代码段。

类的本体由不同的部分组成,例如字段,方法等。

下面的代码定义了一个名为 Dog 的类,这个类中没有任何代码,并且也没有使用任何修饰符。

class Dog  {
}

成员变量

类的成员变量表示类的属性。

例如,每只狗都需要两个属性:名字和性别。那么 Dog 类就需要两个成员变量,一个用于表示名字,一个用于表示性别。

成员变量声明在类的本体中,语法如下:

<modifiers> class  className {
   <modifiers> <data type> <field name> = initialvalue;
   <modifiers> <data type> fieldName;
}

成员变量的声明可以有 0 个或多个修饰符。

在声明成员变量的时候,将数据类型放在变量名前。另外,我们可以在声明的时候直接初始化变量,这是一个可选的操作。

下面的代码演示了如何将这两个变量添加到 Dog 类中:

class Dog  {
    String  name; 
    String gender;
}

在 Java 中有个不成文的约定,类名以大写字母开始,后接驼峰格式的单词,例如 Table,FirstTime,等。

成员变量和方法名以小写字母开始,后接驼峰格式的单词,例如 firstName,等。

Dog 类中声明了两个 String 类型的变量,name 和 gender。那么,每个 Dog 类型的对象都将会拥有这两个属性。

Java 类中可以声明下面两种类型的变量:

  • 类变量(Class fields)
  • 实例变量(Instance fields)

有时候,变量是属于类本身而与任何类的对象无关。

比如,我们要将 Dog 进行计数,那么计数的数值就和任何 Dog 对象无关。

无论创建了多少个对象,类变量始终只会有一个拷贝。

name 和 gender 是 Dog 类的两个实例变量,下面我们再为 Dog 类创建一个类变量count。注意,在声明类变量的时候需要使用修饰符 static

class Dog  {
    String name;           // An  instance variable
    String gender;         // An  instance variable
    static long  count;    // A  class  variable  because of  the   static  modifier
}

类变量也称为静态变量,实例变量也称为非静态变量。