Plain Old Java Objects (POJO)

Tipuri de date și excepții în Java

Jim White

Java Developer

Tipuri de date și gestionarea excepțiilor

  • Capitolul 1
    • Plain old Java objects
    • Clase wrapper
    • Utilizarea pachetelor
  • Capitolul 2
    • Collections Framework
  • Capitolul 3
    • Excepții și gestionarea excepțiilor

Cum gestionează Java datele, problemele și erorile? Acesta este subiectul cursului.

1 Foto de Mika Baumeister pe Unsplash
Tipuri de date și excepții în Java

Obiecte Java ca structuri de date

  • Obiectele Java stochează și organizează date.
    • Create din clase personalizate
  • Stochează date în câmpuri
    • Funcționează ca „valize" pentru datele aplicației
  • Sunt numite POJO
    • Plain ordinary Java object
    • Sau Plain old Java object
  • Obiecte Java simple care dețin și transmit date
    • Respectă anumite reguli
    • Nu conțin logică

Obiectele Java, sau POJO-urile, funcționează ca valize pentru a stoca și transmite date într-o aplicație.

1 Foto de Caroline Selfors pe Unsplash
Tipuri de date și excepții în Java

Getteri și setteri

  • Getterii și setterii sunt publici
    • Câmpurile sunt private
  • Getterii și setterii protejează datele unui POJO
    • Promovează încapsularea datelor
  • Ascund detaliile de implementare ale câmpurilor
Tipuri de date și excepții în Java

Ghid pentru clasele POJO

  • O clasă POJO ar trebui:
    • Să fie publică
    • Să aibă getteri/setteri publici pentru toate câmpurile
      • Câmpurile ar trebui să fie private
    • Să aibă un constructor implicit (fără argumente)

Clasele POJO trebuie să respecte aceste reguli

1 Foto de Anastasiya Badun pe Unsplash
Tipuri de date și excepții în Java

Ce nu trebuie să facă un POJO

  • O clasă POJO nu ar trebui:
    • Să fie legată de un framework
    • Să extindă alte clase
    • Să implementeze interfețe
      • Cu excepția Serializable în unele cazuri
    • Să conțină logică de business
  • Aceste reguli pot fi uneori relaxate
    • Păstrați POJO-urile simple

Clasele POJO nu ar trebui să aibă aceste caracteristici

1 Foto de Anastasiya Badun pe Unsplash
Tipuri de date și excepții în Java

Getteri

  • Numele metodelor getter
    • Încep cu "get" (pentru boolean, încep cu "is")
    • Se termină cu numele câmpului
    • Lower camel case
    • Exemplu: get + make = getMake
  • Nu primesc parametri
  • Returnează valoarea câmpului
  • Getterii pot ascunde detalii despre implementarea câmpului
    private String make;

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

    public boolean isOn() {
      if (on == 0) {
        return false;
      } else {
        return true;
      }
    }
Tipuri de date și excepții în Java

Setteri

  • Numele metodelor setter
    • Încep cu "set", se termină cu numele câmpului
    • Lower camel case
    • Exemplu: set + make = setMake
  • Primesc un singur parametru – noua valoare a câmpului
    • Folosiți this pentru a distinge câmpul de parametru
  • Returnează void
  • Pot valida datele primite
    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;
      }
    }
Tipuri de date și excepții în Java

Exemplu POJO

  • Clasă publică
  • Câmpuri private
  • Getteri/setteri publici
    • Getterii returnează valoarea unui câmp
    • Setterii setează valoarea unui câmp
  • Constructor implicit / fără argumente
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;
    }
}
Tipuri de date și excepții în Java

Să exersăm!

Tipuri de date și excepții în Java

Preparing Video For Download...