Các loại biến trong Java

Trong Java, tất cả các biến phải được khai báo trước khi sử dụng. Thể hiện cơ bản của việc khai báo các biến như sau:

type identifier [ = value][, identifier [= value] ...] ;

Trong đó, chữ type là một trong những kiểu dữ liệu của Java. identifer là tên của biến. Để khai báo nhiều hơn một biến của cùng một kiểu dữ liệu, sử dụng dấu phẩy (,) để phân tách chúng.

Sau đây là vài ví dụ về khai báo biến với nhiều kiểu dữ liệu khác nhau.

int a, b, c;         // declares three ints, a, b, and c.
int d = 3, e, f = 5; // declares three more ints, initializing
                     // d and f.
byte z = 22;         // initializes z.
double pi = 3.14159; // declares an approximation of pi.
char x = 'x';        // the variable x has the value 'x'.

Phần này sẽ giải thích nói đến nhiều kiểu biến trong Java. Có 3 loại biến trong Java:

  • Local variable
  • Instance variable
  • Class/static variable

Local variable:

– Được khai báo bên trong các method, constructor, hoặc block

– Được tạo ra khi method, constructor hoặc block được gọi và biến này sẽ bị destroy ngay khi thực hiện xong method, constructor hoặc block

– Các giới hạn truy xuất (access modifier) không được dùng cho các biến loại này

– Chúng chỉ xuất hiện nội trong giới hạn của method, constructor hoặc block

– Không có giá trị mặc định cho các biến local nên chúng nên được khai báo với một giá trị khởi tạo (initial value)

Ví dụ:

Ở đây, age là một local variable. Nó được định nghĩa bên trong pupAge() và phạm vi của nó được giới hạn nội trong hàm này mà thôi

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();
   }
}

Kết quả như sau

Puppy age is: 7

Ví dụ:

Ví dụ sau sử dụng age mà không khởi tạo, nên sẽ tạo ra một lỗi lúc biên dịch

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();
   }
}

Và lỗi như sau:

Test.java:4:variable number might not have been initialized
age = age + 7;
         ^
1 error

Instance variable:

– được khai báo trong class, nhưng bên ngoài các method, constructor hoặc block.

– được tạo ra khi một object được tạo ra và bị hủy khi object bị hủy

– giữ các giá trị được tham chiếu tới bởi nhiều method, constructor hoặc block, hoặc là các phần khác.

– có thể được khai báo trong lớp trước hoặc sau khi sử dụng nó.

– các giới hạn truy xuất được dùng với local variable.

– thông thường thì local variable sẽ visible với tất cả các method, constructor và block trong class.

– có giá trị mặc định của chúng. number thì là 0, boolean thì là false, object là null.

– có thể được truy xuất trực tiếp bằng các gọi tên biến bên trong class. Còn với những static method hoặc lớp khác (khi instance variable được cho phép truy

xuất) , thì chúng có thể được gọi thông qua ObjectReference.VariableName

Ví dụ

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();
   }
}

kết quả sẽ như sau:

name  : Ransika
salary :1000.0

Class hoặc static variable:

– được khai báo với từ khóa static trong class nhưng bên ngoài method, constructor hoặc block

– biến static là duy nhất bên trong một class.

– biến này được dùng ít hơn là khai báo biến hằng.

– được lưu trữ trong bộ nhớ static.

-được tạo ra khi chương trình bắt đầu chạy và hủy khi chương trình dừng.

-visible thì tương tự như instance varibale. Hầu hết các static variable được khai báo public.

-giá trị mặc định cũng tương tự như instance variable.

-có thể được truy xuất bằng cách gọi tên lớp: ClassName.VariableName

Ví dụ

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);
   }
}

Nó sẽ tạo ra

Development average salary:1000

10.849409

106.753706

Advertisement

Privacy Settings

Share this:

Like this:

Like

Loading…