跳到主要内容
版本:Next

类与对象

类(Class)是对象的"模板",对象(Object)是类的具体实例。Java 是一门纯面向对象的语言,所有代码都围绕类展开。

定义一个类​

public class Student {
// 成员变量(属性)
String name;
int age;

// 构造方法:创建对象时调用
public Student(String name, int age) {
this.name = name; // this 指当前对象
this.age = age;
}

// 成员方法(行为)
public void introduce() {
System.out.println("我是 " + name + ",今年 " + age + " 岁");
}
}

创建和使用对象​

Student stu = new Student("Alice", 18);
stu.introduce(); // 我是 Alice,今年 18 岁
System.out.println(stu.name);

new 关键字在堆上分配对象,并调用构造方法完成初始化。

构造方法​

特点说明
名称必须与类名完全相同
返回值没有返回值类型(连 void 都不写)
默认构造不写任何构造方法时,编译器自动生成无参构造
重载可以定义多个参数不同的构造方法
public Student() {
this("未知", 0); // this(...) 调用本类其他构造方法
}

static 关键字​

static 修饰的成员属于类本身,而非某个对象,所有实例共享一份:

public class Counter {
static int count = 0; // 类变量
int id;

public Counter() {
count++;
id = count;
}

public static void showCount() { // 类方法
System.out.println("共创建 " + count + " 个对象");
}
}

调用方式:Counter.showCount(),无需创建对象。注意 static 方法中不能直接使用非静态成员。

方法重载(Overload)​

同一个类中,方法名相同、参数列表不同(个数或类型不同)即为重载:

public int add(int a, int b) { return a + b; }
public double add(double a, double b) { return a + b; }