Java 变量类型

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 initialization
byte 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 initialized
age = 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  : Ransika
salary :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)。下一章将详细解释访问修饰符和非访问修饰符。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程