使用变量的意义
变量相当于自然语言中的代词,代词具有代替、指示作用,比如每个人的姓名,代表的就是真实的一个个体。如果没有名字,我们在交流的时候,讨论某一个人就需要说:身高1米75,单眼皮,双下巴……的那个人才能有个大概的感官。有了名字,我们就不用描述具体那个人的外貌特征,通过名字就可以知道具体的某个人。同理,编程中也是一样,变量让程序语言表达更方便。
声明变量
java是严格的强类型语言,在声明变量时,必须在变量名之前指定其所属的类型(type)。虚拟机会根据指定的类型分配相应的存储空间,每种类型需要分配的空间不一样,所能表示的数据范围也不一样。这种所占空间大小不变性是Java程序比用其它大多数语言编写的程序更具有可移植性的原因之一。
- 变量必须声明,并且初始化后才能使用。
- 必须指定明确的类型(type)。
- 同一作用域内不能重复定义。
public class HelloWorld{
public static void main (String[] args){
// 字符串类型变量
String name;
// 整型变量
int age;
//布尔型变量
boolean sex;
}
}
由于声明变量是一条完整的语句,必须以分号结束。变量名必须是一个以字母开头并有字母或数字构成的序列,且不能是Java关键字和保留字。在上面的代码中,每行代码声明一个变量,其实可以在一行代码中声明多个变量,如:
int i,j;
为提高程序的可读性,不建议在一行中声明多个变量。
变量初始化
变量声明后,必须用复制语句对变量进行显式初始化,在Java中允许使用未初始化的变量。如下面的代码是错误的变量使用:
public class TestVariable {
public static void main(String[] args) {
int a;
// Variable 'a' might not have been initialized
System.out.println(a);
}
}
对一个变量初始化只需将变量名放在“=”号的左侧,把相应的值放在“=”号的右侧,通常变量声明和初始同步完成,即在同一条语句中完成两个步骤。“=”号右侧可以是有确定值的表达式,如下所示:
public static void main (String[] args){
// 声明字符串类型变量
String name;
// 初始化name变量
name = "LiLei";
// 字符串型变量声明及初始化同步完成
String sex = "男";
//整型变量声明及初始化同步完成,“=”号右侧为表达式;
int age = 3+4;
}
作用域
代码块(复合语句):由一对大括号括起来的若干条简单语句称为一个代码块。块明确了变量的作用域,一个块可以嵌套在另一个块中。
不能在嵌套的两个块中声明同名的变量。例如,下面的代码是无法编译通过的:
这里可能会有一个疑问,类体和方法是否属于嵌套代码块?在块的定义中明确指出是“由一对大括号括起来的若干条 简单语句 ”,方法包含关键字、返回类型、方法名、参数、方法体,不是简单的语句,所以类和方法不属于块嵌套。这里涉及面向对象及全局变量、局部变量的内容,我们将在面向对象的文章中详细讨论。
文章最后请允许我做一下自我陈述,亲爱的读者们,本人是一名如假包换,具有10年编程经验的小白,对Java、JavaScript、面向对象、数据结构、软件工程有一定了解。本人计划每周更新不少于5篇相关技术类文章,对这方面感兴趣的读者可关注,便于持续性学习,与作者共同探讨。由于作者本人对知识深入不够的局限性,可能会有不对或不够详细的地方,请在评论区留言指正,我本人会虚心接受大家的意见和建议。
每日java面试宝典: 一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?(答案将在下期揭晓,可以在评论区写下你的答案)