Java中有2种类:客户类和对象类。在我们创建第一个Hello World! Java程序的时候,我们就已经使用过Java类了,这个类是一个客户类,它的main()方法是作为程序的入口的。
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
在客户类中,我们主要来定义变量,定义其他对象类的对象,通过调用对象的方法来实现一定的业务逻辑。
public class Main {
public static void main(String[] args) {
System.out.println("Hello, Client Class!");
Student ada = new Student("Ada Lovelace", 2017, 12345, 3.2, 4);
Student alan = new Student("Alan Turing", 2016, 12346, 3.8, 9);
Student margret = new Student("Margret Hamilton", 2017, 12347, 3.92, 0);
System.out.println("Ada is graduating: " + ada.isGraduating());
System.out.println("Alan is graduating: " + alan.isGraduating());
System.out.println("Margret is graduating: " + margret.isGraduating());
}
}
与客户类相对应的是对象类,比如我们上一节课中定义的学生类:
public class Student {
String name;
int grad;
int ID;
double GPA;
int abs;
public Student(String name, int grad, int ID, double GPA, int abs) {
this.name = name;
this.grad = grad;
this.ID = ID;
this.GPA = GPA;
this.abs = abs;
}
public boolean isGraduating() {
return (GPA > 2.0 && abs < 10 && grad == 12);
}
}
类似于以上学生类,对象类主要用来定义一种新的数据类型,它里边可以有属性和方法,它的属性可以是基本数据类型,也可以是其它对象类型,它的方法描述了这个类的对象可以有哪些功能。在客户类中,我们定义该对象类的对象,然后通过访问对象.方法来修改对象的状态。
对象类的定义可以由如下几部分构成:类的名字、类的属性、类的构造函数、类的方法,如下图所示:
ClassA a = new ClassA();
这样子的方法来定义这个类的对象。对象.属性=value
来修改对象的状态,而是通过类为我们曝露出来的公共方法来修改对象的状态。这也是面向对象语言的封装性的一个体现。我们将在稍后的章节中对类的属性,类的构造方法进行详细的描述。