Προγραμματισμός ΙΙ: Εισαγωγή στα Αντικείμενα

Προγραμματισμός ΙΙ

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

public class LightBulb {

    private static int numOfObjects = 0;
    private boolean light;

    public LightBulb(boolean light) {
        this.light = light;
        numOfObjects+=1;
    }

    public boolean isLit() {
        return light;
    }

    public void switchLight() {
        light = !light;
    }

    public static int getNumOfObjects() {
        return numOfObjects;
    }
}

Αντικειμενοστραφής Προγραμματισμός (2)

Κατασκευαστής

Ο κατασκευαστής (constructor) είναι μια ειδική μέθοδος η οποία:

Δέσμευση Μνήμης για Αντικειμένα

Παράδειγμα:

LightBulb lightBulb = new LightBulb(false);

Στατικά και μη στατικά πεδία και μεθόδους.

Προσδιοριστές Πρόσβασης

O προσδιοριστής 'final'

Παράδειγμα(1)

public class Test {

    public static void main(String[] args) {
        LightBulb objLightBulb1 = new LightBulb(true);
        LightBulb objLightBulb2 = new LightBulb(true);

        objLightBulb1.setState();

        System.out.println(objLightBulb1);
        System.out.println(objLightBulb2);
    }
}

Παράδειγμα(2)

public class Test {

    public static void main(String[] args) {
        LightBulb objLightBulb1 = new LightBulb(true);
        LightBulb objLightBulb2 = objLightBulb1;

        objLightBulb1.switchLight();

        System.out.println(objLightBulb1);
        System.out.println(objLightBulb2);
    }
}

Παράδειγμα(3)

public class Test {

    public static void main(String[] args) {
        LightBulb objLightBulb1 = new LightBulb(true);
        LightBulb objLightBulb2 = new LightBulb(false);
        System.out.println(LightBulb.getNumOfObjects());
        System.out.println(objLightBulb1.getNumOfObjects());
        System.out.println(objLightBulb1.isLit());

        // System.out.println(LightBulb.isLit());
        // System.out.println(lightBulb.light);
    }
}

Άσκηση

Καταστροφή Αντικειμένων


Creative Commons Licence
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.