self.name, self.age(实例属性) ↔ Java 的实例成员变量
| Python | Java |
|---|---|
定义在 __init__ 或方法中,通过 self.xxx 赋值 |
定义在类中,不加 static 的字段 |
| 每个实例独立拥有自己的副本 | 每个对象有自己的副本 |
示例:self.name = "Alice" |
示例:private String name; |
✅ 对应关系成立:
self.name就是 Python 中的实例属性,等价于 Java 的非静态成员变量。
类的“静态变量” ↔ Java 的 static 变量?
这里要小心!Python 没有真正的“静态变量”语法关键字,但可以通过在类体中直接定义变量来模拟:
class MyClass: count = 0 # 这是一个类属性(class attribute) def __init__(self): MyClass.count += 1count 是类属性(class attribute),所有实例共享。MyClass.count 会影响所有实例(除非某个实例自己创建了同名的实例属性)这确实类似于 Java 的 static 变量:
public class MyClass { public static int count = 0;}“类的常量” ↔ Java 的类常量(public static final)?
Python 没有真正的常量机制(没有 final 或 const 关键字)。但约定俗成:
而 Java 的:
public static final double PI = 3.14159; 2// PI = 3; // 编译错误!