1. 局部变量:方法内变量,方法参数 2. 成员变量有默认值,局部变量没有默认值,使用时要赋予初始值 3. 静态方法不能对实例变量进行操作 因为在类创建对象之前没有对实例变量分配内存 4. 实例方法要通过实例对象调用 5. 实例方法可以操作实例变量 类变量 6. 实例方法只能被对象进行调用,而类名不能调用 7. **局部变量在方法中有效,成员变量在整个类有效** 8. 局部变量与其声明的位置顺序有关 ,成员变量与声明的位置顺序无关 9. 当局部变量和成员变量**同名**时,方法内会以局部方法为主,覆盖成员变量,若要使用成员变量,使用this.调用 10. 如果类中的成员变量有**类变量**,那么所有对象的这个类变量都分配给相同的一处内存,***改变其中一个对象的这个类变量***会影响其他对象的这个类变量,也就是说对象共享类变量。
① 成员变量(实例变量)
随着对象创建而存在。随着对象被回收而释放
成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
成员变量只能被对象所调用
成员变量有默认值
②静态变量(类变量)
存在于方法区中
随着类的加载而存在。随着类的消失而消失
静态变量可以被对象调用,也可以被类名调用
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
静态随着类的加载而加载。而且优先于对象存在
静态方法中不能使用this,super关键字
public class Static_Method_Test2 {
double number=11.222;//实例变量
static double snumber=222;//静态变量/类变量
// 类方法静态方法
static void test1(){ //静态方法是无法访问实例变量得
snumber+=12;//局部变量
System.out.println(snumber);
}
//实例方法 [double y]是局部变量
public void test(double y){
sout
}
public static void main(String[] args) {
Static_Method_Test2 test2= new Static_Method_Test2();
test2.test1();
Static_Method_Test2.test1();
//调用两次 类方法不能对实例变量进行操作 因为类在创建之前实例变量没有分配内存
System.out.println(test2.number);
}
}
参考



