Java 变量类型

来源:这里教程网 时间:2026-02-17 20:15:51 作者:

Java 变量类型

变量为我们的程序提供了可以操作的命名存储空间。Java中的每个变量都有特定的类型,该类型决定了变量内存的大小和布局;可以存储在该内存中的值的范围;以及可以对该变量应用的操作集。

在使用变量之前,必须声明所有变量。以下是变量声明的基本形式:

data type variable [ = value][, variable [ = value] ...] ;

这里的数据类型是Java的数据类型之一,变量是变量的名称。要声明多个指定类型的变量,可以使用逗号分隔的列表。

以下是Java中变量声明和初始化的有效示例:

示例

int a, b, c;         // Declares three ints, a, b, and c.int a = 10, b = 10;  // Example of initializationbyte B = 22;         // initializes a byte type variable B.double pi = 3.14159; // declares and assigns a value of PI.char a = 'a';        // the char variable a iis initialized with value 'a'

本章将解释Java语言中可用的各种变量类型。Java有三种变量类型,分别是:

局部变量实例变量类/静态变量

局部变量

局部变量声明在方法、构造函数或块中。

局部变量在进入方法、构造函数或块时被创建,并在退出方法、构造函数或块时被销毁。

局部变量不能使用访问修饰符。

局部变量仅在声明的方法、构造函数或块中可见。

局部变量在内部实现时位于堆栈级别。

局部变量没有默认值,因此在第一次使用前必须声明并赋予初始值。

示例

这里, age 是一个局部变量。它在 pupAge() 方法内定义,其范围仅限于该方法。

public 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 的情况下使用它,所以在编译时会出错。

public 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 initializedage = age + 7;         ^1 error

实例变量

实例变量是在类中声明的,但是在方法、构造函数或任何块之外。

当在堆中为对象分配空间时,会为每个实例变量值创建一个插槽。

实例变量在使用关键字’new’创建对象时创建,并在对象销毁时销毁。

实例变量保存必须由多个方法、构造函数或块引用的值,或者对象状态的基本部分,必须在整个类中存在。

实例变量可以在使用之前或之后在类级别中声明。

可以为实例变量提供访问修饰符。

实例变量对于类中的所有方法、构造函数和块都是可见的。通常,建议将这些变量设置为私有(访问级别)。然而,可以使用访问修饰符为这些变量提供给子类的可见性。

实例变量具有默认值。对于数字,默认值是0;对于布尔值,默认值是false;对于对象引用,默认值是null。可以在声明时或构造函数内部分配值。

可以直接通过在类内部调用变量名来访问实例变量。然而,在静态方法中(当实例变量被给予可访问性时),应使用完全限定名称调用它们。ObjectReference.VariableName

示例

import java.io.*;public class Employee {   // this instance variable is visible for any child class.   public String name;   // salary  variable is visible in Employee class only.   private double salary;   // The name variable is assigned in the constructor.   public Employee (String empName) {      name = empName;   }   // The salary variable is assigned a value.   public void setSalary(double empSal) {      salary = empSal;   }   // This method prints the employee details.   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  : Ransikasalary :1000.0

类/静态变量

类变量也被称为静态变量,在一个类中使用static关键字声明,但在方法、构造函数或块之外声明。

每个类变量在类中只有一个副本,无论创建了多少个对象。

静态变量很少用于除了声明为常量之外的其他情况。常量是以public/private、final和static声明的变量。常量变量的初始值不会改变。

静态变量存储在静态内存中。除了声明为最终常量并用作公共或私有常量之外,很少使用静态变量。

静态变量在程序启动时创建,在程序停止时销毁。

可见性与实例变量相似。但是,大多数静态变量都被声明为public,因为它们必须对类的用户可用。

默认值与实例变量相同。对于数字,初始值为0;对于布尔值,初始值为false;对于对象引用,初始值为null。值可以在声明时或在构造函数中进行赋值。此外,值可以在特殊的静态初始化块中进行赋值。

可通过使用类名来访问静态变量 ClassName.VariableName 。

当将类变量声明为public static final时,变量名(常量)都是大写的。如果静态变量不是public和final的,命名语法与实例和局部变量相同。

示例

import java.io.*;public class Employee {   // salary  variable is a private static variable   private static double salary;   // DEPARTMENT is a constant   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)。下一章将详细解释访问修饰符和非访问修饰符。

相关推荐