1-作用域基本介绍

一、基本使用

一、在 java 编程中,主要的变量就是 属性(成员变量)和局部变量。

二、我们说的局部变量一般是指成员方法中定义的变量(同时方法块中的变量也是属于局部变量)

三、java 中作用域的分类:

全局变量:

​ 也就是属性,作用域为==整个类体==。在类成员(属性、方法、方法块、内部类)中都可以访问

局部变量:也就是除了属性之外的其他变量,作用域为==定义它的代码块中==

四、==全局变量(属性)==可以不赋值,直接使用,因为其有 ==默认值==。

​ 而
​ 成员变量必须进行赋值,才能使用,因为其==没有默认值==
image-20221103170244601

String 类型无论是全局变量还是局部变量,如果没有初始化,那值都为 “null” ,不可以使用 name.equal()方法,否则有==nullPointException==空指针异常。

二、注意的点

  1. 访问的就近原则
    如果局部变量和成员变量(属性)有重名,则在方法块中会优先访问 局部变量。
  2. 重新定义的问题:
    2.1如果局部变量重新对成员变量进行了定义,则方法体内访问的将是局部变量。如果没有重新定义,而是修改数值,则访问的还是成员变量。
    2.2在同一个作用域中,==不能定义 同名的两个变量==
  3. 生命周期:
    属性(成员变量)的生命周期较长,伴随对象的创建而创建,伴随着对象的销毁而销毁。而局部变量的生命周期较短,伴随代码块的执行而创建,伴随代码块的结束而销毁。
  4. 访问范围的问题:
    4.1全局变量可以被其他类访问—-> 对象名.parameterName
    4.2全局变量可以添加修饰符,局部变量不可以。
    image-20221103183423145
  5. 在方法的方法块内,==不可以重新定义==和方法内 ==同名的变量==
1
2
3
4
5
6
7
8
 public void hello(){
int x=10;
{
int x=20;
}
}
}
>报错