Java变量命名规则

变量

  • 变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。
  • 我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
  • Java是一种强类型语言,每个变量都必须声明其数据类型。
  • 变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。
  • 变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
  • 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

完整代码

public class TestVar {
    public static void main(String[] args) {
        //【1】变量的声明(定义)
        //定义一个年龄的变量;
        //名字(标识符)叫age,类型是int类型
        int age;
        //变量不可重复定义:
        //int age;

        int min ,max;//可同时定义多个变量

        //【2】变量的赋值
        age = 30;//用等号进行赋值操作
        age = 40;
        age = 70 + 3;

        //变量和赋值可以写在一行
        int high = 32;

        int d = 24,f = 56;

        int z , h = 87;//z没有赋值,h赋值为87

        //【3】变量的使用

        System.out.println(age);
        System.out.println(age + 10);
        int k = 10;
        System.out.println(age + k);

		int n = 3;
        int m = 4;
        System.out.println(m + n);
    }
}

变量的声明

        //【1】变量的声明(定义)
        //定义一个年龄的变量;
        //名字(标识符)叫age,类型是int类型
        int age;
        //变量不可重复定义:
        //int age;

        int min ,max;//可同时定义多个变量

在这里插入图片描述

变量的赋值

 //【2】变量的赋值
        age = 30;//用等号进行赋值操作
        age = 40;
        age = 70 + 3;

        //变量和赋值可以写在一行
        int high = 32;

        int d = 24,f = 56;

        int z , h = 87;//z没有赋值,h赋值为87

变量的使用

        System.out.println(age);
        System.out.println(age + 10);
        int k = 10;
        System.out.println(age + k);


        int n = 3;
        int m = 4;
        System.out.println(m + n);
  • 右键Run运行
    在这里插入图片描述
    在这里插入图片描述

变量的内存

在这里插入图片描述

练习

        int num1 = 10;
        int num2 = 20;
        num1 = num2;
        num2 = num2 + 10;
        num1 = num2 - 10;
        num2 = num1;
        System.out.println("num1="+num1);
        System.out.println("num2="+num2);

在这里插入图片描述

分析

  1. int num1 = 10; 这行代码声明了一个整型变量 num1 并给它赋值为10。在内存中,num1 现在储存的是10。

  2. int num2 = 20; 这行代码声明了另一个整型变量 num2 并给它赋值为20。在内存中,num2 现在储存的是20。

  3. num1 = num2; 这行代码将 num2 的值赋给了 num1。因此,num1 的值现在变成了20,与 num2 的值相同。

  4. num2 = num2 + 10; 这行代码将 num2 的值增加了10。因此,num2 现在储存的是30(20 + 10)。

  5. num1 = num2 - 10; 这行代码将 num2 当前的值(30)减去10,然后赋值给 num1。因此,num1 的值现在是20(30 - 10)。

  6. num2 = num1; 这行代码又将 num1 的值赋给了 num2。所以,num2 的值也变成了20。

所以,当执行到最后,num1 和 num2 在内存中都储存的是20。这就是为什么打印出来的结果是:num1=20 num2=20

变量的作用域

  • 作用域指的就是作用范围,变量在什么范围中有效
  • 作用范围就是离它最近的{}

public class TestVar{
        int b = 20;
        public static void main(String[] args){
                System.out.println(a);//no
                int a = 10;
                System.out.println(a);//yes
                System.out.println(b);//yes
                {
                        int c = 40;
                        System.out.println(c);//yes
                        int a = 50;//属于变量的重复定义
                }
                System.out.println(c);//no
        }
        
        public void eat(){
                System.out.println(b);//yes
                System.out.println(a);//no
                int a = 30;//不是变量的重复定义
                System.out.println(a);//yes
        }
}

这段代码涉及了Java中的变量作用域和生命周期。让我们逐步分析:

  1. int b = 20; 这行代码声明了一个实例变量 b 并给它赋值为20。这个变量是类的成员变量,对整个类都可见。
  2. System.out.println(a); 这行代码在变量 a 定义之前就尝试输出其值,会导致编译错误。因为在该位置 a 还没有被定义。
  3. int a = 10; 这行代码在 main 方法中定义了一个局部变量 a 并给它赋值为10。
  4. System.out.println(a); 这行代码输出了局部变量 a 的值,即10。
  5. System.out.println(b); 这行代码输出了实例变量 b 的值,即20。
  6. {} 这是一个代码块,其中定义了局部变量 c 并赋值为40。在这个代码块内,c 是可见的。
  7. System.out.println©; 这行代码输出了代码块内部的局部变量 c 的值,即40。
  8. int a = 50; 这行代码在同一代码块内试图再次定义局部变量 a,这是不允许的,会导致编译错误。因为在同一作用域内不能重复定义相同名称的变量。
  9. System.out.println©; 这行代码试图输出代码块外的局部变量 c,但会导致编译错误,因为 c 的作用域仅限于该代码块内。
  10. public void eat() 这是一个实例方法。
  11. System.out.println(b); 这行代码在实例方法内输出了实例变量 b 的值,即20。
  12. System.out.println(a); 这行代码尝试输出变量 a 的值,但由于在方法内有局部变量 a 的定义,所以会输出这个局部变量的值。在这个位置,局部变量 a 尚未被定义,因此会导致编译错误。
  13. int a = 30; 这行代码定义了实例方法内的另一个局部变量 a 并赋值为30。
  14. System.out.println(a); 这行代码输出的是实例方法内的局部变量 a 的值,即30。
  • 这个代码示例涉及了变量的作用域、重复定义等概念。需要注意的是,在不同的作用域内可以使用相同名称的变量,因为它们不会发生冲突。在方法内部重新定义一个与外部同名的变量是允许的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CyberSecure

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值