定义
Java中,类(class)顾名思义,就是一个种类,这个种类有其状态和行为。而对象(object)这是某一类中的具体个体。
比如在学生管理系统中,学生就是一类,而ShadyPi是学生的一个实例,即对象。
关于源文件
在源文件(.java)中,我们可以声明一个类及其状态与行为,其主要规则为:
- 一个源文件中只能有一个 public 类
- 一个源文件可以有多个非 public 类
- 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Student,那么源文件应该命名为Student.java。
- 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
- 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
- import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
类的声明
首先创建一个项目,在源文件(src)部分创建一个包(package),包主要用来对类和接口进行分类。当开发 Java 程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。一般我们给包命名时用小写字母开头,用来与大写字母开头的类区分开。
类的成员变量
在此包下面,我们新建一个类的源文件,源文件名与类名一致,都叫Student。对于Student类,我们定义三个属性:name, age和grade。这三个属性反映到代码中就是定义了三个成员变量。
String name;
int age;
double grade;
类的方法
差不多就是行为、函数的意思,从英文翻译过来是方法(method)
同时定义两个函数,一个是构造函数(constructor),用来构造一个对象。每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
public Student(String name,int age,double grade) {
this.name=name;
this.age=age;
this.grade=grade;
}
另一个是输出函数,用来输出类中的变量。
public void Stuprint() {
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("grade:"+grade);
}
这样就完成了一个简单的Student类的声明。
package student;
import java.io.*;
public class Student {
String name;
int age;
double grade;
public Student(String name,int age,double grade) {
this.name=name;
this.age=age;
this.grade=grade;
}
public void Stuprint() {
System.out.println("name:"+name);
System.out.println("age:"+age);
System.out.println("grade:"+grade);
}
}
类的使用
我们在student包中另外创建一个文件Test.java,其中的Test类用于测试调用我们之前写好的Student类。
由于这个源文件是要运行起来进行输入输出的,所以在该类里有main函数,程序在执行时就会按照main函数执行。
创建类的对象
在main函数里,我们就可以调用Student类了。首先用new创建一个Student类的对象A,在这个对象里储存学生ShadyPi的信息。
Student A=new Student("ShadyPi",19,60.1);
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
调用类的函数
对对象A调用Student类中的Stuprint函数,就可以输出学生信息。
A.Stuprint();
访问类的成员变量
除了调用函数输出,我们还可以直接访问类的成员变量输出。
System.out.println(A.name);
完整代码如下:
package student;
public class Test {
public static void main(String[] args) {
Student A=new Student("ShadyPi",19,60.1);
A.Stuprint();
System.out.println(A.name);
}
}
运行结果如下: