在Java语言中,方法与变量的作用域(有效使用范围)是清晰的,根据定义变量的位置不同,作用域也不全相同。1.局部变量:
局部变量是定义在块内、方法内的变量。这种变量的作用域是以块和方法为单位的,仅在定义该变量的块或方法内有效,而且要先定义赋值,然后再使用,即不允许超前引用。因为局部变量在查找时首先被查找,因此若某一局部变量与类的实例变量名或类变量名相同时,则该实例变量或类变量在方法体内被暂时“屏蔽”起来,只有退出这个方法后,实例变量或类变量才起作用。每调用一次方法,都要动态地为方法的局部变量分配内存并初始化。方法体内不能定义静态变量。方法体内的任何语句块内都可以定义新的变量,这些变量仅在定义它的语句块内起作用。当语句块有嵌套时,内层语句块定义的变量不能与外层语句块的变量同名,否则会出现编译错误。另外,方法的参数也属于局部变量,因此声明与参数同名的局部变量也会出错。
2.实例变量和类变量
定义在类内、方法外的变量是实例变量,使用了修饰符static的变量是静态变量(或称类变量)。实例变量和类变量的作用域是以类为单位的。因为实例变量、类变量与局部变量的作用域不同,故可以与局部变量同名。
|
|