Java中类定义的总结
在Java中,类是面向对象的重要内容。可以将类当做一种自定义类型,可以使用类来定义变量,使用类定义的变量叫做引用变量。
- 定义类
类的定义格式如下:
[修饰符] class 类名 {
零个或多个构造器定义;
零个或多个成员变量定义;
零个或多个成员方法定义;
}
对于修饰符而言,可以为public、final或abstract,当然也可以缺省,缺省时即我们常说的默认。至于类名,则和Java的标识符命名规则一致,或者可以说,类名是Java标识符的一种。
在类中,构造器、成员变量和成员方法都属于类的成员。其中,构造器是创建对象的关键。创建对象可以不用new,但是却不能没有构造器,因为通过反射方式也需要借助构造。当我们未手动编写构造器时,Java会默认提供一个无参的构造器。而成员变量则用来存储该类或该类实例的数据状态,方法则用来定义该类或该类实例的行为或功能。
这三个成员都可以定义零个或多个。如果三者都未定义,则视为空类。从语法上讲允许,但在实际中却意义不大。
一般情况下,类的各个成员之间的顺序可以任意指定,唯一需要注意的就是,static修饰的类无法访问非static修饰的成员变量。
- 定义成员变量
定义成员变量的语法如下:
[修饰符] 类型 成员变量名 [=默认值];
对于修饰符可以为public、protected、private、static、final。其中,public、protected、private只能出现一个。
对于类型而言,则是Java中所允许的所有类型,也就是我们认知的基本数据类型和引用数据类型。
对于成员变量名而言,命名规则遵循Java标识符的命名规则。
对于默认值而言,我们既可以指定,也可以不指定。不指定的时候,系统会根据类型给出对应的默认值。
- 定义方法
定义方法的语法如下:
[修饰符] 方法返回值 方法名(形参列表) {
零条或多条可执行语句;
}
对于修饰符而言,可以为:public、protected、private、static、final、abstract。其中,public、protected、private最多只能出现其一。
对于方法返回值而言,可以是Java所允许的所有数据类型,也就是我们认知的基本数据类型和引用数据类型。如果声明了返回值,则在方法中必须包含return语句,return语句返回的既可以是一个变量也可以是一个表达式,只要该变量的类型或表达式运算后的结果的类型与返回值类型匹配(要么与返回值类型相同,要么是返回值类型的子类)即可。若不需要有返回值,则需声明返回值类型为void。
对于方法名而言,与Java标识符的命名规则 保持一致。
对于形参列表而言,由零个或多个“参数类型 参数值”组合而成,以逗号进行间隔,形参列表声明了该方法可以接受的参数。
对于方法体内的可执行语句,一般情况下是顺序执行的。
- 定义构造器
定义构造器的语法如下:
[修饰符] 构造器名(形参列表) {
零条或多条可执行语句;
}
对于修饰符而言,可以是public、protected、private。
对于构造器名而言,必须与类名保持一致。
对于形参列表而言,表示了该构造器所能接收的参数,由零个或多个“参数类型 参数值”组合而成,以逗号进行间隔。
需要说明一点的是,构造器是没有返回值的,或者说返回值不能由我们手动来指定。因为构造器的返回值是通过new生成的对象的地址,因此我们不能手动来指定返回值,即使是void也不允许。
虽然我们为构造器指定了返回值也能通过编译,但实际上,加了返回值的构造器已经变成了一个与类名相同的普通方法,而非构造器。