Các kiểu biến trong Java

Mỗi biến trong Java có một kiểu riêng, mà quyết định kích cỡ và sự bố trí của bộ nhớ biến, dãy giá trị của các biến có thể được lưu trong bộ nhớ đó.

Một biến cung cấp cho chúng ta một nơi lưu giữ được đặt tên mà các chương trình có thể thao tác. Mỗi biến trong Java có một kiểu riêng, mà quyết định kích cỡ và sự bố trí của bộ nhớ biến, dãy giá trị của các biến có thể được lưu trong bộ nhớ đó và tập hợp các phép toán có thể được áp dụng tới biến.

Việc khai báo một biến bao gồm 3 thành phần: kiểu biến, tên của nó và giá trị ban đầu được gán cho biến (không bắt buộc). Để khai báo nhiều biến ta sử dụng dấu phẩy để phân cách các biến, Khi khai báo biến, luôn nhớ rằng Java phân biệt chữ thường và chữ in hoa (case -sensitive).

Bạn phải khai báo tất cả các biến trước khi chúng có thể được sử dụng. Form cơ bản của một khai báo biến như sau:

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

Ở đây, data type là một kiểu dữ liệu của Java và variable là tên của biến. Để khai báo nhiều hơn một biến với kiểu cụ thể, bạn có thể sử dụng một danh sách biến phân biệt nhau bởi dấu phảy.

Dưới đây là ví dụ về khai báo và khởi tạo biến hợp lệ trong 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'


Có 3 kiểu biến trong Java:

1. Biến local trong Java

- Các biến được khai báo trong các phương thức, constructor, hoặc khối.

- Các biến được tạo khi phương thức, constructor hoặc khối được nhập và biến bị hủy khi phương thức, constructor hoặc khối kết thúc.

- Chỉ định truy cập (access modifier) có thể không được sử dụng cho các biến local.

- Các biến local chỉ nhìn thấy trong phương thức, constructor, hoặc khối được khai báo.

- Các biến local được thực thi nội bộ.

- Không có giá trị mặc định nào cho các biến local, vì thế các biến local nên được khai báo và một giá trị khởi tạo nên được gán trước khi sử dụng.

Ví dụ:

Ở đây, age là biến local. Nó được định nghĩa bên trong phương thức pupAge() và phạm vi của nó được giới hạn chỉ trong phương thức này.

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

   }

}

Nó sẽ cho kết quả sau:

Puppy age is: 7

Ví dụ:

Ví dụ sau sử dụng age mà không khởi tạo nó, vì thế nó sẽ tạo một lỗi tại thời gian 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();

   }

}

Nó sẽ cho một lỗi sau trong khi biên dịch:

 

Test.java:4:variable number might not have been initialized

age = age + 7;

         ^

1 error

2. Các biến instance trong Java

- Các biến instance được khai báo trong một lớp, nhưng ở bên ngoài một phương thức, constructor hoặc bất kỳ khối nào.

- Khi một không gian nhớ được cấp phát cho một đối tượng trong một heap (một dạng cấu trúc hàng đợi có thứ tự ưu tiên), một slot cho mỗi giá trị biến instance được tạo ra.

- Các biến instance được tạo khi một đối tượng được tạo bởi sử dụng từ khóa new và bị hủy khi đối tượng bị hủy.

- Các biến instance giữ các giá trị mà phải được tham chiếu bởi nhiều hơn một phương thức, constructor hoặc khối, hoặc các phần chủ yếu của trạng thái đối tượng mà phải có mặt xuyên suốt lớp đó.

- Các biến instance có thể được khai báo trong mức độ lớp trước hoặc sau khi sử dụng.

- Chỉ định truy cập (access modifier) có thể được cung cấp cho các biến instance.

- Các biến instance là nhìn thấy với tất cả các phương thức, constructor, và khối trong lớp. Tuy nhiên, tính nhìn thấy cho các lớp phụ có thể được cung cấp cho những biến này với sự sử dụng của chỉ định truy cập.

- Các biến instance có các giá trị mặc định. Với các số, giá trị mặc định là 0, với Boolean là false và với đối tượng là null. Các giá trị có thể được gán trong khi khai báo hoặc trong constructor.

- Các biến instance có thể được truy cập một cách trực tiếp bởi việc gọi tên biến bên trong lớp đó. Tuy nhiên, với các phương thức static và các lớp khác nhau (khi biến instance được cung cấp khả năng truy cập), nó nên được gọi bởi sử dụng tên đầy đủ hợp lệ như sau: 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();

   }

}

Nó sẽ cho kết quả sau:

 

name  : Ransika

salary :1000.0

3. Các biến Class/static trong Java

- Các biến class cũng được biết như là các biến static được khai báo với từ khóa static trong một lớp, nhưng ở bên ngoài một phương thức, constructor hoặc một khối.

- Sẽ chỉ có một bản sao của mỗi biến class cho mỗi lớp, bất chấp việc bao nhiêu đối tượng được tạo từ nó.

- Các biến static hiếm khi được sử dụng, ngoài việc được khai báo như là các hằng số. Các hằng số là các biến, mà được khai báo như là các biến static, biến final, biến chung/riêng. Các biến hằng số không bao giờ thay đổi từ giá trị khởi tạo của chúng.

- Các biến static được lưu giữ trong bộ nhớ static.

- Các biến static được tạo khi chương trình bắt đầu và bị hủy khi chương trình kết thúc.

- Tính nhìn thấy là tương tự như các biến instance. Tuy nhiên, hầu hết biến static được khai báo chung khi chúng phải là có sẵn cho việc sử dụng của lớp.

- Giá trị mặc định là giống với các biến instance. Với các số, giá trị mặc định là 0; với Boolean là false, và với đối tượng là null. Các giá trị có thể được gán trong khi khai báo hoặc trong constructor. Ngoài ra, các giá trị có thể được gán trong các khối khởi tạo static đặc biệt.

- Các biến static có thể được truy cập bởi việc gọi tên lớp: ClassName.VariableName

- Khi khai báo các biến class như public static final, thì các tên biến ở dạng chữ hoa. Nếu các biến static không là public và final, thì cú pháp đặt tên giống với các biến local và biến instance.

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ẽ cho kết quả sau:

Development average salary:1000

Bài viết này đã trình bày cho bạn các kiểu biến đa dạng trong ngôn ngữ Java. Các bạn có thể xem chi tiết các bài viết tại stanford.com.vn.

Sưu tầm

Nhật Lệ (Stanford - Nâng tầm tri thức)

Tags: