理解 Java 变量类型:综合指南
变量提供程序可操作的命名存储。Java 中每个变量有特定类型,决定内存大小布局、可存储值范围、可应用操作集合。
使用前必须声明所有变量。基本声明形式:
data type variable [ = value][, variable [ = value] ...] ;
data type 是 Java 数据类型,variable 是变量名。声明多个同类型变量可用逗号分隔。
Java 变量声明和初始化有效示例:
示例
int a, b, c; // 声明三个 int:a, b, c int a = 10, b = 10; // 初始化示例 byte B = 22; // 初始化 byte 变量 B double pi = 3.14159; // 声明并赋值 PI char a = 'a'; // char 变量 a 初始化为 'a'
本章讲解 Java 三种变量类型:
- 局部变量
- 实例变量
- 类/静态变量
局部变量
- 声明在方法、构造器或块中。
- 方法/构造器/块进入时创建,退出时销毁。
- 不能用访问修饰符。
- 仅在声明的方法/构造器/块内可见。
- 内部在栈级实现。
- 无默认值,使用前必须声明并赋初值。
示例
age 是局部变量,定义在 pupAge() 方法内,作用域仅限此方法。
Live Demopublic class Test {
public void pupAge() {
int age = 0;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
输出结果:
输出
Puppy age is: 7
示例
以下例未初始化 age,编译报错。
Live Demopublic class Test {
public void pupAge() {
int age;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
编译错误:
输出
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
实例变量
- 声明在类中,但方法、构造器或块外。
- 堆中为对象分配空间时,为每个实例变量创建槽位。
- 用 'new' 创建对象时创建,对象销毁时销毁。
- 持有需被多方法/构造器/块引用的值,或对象状态必需部分。
- 可在类级声明于使用前或后。
- 可给实例变量访问修饰符。
- 对类中所有方法、构造器和块可见。通常建议设为 private。但可用访问修饰符给子类可见性。
- 有默认值:数值型 0、布尔型 false、对象引用 null。可在声明时或构造器中赋值。
- 类内可直接用变量名访问。但在静态方法中(当实例变量有访问权限时)应用全限定名 ObjectReference.VariableName。
示例
Live Demoimport java.io.*;
public class Employee {
// 此实例变量对任何子类可见
public String name;
// salary 仅在 Employee 类可见
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 : " + name );
System.out.println("salary :" + salary);
}
public static void main(String args[]) {
Employee empOne = new Employee("Ransika");
empOne.setSalary(1000);
empOne.printEmp();
}
}
输出结果:
输出
name : Ransika salary :1000.0
类/静态变量
- 用 static 关键字在类中方法外声明。
- 每个类仅有一份拷贝,无论创建多少对象。
- 除声明为常量外很少使用。常量声明为 public/private、final 和 static。常量值永不改变。
- 存储在静态内存。除声明为 final 用作 public/private 常量外很少用。
- 程序启动时创建,程序停止时销毁。
- 可见性类似实例变量。但多数 static 变量声明为 public,因需对类用户可用。
- 默认值同实例变量:数值 0、布尔 false、对象引用 null。可在声明时、构造器中或特殊静态初始化块中赋值。
- 可用类名调用 ClassName.VariableName 访问。
- 声明为 public static final 时,变量名(常量)全大写。非 public 和 final 的静态变量命名语法同实例和局部变量。
示例
Live Demoimport java.io.*;
public class Employee {
// salary 为私有静态变量
private static double salary;
// DEPARTMENT 为常量
public static final String DEPARTMENT = "Development ";
public static void main(String args[]) {
salary = 1000;
System.out.println(DEPARTMENT + "average salary:" + salary);
}
}
输出结果:
输出
Development average salary:1000
注意 − 若从外部类访问变量,常量应作为 Employee.DEPARTMENT 访问。
下一步
本章已用到访问修饰符(public & private)。下章将详细讲解访问修饰符和非访问修饰符。
java
- 精通C#变量与基础数据类型:完整指南
- C 语言变量、常量与字面量完全指南
- C 语言存储类完全解析:auto、extern、static、register
- C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
- C 语言指针完全指南:类型、用法与最佳实践
- Java 变量与字面量:全面指南
- Java 基本数据类型:8 大类型完整指南与示例
- 精通 Java 运算符:类型、语法与实战示例
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java 注解类型完全指南:预定义、自定义与元注解