实例变量与局部变量
实例变量是一种存在于面向对象编程中的变量类型。它是一个在类中定义的变量,该类的每个对象都持有该变量的单独副本。另一方面,局部变量的使用并不局限于面向对象的编程语言。它是一个变量,只能在定义它的特定代码块(如函数、循环块等)内进行评估。由于这个原因,局部变量被称为具有局部作用域。
什么是实例变量?
实例变量在面向对象编程中用于存储类中每个对象的状态。它们也被称为成员变量或字段变量。在Java中,实例变量的声明不使用static关键字。实例变量中存储的值对于每个对象都是唯一的(每个对象都有一个单独的副本),其中存储的值表示该对象的状态。实例变量的空间在堆中分配时,该对象在堆中分配。因此,只要对象处于活动状态,实例变量都会保存在内存中。例如,一辆车的颜色独立于另一辆车的颜色。所以汽车对象的颜色可以存储在一个实例变量中。实际上,实例变量在类内部声明,在方法外部声明。通常,实例变量被声明为private,因此只能在声明的类中访问它们。
什么是局部变量?
局部变量是具有局部作用域的变量,它们在特定的代码块中声明。局部变量可以看作是方法用来存储其临时状态的变量。局部变量的作用域是使用声明变量的位置来确定的,因此不使用特殊关键字。通常,对局部变量的访问限制在声明它的代码块内(即在该代码块的左括号和右大括号之间)。局部变量通常存储在调用堆栈中。这将允许递归函数调用维护它们自己的本地变量副本,以存储在单独的内存地址空间中。当方法完成其执行时,有关该方法的信息将从调用堆栈中弹出,同时还会销毁存储的本地变量。
实例变量和局部变量的区别是什么?