java 变量的作用域

字段,属性,Field

当一个变量被声明在类下面
变量就叫做字段 或者属性、成员变量、Field
比如变量i,就是一个属性。
那么从第2行这个变量声明的位置开始,整个整类都可以访问得到
所以其作用域就是从其声明的位置开始的个类

1

2

3

4

5

6

7

8

9

扫描二维码关注公众号,回复: 5522323 查看本文章

10

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

    }

}

参数

如果一个变量,是声明在一个方法上的,就叫做参数
参数的作用域即为该方法内的所有代码
其他方法不能访问该参数
类里面也不能访问该参数

1

2

3

4

5

6

7

8

9

10

11

12

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

}

局部变量

声明在方法内的变量,叫做局部变量 
其作用域在声明开始的位置,到其所处于的块结束位置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

4

5

6

7

8

9

10

11

public class HelloWorld {

    int i = 1//属性名是i

    public void method1(int i){ //参数也是i

        System.out.println(i);

    }

     

    public static void main(String[] args) {

        new HelloWorld().method1(5);

        //结果打印出来是 1还是5?

    }

}

猜你喜欢

转载自blog.csdn.net/Doraemon_meow_meow/article/details/88392942