IntroJava

十:Java中的类

客户类 vs 对象类

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);
    }
}

类似于以上学生类,对象类主要用来定义一种新的数据类型,它里边可以有属性方法,它的属性可以是基本数据类型,也可以是其它对象类型,它的方法描述了这个类的对象可以有哪些功能。在客户类中,我们定义该对象类的对象,然后通过访问对象.方法来修改对象的状态。

对象类的定义

对象类的定义可以由如下几部分构成:类的名字、类的属性、类的构造函数、类的方法,如下图所示:
Java类的结构

我们将在稍后的章节中对类的属性,类的构造方法进行详细的描述。