Non-primitive data type là gì?

Noun Programming
reference type reference type data non-primitive type
Kiểu dữ liệu không nguyên thủy

Trong lập trình, các kiểu dữ liệu không nguyên thủy (non-primitive data type) còn được gọi là kiểu dữ liệu tham chiếu (reference type), là kiểu dữ liệu (data type) lưu trữ các tham chiếu (reference) đến các giá trị hơn là chính các giá trị đó. Chúng không thể lưu giá trị của một biến trực tiếp trong bộ nhớ (memory). Chúng lưu trữ một địa chỉ bộ nhớ (memory address) của biến. Không giống như các kiểu dữ liệu nguyên thủy (primitive data type) được định nghĩa bởi Java, các kiểu dữ liệu không nguyên thủy (non-primitive data type) do người dùng định nghĩa.

Ví dụ về kiểu dữ liệu không nguyên thủy (non-primitive data type) trong Java bao gồm mảng (array), chuỗi (String), lớp (class), interface và num.

Mảng

Một mảng được sử dụng để chứa các phần tử (element) cùng kiểu dữ liệu (type). Nó là một đối tượng trong java và tên mảng (dùng để khai báo) là một giá trị tham chiếu mang địa chỉ cơ sở (base address) của vị trí liên tục của các phần tử của một mảng. Ví dụ code bên dưới:


int Array_Name = new int[7];

String

Kiểu dữ liệu String lưu trữ một chuỗi hoặc mảng các ký tự (character). String là một kiểu dữ liệu không nguyên thủy nhưng nó được định nghĩa trước trong Java. Các string literal được đặt trong dấu nháy kép (double quote).


class Main {
  public static void main(String[] args) {
 
    // create strings
    String S1 = "Java String Data type";
 
    // print strings
    System.out.println(S1);   
  }
}

Lớp

Lớp là một kiểu dữ liệu do người dùng định nghĩa (user-defined data type) mà từ đó các đối tượng (object) được tạo ra. Nó mô tả tập hợp các thuộc tính (property) hoặc phương thức (method) chung cho tất cả các đối tượng cùng loại. Nó chứa các trường (field) và phương thức đại diện cho hành vi của một đối tượng. Một lớp được gọi bằng cách tạo đối tượng tương ứng. Về cơ bản, một lớp là một khuôn mẫu (template) hoặc bản thiết kế (blueprint) mà từ đó các đối tượng được tạo ra. Ví dụ sơ đồ kiến ​​trúc của một tòa nhà là một lớp và bản thân tòa nhà là một đối tượng được tạo bằng cách sử dụng sơ đồ kiến ​​trúc.

Interface

Một interface được khai báo (declare) giống như một lớp. Sự khác biệt chính là interface chứa các phương thức trừu tượng (abstract method) theo mặc định, chúng không có phần thân (body) phương thức.


interface printable {  
void print();  
}  
class A1 implements printable {  
public void print()
{
System.out.println("Hello");
}   
public static void main(String args[]) {  
A1 obj = new A1();  
obj.print();  
 }  
}

Enum

Enum, tương tự như một lớp có các thuộc tính và phương thức. Tuy nhiên, trái ngược với các lớp, các hằng số (constant) của enum là public, static và final (không thể thay đổi - không thể ghi đè). Một enum không thể được sử dụng để tạo các đối tượng và nó không thể mở rộng (extend) các lớp khác. Tuy nhiên, enum có thể implement các interface.


//declaration of an enum
enum Level {
  LOW,
  MEDIUM,
  HIGH
}

Learning English Everyday