变量

1.什么是变量

变量就是指代在内存中开辟的存储空间,用于存放运算过程中需要用到的数据。
对于变量我们需要关注起如下几个方面:
• 变量的声明:用特定的语法声明一个变量,让运行环境为其分配空间;
• 变量的命名:变量需要有个见名知意的名字,而且要符合Java语言规范;
• 变量的初始化:变量声明后,要为其赋一个确定的初值后再使用;
• 变量的访问:可以对变量中的数据进行存取、操作,但必须和其类型匹配。

2.变量的声明

当需要使用一个变量时,必须对该变量进行声明;变量的声明包含两点:变量名和变量类型。Java语言语法规定,变量使用之前必须声明,否则会有编译错误。
大多数时候我们都记得这个规范,但是还是会出现变量未声明就使用的情况,请看如下代码:

1.	public static void main(String[] args) {
2.	    a = 1; // 编译错误,变量没有声明
3.	    int score = 0;
4.	    scord = 100; // 编译错误 
5.	    System.out.println(score);
6.	}

编译上述代码,会发现在代码“a=1;”处和代码“scord=100;”处出现编译错误。出现编译错误的原因是变量a和变量scord没有被声明。变量的声明包含两点:变量的类型和变量的名称。a变量没有被声明的原因是没有变量的类型。scord变量没有被声明的原因也是因为没有变量类型,但是查看代码scord=100;的上下行的代码会发现声明了score变量,分析这三行代码,scord=100行出现编译错误的原因是变量没有被声明,没有声明的原因是变量score拼写成了scord。
如果多个变量的类型一样,可以在一条语句中声明,中间用逗号分隔。

3.变量的命名

变量的命名必须符合Java标识符的规则:
• 可以由字母、数字、"_“和”$"符组成;
• 首字符不能以数字开头;
• Java大小写敏感,命名变量时需要注意;
• 不能使用Java保留字(一些Java语言规定好的,有特殊含义的字符),如:int、if、for、break等;
• 中文可以作为变量名,但不提倡使用。
下面的代码体现了Java变量的命名规则:

int 123go = 100; // 编译错误,不能以数字开头。
2.	    int 成绩 = 60;// 编译没错,但不建议使用。
3.	    int break= 200; // 编译错误,break是Java保留字。
4.	    int score = 80;
5.	    System.out.println(Score); 
6.	    // 编译错误,Java大小写敏感,Score变量没有声明。

上述代码中,分别有如下错误:
1) 变量“123go”不符合Java的命名规范,原因是变量名不能以数字开头;
2) 变量“成绩“编译时是正确的,但是这种使用汉字进行命名的方式不建议使用;
3) 变量”break“处会出现编译错误,原因是break是Java的保留字,不能作为变量名;
4) 在输出变量”Score“处会出现编译错误,原因是变量名是大小写敏感的。int score=80;处声明的变量和下一行代码中输出的Score是两个变量,所以变量Score没有声明。Java语言语法规定,变量使用之前必须声明,否则会有编译错误。
Java变量名的定义应“见名知意”;同时,Java编程规范要求:变量的命名需要采用“驼峰命名法”,即如果变量的名字由多个单词组成,除第一个单词外,其他单词的首字母大写,其余的字母小写,例如:salary、javaScore、studentName等。

4.变量的初始化

Java语言规定变量在使用之前必须初始化,即必须给该变量赋予特定的值。
• C预言中,变量使用之前可以不需要初始化,但是,其初始值不确定;Java语言的设计者为了避免因此而带来的错误,规定变量必须初始化之后才能使用。

1.	public static void main(String[] args) {
2.	    int a, b = 10; 
3.	    int c = a + b; // 编译错误,变量a没有初始化
4.	    System.out.println(c);
5.	}

在上述代码中,代码行int c = a + b;处会出现编译错误,因为此行代码使用到了变量a,但是该变量却没有被初始化。
另外,有些语句结构(如if、for等)需要条件满足时才会执行;Java编译器不认为在这些语句块中的赋值语句可以实现初始化操作。查看如下代码:

int sum;
2.	    int a = 20;
3.	    int b = 10;
4.	    if(a>0) {
5.	        sum = 0; // 当a大于0的时候,该语句才会执行。
6.	        sum = a + b;
7.	    }
8.	    System.out.println(sum); // 编译错误,编译器认为sum没有初始化。

上述代码中,语句System.out.println(sum);处会出现编译错误,Java编译器不认为放在if语句块中的sum=0;可以实现初始化操作。

5.变量的访问

变量是存放数据的空间,可以对其赋值、更改和操作;要把对变量的操作理解为是对其所存储的数据的操作。

1.	public static void main(String[] args) {
2.	    int a = 100;
3.	    a = a + 200;  // 该条语句的含义为:将变量a中的值加上200所得结果再存入变量a
4.	}

变量在声明时指定了类型,Java编译器会检测对该变量的操作是否与其类型匹配,如果对变量的赋值或者操作与其类型不匹配,会产生编译错误。

1.	public static void main(String[] args) {
2.	    int salary;
3.	    salary = 15000.50;  // 编译错误,整型变量不可以赋予浮点值(小数)。
4.	}

上述代码中,变量salary声明时的类型为int,后续赋值为15000.50,而15000.50是浮点类型,因此导致编译错误。整数类型变量不可以赋予浮点类型的值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值