变量:在程序运行过程中,其值可以发生发生改变(变化)的量。
在编写程序时,往往会产生一些可能随时会发生变化的数据,而这些数据就可以存在变量中。
根据变量位置的不同,可以将变量分为两大类:成员变量与局部变量。
成员变量是定义在类中,方法外部的变量。它们可以被整个类的任何方法和构造函数访问,因为它们是类的属性。
public class Car {
// 成员变量
String make;
String model;
int year;
// 构造方法
public Car(String make, String model, int year) {
this.make = make;
this.model = model;
this.year = year;
}
// 方法
public void start() {
System.out.println("The " + make + " " + model + " is starting.");
}
}
局部变量:局部变量是在方法或代码块中定义的变量。它们只在定义它们的方法或代码块中可见,并且在方法或代码块执行完毕后就会被销毁。
public class Calculator {
// 方法
public int add(int a, int b) {
// 局部变量
int sum = a + b;
return sum;
}
}
成员变量和局部变量的区别:它俩是Java中两种不同的变量类型,它们在使用和作用域上有所不同。
作用域:成员变量的作用域是在整个类中可见和可用,而局部变量的作用域只在定义它的方法或代码块中可见和可用。在一个类的方法中,可以定义一个同名的局部变量,它会隐藏同名的成员变量。
存储位置:成员变量在对象创建时被创建,它们存储在对象的堆内存中。而局部变量在方法调用时创建,它们存储在栈内存中。当方法返回时,局部变量就会被销毁。
默认值:成员变量具有默认值,例如int类型的成员变量默认值为0,boolean类型的成员变量默认值为false。而局部变量没有默认值,必须在使用前进行初始化。
访问修饰符:成员变量可以使用访问修饰符进行限制访问,例如private、protected和public。而局部变量不能使用访问修饰符进行限制访问。
生命周期:成员变量的生命周期与对象的生命周期相同,当对象被销毁时,成员变量也会被销毁。而局部变量的生命周期只在方法调用期间存在,当方法返回时就会被销毁。
综上所述,成员变量和局部变量在使用和作用域、存储位置、默认值、访问修饰符和生命周期等方面都有所不同。