前面说了类和对象比较宽泛的定义,现在专在Java编程语言中,来说说说Java中类,以及如何写出一个合乎编译器要求的类来。
前面说了,类可以看做是对象的蓝图,它是用来描述一组具有相同特征对象的。那么,对象中,最重要的两种特征内容,就是:
1.数据
2.行为
数据就是描述对象的信息的静态信息了。比如一辆汽车,它的型号,价格,出厂日期等等,都是这个汽车对象的静态信息数据。
行为就是这个对象可以完成的行为,操作等,是对象的动态特征。接上个例子,汽车可以启动,行驶,刹车等等,都是这辆汽车的动态特征。
通过这两方面的特这内容,基本上这个对象就可以描述清楚了。
Java中类就是完全模拟了类的特征内容。在Java类的定义规范里面,有两方面内容来对应类中的数据和行为:
1.属性
用来描述对象的数据元素称为对象的属性(也称为数据/状态)
2.方法
对对象的属性进行的操作称为对象的方法(也称为行为/操作)
Java中类的声明语法规范(即如何定义一个标准的Java类)
语法规则:
[< modifiers>] class < class_name> {
[<attribute_declarations>]
[<constructor_declarations>]
[<method_declarations>]
}
中括号中内容,说明是可以省略的。尖括号中的内容,是必须做出定义的。其他的内容即关键字,和最基本的符号。比如class,说明定义了一个类,而不是其他的Java语言组件内容。
下面这个是一个简单的类的声明示例:
public class Student {
// 定义属性
private String name;
private String sex;
private int grade;
private int age;
// 定义属性“name”的设置方法
public void setName(String student_name) {
name = student_name;
}
// 定义属性“name”的获取方法
public String getName() {
return name;
}
// 定义属性“Sex”的设置方法
public void setSex(String student_sex) {
sex = student_sex;
}
// 定义属性“Sex”的获取方法
public String getSex() {
return sex;
}
// 定义属性“grade”的设置方法
public void setGrade(int student_grade) {
grade = student_grade;
}
// 定义属性“grade”的获取方法
public int getGrade() {
return grade;
}
// 定义属性“age”的设置方法
public void setAge(int student_age) {
age = student_age;
}
// 定义属性“age”的获取方法
public int getAge() {
return age;
}
}
基本上看这个范例,它要做什么,是什么意思,看代码比较清楚了。这就是面向对象编程语言(或者说高级编程语言)比较贴近自然语言的原因。
下面是简单的说明:
<modifiers>为修饰符,可用的有public,abstract和final等关键字(关键字是Java语言中赋以特定含义、并用做专门用途的单词,类名、方法名和属性名以及变量名不能是关键字),用于说明所定义的类有关方面的特性。对于各种关键字和它们的含义以及各自的适用范围,请看后续的介绍;
class也是Java语言关键字,表明这是一个类的定义;
<class_name>是类的名字,如示例中的“Student”,类名一般使用一个用于表示这个类的名词来表示;这里就说明定义了一个学生类,用来描述一组学生对象
<attribute_declarations>是属性(attribute)声明部分,如示例中的“age”、“name”、“sex”、“grade”。具体语法请看后面部分内容;
<constructor_declarations>是构造器(constructor)声明部分。具体语法请看后面部分内容;
<method_declarations>是方法(method)声明部分,如示例中的public void setGrade(int student_grade)、public int getGrade()等。具体语法请看后面部分内容。