面向对象(五)成员变量和局部变量

代码阅读1:
for(int i = 0;i<5;i++){
    System.out.println("好好学习Java");
}
System.out.println(i);

思考:上面的代码有什么问题?

1.变量声明的位置决定变量的作用域。

2.变量作用域是可在程序中按变量名访问该变量的区域。

举例:在一个类的不同地方进行声明变量。

代码阅读2:
public class VarDemo {
    //成员变量(全局变量)作用域为整个类
    int num = 18;
    String address = "邯郸市";
    public void m1(){
        //局部变量n,作用域为m1()方法内
        int n = 25;
    }
    public void m2(){
        //局部变量a,作用域为for循环内
        for(int a = 0;a<5;a++){
            System.out.println(a);
        }
    }
}
代码阅读3:
public class Test{
    int score1 = 88;
    int score2 = 98;
    public void calcAvg(){
        int avg = (score1+score2)/2;
    }
    public void showAvg(){
        System.out.println("平均分为"+avg);
    }
    
}

思考:上面的代码有什么问题?

成员变量和局部变量的区别:

·作用域不同

​ ·局部变量的作用域仅限于定义它的方法

​ ·成员变量的作用域在整个类内部都是可见的**

·初始值不同

​ ·Java会给成员变量一个初始值

​ ·Java不会给局部变量赋予初始值**

注意:

​ ·在同一个方法中,不允许有同名局部变量

​ 在不同方法中,可以有同名局部变量

​ ·在同一个类中,成员变量和局部变量同名时,

​ 局部变量具有更高的优先级

​ ·参数也是一种变量,它是局部变量

代码阅读4:
public class Test {
    public int num;
    public void calc(int num,int num2){
        System.out.println(num+num2);
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.num = 10;
        test.calc(11,3);
    }
}

思考:以上代码结果是什么?为什么?
总结:
在这里插入图片描述
在一个java类中,图片上的公厕好比全局变量,每个房间里的人都可以使用,而每个房间的个人厕所好比局部变量,只有这个房间(方法或其他局部作用域)里的人可以使用,其他地方的人无法使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值