面對對象-變量的作用域
阿新 • • 發佈:2017-06-06
() 屬性 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.在內存中保存的位置不同:成員變量保存到堆中,局部變量保存到棧。
面對對象-變量的作用域