Sobes.tech
Junior

Τι είναι ο αντικειμενοστραφής προγραμματισμός (OOP) στη Java;

sobes.tech AI

Απάντηση από AI

Ο αντικειμενοστραφής προγραμματισμός στη Java είναι ένα παράδειγμα που βασίζεται στην έννοια των "αντικειμένων", τα οποία περιέχουν δεδομένα (ιδιότητες) και μεθόδους (ενέργειες).

Οι βασικές αρχές της OOP στη Java:

  1. Εν encapsulation: Απόκρυψη δεδομένων και μεθόδων μέσα σε ένα αντικείμενο, με πρόσβαση σε αυτά μόνο μέσω συγκεκριμένων διεπαφών. Αυτό διασφαλίζει την ασφάλεια των δεδομένων και τη modularity.
  2. Κληρονομικότητα: Επιτρέπει τη δημιουργία νέων κλάσεων (υποκλάσεων) βάσει υπαρχουσών (υπερκλάσεων), κληρονομώντας τις ιδιότητες και τις μεθόδους τους. Αυτό προάγει την επανάχρηση κώδικα.
  3. Πολυμορφισμός: Επιτρέπει τη χρήση αντικειμένων διαφορετικών κλάσεων μέσω μιας κοινής διεπαφής. Αυτό παρέχει ευελιξία και επεκτασιμότητα. Διακρίνεται μεταξύ χρόνου μεταγλώττισης (overloading μεθόδων) και χρόνου εκτέλεσης (υπερκαλύψεις μεθόδων).
  4. Αφηρημένη: Τονίζει τα ουσιώδη χαρακτηριστικά ενός αντικειμένου και κρύβει τις μη ουσιώδεις λεπτομέρειες. Αυτό βοηθά στην απλοποίηση πολύπλοκων συστημάτων.

Παράδειγμα μιας κλάσης στη Java:

public class Car {
    private String μάρκα; // Κρυμμένο χαρακτηριστικό
    private String μοντέλο;
    private int έτος;

    public Car(String μάρκα, String μοντέλο, int έτος) { // Κατασκευαστής
        this.μάρκα = μάρκα;
        this.μοντέλο = μοντέλο;
        this.έτος = έτος;
    }

    public void displayInfo() { // Μέθοδος
        System.out.println("Μάρκα: " + μάρκα + ", Μοντέλο: " + μοντέλο + ", Έτος: " + έτος);
    }

    // Getters και setters (για πρόσβαση στα ιδιωτικά χαρακτηριστικά)
    public String getΜάρκα() {
        return μάρκα;
    }

    public void setΜάρκα(String μάρκα) {
        this.μάρκα = μάρκα;
    }
}

Παράδειγμα χρήσης των αρχών της OOP:

// Κληρονομικότητα
public class ElectricCar extends Car {
    private int χωρητικότηταΜπαταρίας;

    public ElectricCar(String μάρκα, String μοντέλο, int έτος, int χωρητικότηταΜπαταρίας) {
        super(μάρκα, μοντέλο, έτος); // Κλήση του κατασκευαστή της υπερκλάσης
        this.χωρητικότηταΜπαταρίας = χωρητικότηταΜπαταρίας;
    }

    @Override // Πολυμορφισμός (υπερκαλύψεις μεθόδου)
    public void displayInfo() {
        super.displayInfo(); // Κλήση της μεθόδου της υπερκλάσης
        System.out.println("Χωρητικότητα Μπαταρίας: " + χωρητικότηταΜπαταρίας + " kWh");
    }
}

// Χρήση αντικειμένων
public class Main {
    public static void main(String[] args) {
        Car ηΜουΑυτοκινητο = new Car("Toyota", "Camry", 2020);
        Car ηΜουΗλεκτρικήΑυτοκινητο = new ElectricCar("Tesla", "Model 3", 2022, 75);

        ηΜουΑυτοκινητο.displayInfo();
        ηΜουΗλεκτρικήΑυτοκινητο.displayInfo(); // Πολυμορφισμός σε δράση
    }
}

Πλεονεκτήματα της OOP:

  • Επαναχρησιμοποίηση κώδικα: Μέσω κληρονομικότητας.
  • Εύκολη συντήρηση: Οι αλλαγές επηρεάζουν μόνο συγκεκριμένα αντικείμενα ή κλάσεις.
  • Ευελιξία και επεκτασιμότητα: Χάρη στον πολυμορφισμό.
  • Καλύτερη οργάνωση κώδικα: Διαχωρισμός του συστήματος σε modules (αντικείμενα).
  • Ασφάλεια δεδομένων: Μέσω εν encapsulation.