本篇主要介绍Java语言中变量的相关知识。

变量的概念

变量就是为存储的数值起的名称。变量的使用有三部曲:声明,初始化,使用。

3.1 变量声明

变量声明语法如下:
数据类型 变量名;
变量声明后,会根据声明时的数据类型给该变量分配存储空间。

变量命名要符合Java语法中的变量的命名规则:
1)变量名必须以字母、数字、下划线或者$组成,不能包含除此之外的其他字符
2)变量名中的字母区分大小写
3)变量名不能以数字开头
4)变量名不能使用Java中的关键字,比如class、public、true等
在实际编程过程中,变量的命名除了要严格遵循语法中的命名规则,一般各个软件公司都有自己的编程规范。

编程规范 并不是Java语法,是有经验的开发人员们为了提高代码可读性、可维护性或者提高代码效率的等目的,而总结出来的一种约定俗成的准则。不遵循编程规范,遵循了Java语法,一样可以完成功能。
编程规范与Java语法的关系,就好比是法律与道德的关系。

Java变量命名规范:
1)驼峰命名:第一个单词以小写字母开始;第二个单词及之后单词的首字母大写,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
2)变量名不允许使用a、b、c等单个字母命名,这样的变量含义难以理解(循环中的计数器i,j,k除外)。
3)变量名长度不要过长,3~10个字符为最佳。
4)变量名要与变量表达的含义相符,严禁声东击西,表示年龄的变量age,不能起名为name。
5)一行只声明一个变量,不要一行声明多个变量。

    double a;//虽然符合语法,但变量a的含义不明显
    int myAge;//声明int型变量myAge
    //声明float变量myHeight,myWeight,符合语法,但不符合变量命名规范
    float myHeight,myWeight;

3.2 变量初始化

变量声明后,内存中就为变量分配了存储空间,但存储空间内并未存储变量的数据值,或者说存储空间内的数值是不确定的,此时在使用变量之前,需要将变量的值存储到对应的存储空间中,这叫变量的初始化
语法如下:
变量名 = 值;

注意:
1)语法中的等号代表赋值,将等号右边的值赋给左边的变量
2)变量的声明和初始化可以合二为一,语法为:
数据类型 变量 = 值;

    int myAge;//声明int型变量myAge
    myAge = 27;//对变量myAge初始化,赋值为27

    float myHeight = 1.85F;//声明float变量myHeight并初始化为1.85

3.3 变量的使用

变量的使用也叫变量的访问,只有经过声明,并且经过了初始化的变量才可以使用。

注意:
1)未声明的变量不可以使用
2)未初始化的变量不可以使用

    myScore = 90.5;//出现编译错误,变量myScore未声明

    int myAge;
    System.out.println(myAge);//出现编译错误,myAge未初始化

3.4 变量的作用域

变量的作用域就是变量有效性的范围,是从变量的声明开始,一直到包含该变量声明的第一个右半个花括号(即“}”)之前结束。

public static void main(String[] args){
    int age = 28;//变量age作用域的开始
    if(age>=18){
       boolean flg = true;//变量flg作用域的开始
       System.out.println("已经成年.");
    }//变量flg作用域的结束(此花括号之前)
}//变量age作用域的结束(此花括号之前)

注意:
1)不能在变量的作用域之外访问变量,会产生编译错误
2)作用域有重叠的部分,不允许声明同名的变量

public static void main(String[] args){
    int age = 28;
    boolean sex = true;
    if(sex){
        int age = 18;//编译错误,和之前变量age重名
        int num = 10;
        System.out.println("男性");
    }
    num = 12;//编译错误,已超出了变量num的作用域
}

下一篇将介绍表达式与运算符相关的知识。

更多推荐

跟着姜少学Java基础编程之三:变量