构造方法的理解 —— 在类的实例化时将传入的参数,赋值给类中的成员变量
比如: student1 = new Student( 10 , "王二狗")
对应的构造方法
public class Stuednt{
private int age,
private String name,
public Student(int age, String name){
this.name = name;
this.age = age;
}
}
student1 = new Student( 10 , "王二狗")
成员方法 public void sayHello()
静态方法 public static void sayHello() —— (用static修饰)
注意:成员方法、成员变量 ——依赖实例 ,通过实例调用。静态方法、静态变量依赖类,和类的内存存在一起,节约了内存, 类名直接调用。
| 方法类型 | 是否有返回值 | 是否有方法体 | 调用方式 | 是否依赖对象 | 典型应用场景 |
|---|---|---|---|---|---|
| 构造方法 | ❌(无返回值) | ✅(必须有) |
new 类名(...) 自动调用 |
✅ 依赖对象 | 创建对象并初始化属性 |
| 实例方法 | ✅(可有) | ✅ | 对象.方法名(...) |
✅ 依赖对象 | 操作对象的成员变量 |
| 静态方法 | ✅(可有) | ✅ | 类名.方法名(...) |
❌ 不依赖对象 | 工具方法、通用逻辑 |
| 抽象方法 | ❌(无具体实现) | ❌(无方法体) | 由子类实现后 对象.方法名(...)
|
✅ 依赖对象 | 设计规范,强制子类实现 |
不能组合在一起的修饰符
| 组合 | 合法性 | 原因 |
|---|---|---|
abstract static class |
❌ 不允许 | 顶级类不能是静态,static 意味着属于外部类(仅内部类可 static),抽象类需要被继承,顶级类 static 无意义 |
abstract final class |
❌ 不允许 |
abstract 表示类可以被继承,final 表示类不能被继承,两者语义冲突 |
abstract private class(顶级类) |
❌ 不允许 | 顶级类不能是 private,Java 语法限制 |
abstract static final |
❌ 不允许 |
abstract 要求可继承、可实现,final 不可继承,冲突 |