day09--变量的命名规则、类型(类变量、实例变量、局部变量)

变量的命名规范

在java中既要遵守变量的命名法则(合法法则),还要遵守约定俗成的规范(驼峰是命名法。类名遵循大驼峰原则,方法名字遵循小驼峰原则)
规则:合法的变量名不一定遵守驼峰式命名法的规范,但符合驼峰是命名法的变量名一定合法。
在java变量命名中不仅变量名要合法而且也要遵守驼峰式命名法。

  • Java变量的基本命名法则 :
    • 以下划线、字母、美元符开头。
    • 后面跟下划线、字母、美元符以及数字。
    • 没有长度限制(但也不能太长!)。
    • 对大小写敏感(意思是大小写代表不同含义)
  • Java驼峰式命名法:
    • 变量名必须为有意义的单词
    • 变量名如果只有一个单词,则小写
    • 如果有2个以及多个单词,则从第二个单词开始首字母大写
  • 合法的变量名:date、$ 2011、_date、D$date 等。
  • 符合驼峰式命名法的变量名:play 、 $play01 、 playGame等
  • 所有变量、类名、方法名:见名知意
  • 类变量:首字母小写,多个单词遵循驼峰原则,例如:monthSalary、lastName等
  • 局部变量:首字母小写,多个单词遵循驼峰原则,例如:sum、sumMax等
  • 常量:大写字母和下划线:MAX_VALUE等
  • 方法名:首字母小写,多个单词遵循驼峰原则,例如:run()、runTime()等

变量类型

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。
变量 定义位置 初始化值 生命周期 作用范围 内存位置
类变量 类中方法外以static关键字声明 有默认的初始化的值 第一次访问时创建,在程序结束时销毁 整个类中有效 静态存储区
实例变量 类中方法外 有默认的初始化的值 对象的存在而存在,随着对象的消失而消失 整个类中有效 堆内存
局部变量 方法内 不赋值不能用 方法的调用而存在,方法调用完毕而消失 所在方法有用 栈内存
public class Variable{
     
    static int allClicks=0;    // 类变量
    String str="hello world";  // 实例变量
    public void method(){
     
         int i =0;  // 局部变量
    }
}

java的类变量(静态变量)

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
public class Variable {
     

    public void method() {
     
        int i = 0;  // 局部变量
        System.out.println(i);
    }
    public static void main(String[] args) {
     
        Variable variable = new Variable();//创建一个新的对象,用户调用方法中的局部变量的输出值
        variable.method();
    }
}

实例变量

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。
public class Employee{
     
   // 这个实例变量对子类可见
   public String name;
   // 创建一个私有变量,仅在该类可见
   private double salary;
   //在构造器中对name赋值
   public Employee (String empName){
     
      name = empName;
   }
   //设定salary的值
   public void setSalary(double empSal){
     
      salary = empSal;
   }  
   // 打印信息
   public void printEmp(){
     
      System.out.println("名字 : " + name );
      System.out.println("薪水 : " + salary);
   }
 
   public static void main(String[] args){
     
      Employee empOne = new Employee("RUNOOB");
      empOne.setSalary(1000.0);
      empOne.printEmp();
   }
}

Java 局部变量

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
//在以下实例中age是一个局部变量。定义在pupAge()方法中,它的作用域就限制在这个方法中。
public class Test{
      
   public void pupAge(){
     
      int age = 0;//局部变量--这个变量只在pupAge()方法中有用,除了这个发法梯基于没用了
      age = age + 7;
      System.out.println("小狗的年龄是: " + age);
   }
   public static void main(String[] args){
     
      Test test = new Test();
      test.pupAge();
   }
}

你可能感兴趣的:(Java)