1. 常量:是指在程序的整个运行过程中值保持不变的量,定义了就不能再去修改。
  2. 常量值是常量的具体和直观的表现形式。

注意:常量和常量值是不同的概念, 常量是形式化的表现。 通常在程序中既可以直接使用常量值,也可以使用常量。

1、常量

常量:是指在程序的整个运行过程中值保持不变的量,定义了就不能再去修改。
常量值:又称为字面常量,它是通过数据直接表示的,因此有很多种数据类型,像整型和字符串型等

2、变量

**变量**是指内存中的一块存储区域,该区域要有自己的名称(变量名)、数据类型,该区域的数据的值可以在同一数据类型的范围内随程序运行不断被修改

  • 变量的特性
    1、占据内存中某一块存储区域
    2、该区域有自己的名称和数据类型
    3、可以重复使用
  • 根据作用域的不同分类

    1、成员变量 —— 类里定义的变量,但在方法、构造方法和语句块之外
public class DataClass
{
    int price=100;    //定义 类变量 price
    price String name;    //定义 类变量 name
    name int num;    //定义类变量 num
}

实例变量

  • 1.1、实例变量在类中声明,但在方法,构造函数或块之外。为堆中的对象分配空间时,将为每个实例变量值创建一个槽。
  • 1.2、使用关键字new创建对象时会创建实例变量,并在销毁对象时销毁实例变量。
  • 1.3、实例变量包含由多个方法,构造函数或块引用的值,或者在整个类中存在的对象状态的基本部分。
  • 1.4、实例变量可以在使用之前或之后在类级别中声明。
  • 1.5、可以为实例变量给出访问修饰符。
  • 1.6、实例变量对于类中的所有方法,构造函数和块都是可见的。 通常,建议将这些变量设为私有(访问级别)。 但是,可以使用访问修饰符为这些变量提供子类的可见性。
  • 1.7、实例变量具有默认值。 对于数字,默认值为0,对于布尔值,它为false,对于对象引用,它为null。 可以在声明期间或构造函数中指定值。
  • 1.8、可以通过调用类中的变量名来直接访问实例变量。 但是,在静态方法中(当实例变量具有可访问性时),应使用完全限定名称调用它们,如:ObjectReference.VariableName
import java.io.*;
public class Employee {

   // 此实例变量对于子类都是可见的。
   public String name;

   // salary 变量仅在Employee类中可见。
   private double salary;
   
   public Employee (String empName) {
      name = empName;  // name变量在构造函数中指定。
   }
  
   public void setSalary(double empSal) {
      salary = empSal;   // 为 salary 变量赋值
   }

   // 此方法打印员工详细信息。
   public void printEmp() {
      System.out.println("name  : " + name );
      System.out.println("salary :" + salary);
   }

   public static void main(String args[]) {
      Employee empOne = new Employee("Maxsu");
      empOne.setSalary(15999);
      empOne.printEmp();
   }
}

类变量(静态变量)

  • 类变量(也称为静态变量)在类中使用static关键字声明,但在方法,构造函数或块之外。
  • 除了声明为常量之外,很少使用静态变量。常量是声明为public/privatefinalstatic的变量。
  • 程序启动时会创建静态变量,程序停止时会销毁静态变量。
  • 可以通过使用类名ClassName.VariableName调用来访问静态变量。
  • 将类变量声明为public static final时,变量名(常量)都是大写的。 如果静态变量不是publicfinal,则命名语法与实例和局部变量命名规则相同。
import java.io.*;
public class Employee {

   // salary变量是一个私有静态变量
   private static double salary;

   // DEPARTMENT是一个常量
   public static final String DEPARTMENT = "研发部";

   public static void main(String args[]) {
      salary = 19999;
      System.out.println(DEPARTMENT + "平均薪水:" + salary);
   }
}

2、局部变量 —— 方法、构造方法或语句块里定义的变量

  • 局部变量一般在方法,构造函数或块中声明。
  • 程序进入方法,构造函数或块时会创建局部变量,并且一旦退出方法,构造函数或块中的变量就会销毁。
  • 访问修饰符不能用于局部变量。
  • 局部变量仅在声明的方法,构造函数或块中可见。
  • 局部变量在内部实现堆栈级别。
  • 局部变量没有默认值,因此应声明局部变量后,在第一次使用之前为它分配初始值。
public class Test {  
   public void dogAge() {
      int age = 0; // age是一个局部变量。 这是在dogAge()方法中定义的,它的范围仅限于此方法。
      age = age + 5;
      System.out.println("Dog age is : " + age);
   }

   public static void main(String args[]) {
      Test test = new Test();
      test.dogAge();
   }
}
  • 变量的使用
    通过变量名来访问所指向的内存区域中存储的值