Plain Old Java Objects (POJO)

Kiểu dữ liệu và Exceptions trong Java

Jim White

Java Developer

Tổng quan kiểu dữ liệu và xử lý ngoại lệ

  • Chương 1
    • Plain old (hoặc ordinary) Java objects
    • Wrapper classes
    • Sử dụng packages
  • Chương 2
    • Collections Framework
  • Chương 3
    • Exceptions và xử lý ngoại lệ

Java xử lý dữ liệu, vấn đề và lỗi như thế nào? Đó là chủ đề của khóa học này.

1 Ảnh: Mika Baumeister trên Unsplash
Kiểu dữ liệu và Exceptions trong Java

Đối tượng Java như cấu trúc dữ liệu

  • Đối tượng Java lưu trữ và tổ chức dữ liệu.
    • Tạo từ các lớp tùy chỉnh
  • Lưu dữ liệu trong các trường
    • Như “vali” dữ liệu của ứng dụng
  • Gọi là POJO
    • Plain ordinary Java object
    • Hoặc Plain old Java object
  • Đối tượng Java đơn giản dùng để chứa và chuyển dữ liệu
    • Tuân theo vài quy tắc
    • Không có logic

Đối tượng Java (POJO) như những chiếc vali chứa và chuyển dữ liệu trong ứng dụng.

1 Ảnh: Caroline Selfors trên Unsplash
Kiểu dữ liệu và Exceptions trong Java

Getter và setter

  • Getter và setter là public
    • Trường là private
  • Getter/setter bảo vệ dữ liệu trong POJO
    • Thúc đẩy đóng gói dữ liệu
  • Ẩn chi tiết triển khai của các trường bên dưới
Kiểu dữ liệu và Exceptions trong Java

Hướng dẫn lớp POJO

  • Lớp POJO nên:
    • Khai báo public
    • Có getter/setter public cho mọi trường
      • Trường để private
    • Có constructor mặc định (không tham số)

Các lớp POJO nên tuân theo các quy tắc này

1 Ảnh: Anastasiya Badun trên Unsplash
Kiểu dữ liệu và Exceptions trong Java

POJO: điều không nên làm

  • Lớp POJO không nên:
    • Phụ thuộc vào framework
    • Kế thừa lớp khác
    • Implement bất kỳ interface nào
      • Trừ Serializable trong vài trường hợp
    • Chứa logic nghiệp vụ
  • Các quy tắc này đôi khi có thể nới lỏng
    • Hãy giữ POJO đơn giản

Các lớp POJO không nên có các đặc điểm này

1 Ảnh: Anastasiya Badun trên Unsplash
Kiểu dữ liệu và Exceptions trong Java

Getter

  • Quy tắc đặt tên getter
    • Bắt đầu bằng "get" (boolean bắt đầu bằng "is")
    • Kết thúc bằng tên trường
    • lower camel case
    • Ví dụ: get + make = getMake
  • Không nhận tham số
  • Trả về giá trị của trường
  • Getter có thể ẩn chi tiết triển khai của trường
    private String make;

    public String getMake() {
        return make;
    }
    private short on;

    public boolean isOn() {
      if (on == 0) {
        return false;
      } else {
        return true;
      }
    }
Kiểu dữ liệu và Exceptions trong Java

Setter

  • Quy tắc đặt tên setter
    • Bắt đầu bằng "set", kết thúc bằng tên trường
    • lower camel case
    • Ví dụ: set + make = setMake
  • Nhận một tham số - giá trị mới của trường
    • Dùng this để phân biệt trường và tham số
  • Trả về void (không trả gì)
  • Có thể kiểm tra tính hợp lệ của dữ liệu
    private String make;

    public void setMake(String make) {
        this.make = make;
    }
    private int age;

    public void setAge(int age) {
      if ((age >= 0) && (age <= 120)) {
        this.age = age;
      }
    }
Kiểu dữ liệu và Exceptions trong Java

Ví dụ POJO

  • Lớp public
  • Trường private
  • Getter/setter public
    • Getter trả về giá trị của trường
    • Setter gán giá trị cho trường
  • Constructor mặc định / không tham số
public class Car {   // POJO class is public
    private String model;  // Fields are private
    private int year;

    // Default no arg constructor

    // Public getters to access POJO data
    public String getModel() {
        return model;
    }
    public int getYear() {
        return year;
    }
    // Public setters to set POJO fields
    public void setModel(String model) {
        this.model = model;
    }
    public void setYear(int year) {
        this.year = year;
    }
}
Kiểu dữ liệu và Exceptions trong Java

Ayo berlatih!

Kiểu dữ liệu và Exceptions trong Java

Preparing Video For Download...