构造方法 | 实例方法 | 类方法 | |
---|---|---|---|
语法定义 | 没有类型 class A{ int x,y; Point(){ x = 1; y = 1; } Point(int a,int b){ x = a; y = b; } } | class A { int a; float max(float x,float y) { … } } | 有static修饰 class A { int a; static float jerry() { … } static void speak (String s) { … } } |
成员变量 | 局部变量 | |
---|---|---|
类中的位置不同 | 类中方法外 | 方法定义中或者方法声明上 |
内存中的位置不同 | 在堆中 | 在栈中 |
生命周期不同 | 随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
初始化值不同 | 有默认值 | 没有默认值,必须定义,赋值,然后才能使用 |
有效范围 | 在整个类体中有效 | 仅在复合语句或循环语句中有效 |
成员变量和局部变量名字相同:使用this
class Tom {
int x = 10,y;
void f() {
int x=5 ;
y = x + x;// y = 10;
}
}
class Tom {
int x = 10,y;
void f() {
int x=5 ;
y = x + this.x;// y = 15;
}
}
类变量 | 实例变量 | |
---|---|---|
语法定义 | 有static修饰 | |
程序运行时 | 实例变量必须创建对象后才可以通过这个对象来使用 | 静态变量则可以直接使用类名来引用 |