1. 程式人生 > >面對對象-變量的作用域

面對對象-變量的作用域

() 屬性 bsp 結束 局部變量 hello logs world print

技術分享

變量處於不同的位置,有不同的名稱

分別是 :
屬性
參數
局部變量

不同名稱的變量,其作用域是不一樣的

屬性:

public class HelloWorld {
    int i = 1;
    int j = i;  //其他的屬性可以訪問i
    public void method1(){
        System.out.println(i); //方法1裏可以訪問i
    }
    public void method2(){
        System.out.println(i); //方法2裏可以訪問i
    }
}

參數:

public class HelloWorld {
 
    
public void method1(int i){ //參數i的作用域即方法method1 System.out.println(i); } public void method2(){ System.out.println(i); //method2 不能訪問參數i } int j = i; //類裏面也不能訪問參數i }

局部變量:

public class HelloWorld {
 
    public void method1() {
        int i  = 5;  //其作用範圍是從聲明的第4行,到其所處於的塊結束12行位置
System.out.println(i); { //子塊 System.out.println(i); //可以訪問i int j = 6; System.out.println(j); //可以訪問j } System.out.println(j); //不能訪問j,因為其作用域到第10行就結束了 } }

變量聲明的位置不同會導致其作用域不同。
局部變量:在方法內部聲明的變量,其作用域僅限於當前方法使用。
成員變量:在類中聲明的屬性,其作用域可以在當前類中使用。

區別:
1.作用域不同:成員變量的作用域是在整個類體,局部變量的作用域在當前方法
2.是否有默認初始值:成員變量是有默認的初始值,局部變量沒有默認初始值。
3.是否能使用修飾符(public/private/protected/默認):成員變量:可以添加public等修飾符,局部變量不能。
4.在內存中保存的位置不同:成員變量保存到堆中,局部變量保存到棧。

面對對象-變量的作用域