JAVA 基础 /第十一课: 变量 / JAVA的命名规则和JAVA的作用域

编程语言与高级语言虚拟机杂谈仮 2018-03-07

2018-03-07

一、JAVA的命名规则

变量命名必须满足一系列的条件,不能随意命名

1.命名规则

变量命名只能使用字母 数字 $ _
变量第一个字符 只能使用 字母 $ _
变量第一个字符 不能使用数字
注:_ 是下划线,不是-减号或者—— 破折号

int a= 5;
 int a_12= 5;
 int $a43= 5;
  
 int a434= 5;
  
 //第一个是数字,是不行的
 int 34a= 5;

2.使用完整的单词命名,而非缩写

public class Hero {
     //使用完整单词命名,易于理解
    String name;
      
    float hp;
      
    float armor;
      
    int moveSpeed;
}
public class Hero {
    //使用缩写,不易理解
    String n;
      
    float h;
      
    float a;
      
    int m;
}

3.不能只使用关键字,但是可以包含关键字

什么是关键字
比如int, short, class 这些单词已经被java 赋予了特殊的含义,这些就是关键字。不能用直接来作为变量名
比如class
int class = 5;
class 是关键字
但是可以包含
比如
int class5 = 5;

public class HelloWorld {
  
    public static void main(String[] args) {
  
        int class5 = 5;
         
    }
}

4.关键字列表

JAVA 基础 /第十一课: 变量 / JAVA的命名规则和JAVA的作用域JAVA 基础 /第十一课: 变量 / JAVA的命名规则和JAVA的作用域

5.中文也是可以用来命名变量的

中文也是可以用来命名变量的,但是在实际工作中。。。别这么干。。。

public class 苍老师 {
    public void 开展教学工作(){
        System.out.println("雅蠛蝶");
    }
     
    public static void main(String[] args) {
        苍老师 苍 = new 苍老师();
        苍.开展教学工作();
    }
}

二、JAVA的作用域

变量处于不同的位置,有不同的名称
分别是
字段,属性
参数
局部变量
不同名称的变量,其作用域是不一样的

1.字段,属性,Field

当一个变量被声明在类下面,变量就叫做字段或者属性成员变量Field比如变量i,就是一个属性。
那么从第2行这个变量声明的位置开始,整个类都可以访问得到
所以其作用域就是从其声明的位置开始的整个类

public class HelloWorld {
    int i = 1;
    int j = i;  //其他的属性可以访问i
    public void method1(){
        System.out.println(i); //方法1里可以访问i
    }
    public void method2(){
        System.out.println(i); //方法2里可以访问i
    }
}

2.参数

如果一个变量,是声明在一个方法上的,就叫做参数
参数的作用域即为该方法内的所有代码
其他方法不能访问该参数
类里面也不能访问该参数

public class HelloWorld {
 
    public void method1(int i){ //参数i的作用域即方法method1
        System.out.println(i);
    }
    public void method2(){
 
        System.out.println(i); //method2 不能访问参数i
    }
     
    int j = i;  //类里面也不能访问参数i
}

3.局部变量

声明在方法内的变量,叫做局部变量;其作用域在声明开始的位置,到其所处于的块结束位置

public class HelloWorld {
 
    public void method1() {
        int i  = 5;  //其作用范围是从声明的第4行,到其所处于的块结束12行位置
        System.out.println(i);
        {            //子块
            System.out.println(i); //可以访问i
            int j = 6;
            System.out.println(j); //可以访问j
        }
        System.out.println(j); //不能访问j,因为其作用域到第10行就结束了
    }
 
}

相关推荐