Log In

JAVA GUIDE - Κλάσεις (Μέρος 1ο)

Thunder's picture

  Στο προηγούμενο άρθρο μιλήσαμε για τις συναρτήσεις, τα διάφορα είδη τους και για το πως τις χρησιμοποιούμε. Σε αυτό το άρθρο θα ξεκινήσουμε να μιλάμε για τις κλάσεις. Λόγω των πολλών στοιχείων και ιδιοτήτων που πρέπει να αναφέρουμε, το κεφάλαιο κλάσεις θα χωριστεί σε 3 μέρη. Στο πρώτο μέρος θα μιλήσουμε για την δημιουργία κλάσεων, την σημασία τους και τα χαρακτηριστικά τους.

 

 

Τι είναι κλάση;

 

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

 

Άνθρωπος:

           Χαρακτηριστικά (μεταβλητές): όνομα, ηλικία, φύλο κ.τ.λ

           Μέθοδοι : ομιλία, γραφή, κ.τ.λ

 

Αυτοκίνητο:

           Χαρακτηριστικά (μεταβλητές): μάρκα, μοντέλο, χρώμα κ.τ.λ

           Μέθοδοι : εκκίνηση κινητήρα, σβήσιμο κινητήρα, κ.τ.λ

 

Λογαριασμός τράπεζας:

Χαρακτηριστικά (μεταβλητές): όνομα κατόχου, αριθμός λογαριασμού,     υπόλοιπο κ.τ.λ

           Μέθοδοι : κατάθεση, ανάληψη, κ.τ.λ

 

 

Δημιουργία κλάσης

 

  Για να δημιουργήσουμε μία καινούργια κλάση στο NetBeans, αρκεί να κάνουμε δεξί κλικ στο πακέτο στο οποίο θέλουμε να την εισάγουμε (βρίσκουμε το πακέτο στον Project Manager – Explorer που βρίσκεται στα αριστερά της οθόνης μας) και στην συνέχεια επιλέγουμε New --> Java Class. Στην συνέχεια εισάγουμε το όνομα της κλάσης στο παράθυρο που εμφανίζεται και το NetBeans δημιουργεί την κλάση για εμάς.

 

Γενικότερα για να ορίσουμε μία κλάση γράφουμε:

public class <όνομα κλάσης> {

            περιεχόμενο κλάσης...

}

 

*** Προσοχή: Αν αποφασίσουμε να ανοίξουμε μόνοι μας ένα κενό αρχείο και να ορίσουμε μία κλάση πρέπει στην αρχή του αρχείου να γράψουμε το package στο οποίο βρίσκεται.

 

Παράδειγμα 1:

public class Autokinhto {

}

 

Παράδειγμα 2:

public class Logariasmos {

}

 

 

Public / private / protected

 

  Στις κλάσεις υπάρχουν κάποιες λέξεις που ορίζουν ποιός έχει το δικαίωμα να δεί ή να χρησιμοποιήσει το περιεχόμενο των κλάσεων. Αυτές οι λέξεις εισάγονται:

  • Κατά την δήλωση των μεταβλητών της κλάσης, πρίν από τον τύπο τους
  • Κατά την δήλωση και υλοποίηση των μεθόδων (συναρτήσεων) της κλάσης, πρίν από τον τύπο τους.

 

Οι λέξεις αυτές είναι:

  • public : Δηλώνει ότι κάτι είναι δημόσιο και μπορεί να το δεί οποιαδήποτε κλάση σε οποιοδήποτε πακέτο.
  • private : Δηλώνει ότι κάτι είναι ιδιωτικό και μπορεί να το δεί μόνο η κλάση στην οποία βρίσκεται.
  • protected : Δηλώνει ότι κάτι είναι προστατευόμενο και μπορεί να το δεί η κλάση στην οποία βρίσκεται, αλλά και οι υποκλάσεις της.

 

***Για τις κλάσεις συνήθως χρησιμοποιούμε public ώστε να μπορούν να τις δουν οι υπόλοιπες κλάσεις.

 

 

Χαρακτηριστικά (μεταβλητές) κλάσης

 

  Οι μεταβλητές της κλάσης ορίζονται στην αρχή της κλάσης (αμέσως μετά την δήλωση της κλάσης) και έχουν ισχύ σε όλη την κλάση. Οι μεταβλητές αυτές μπορεί να είναι public / private / protected, με βάση το τι θέλει να υλοποιήσει ο χρήστης. Για την δήλωση μεταβλητών στην κλάση γράφουμε:

 

public class <όνομα κλάσης> {

            <public / private / protected> <τύπος μεταβλητής> <όνομα μεταβλητής>;

}

 

Παράδειγμα 3:

public class Autokinhto {

            protected String marka;

            protected String xrwma;

            protected String etos_paragwghs;

            protected int kuvika;

            protected int portes;

}

 

Παράδειγμα 4:

public class Logariasmos {

            private String onoma_katoxou;

            private String arithmos_logariasmou;

            private int upoloipo;

            private int pin;

}

 

 

Μέθοδοι (συναρτήσεις) κλάσης

 

  Οι συναρτήσεις της κλάσεις ορίζονται σε οποιοδήποτε σημείο μέσα στα όρια της κλάσης και μπορούν να κληθούν από οποιοδήποτε σημείο της κλάσης (και από οποιοδήποτε σημείο άλλων κλάσεων αν έχει τα κατάλληλα δικαιώματα). Για την δήλωση μεθόδων στην κλάση γράφουμε:

public class <όνομα κλάσης> {

            <public / private / protected> <τύπος συνάρτησης> <όνομα συνάρτησης>(<ορίσματα αν υπάρχουν>) {

            }

}

 

Παράδειγμα 5:

public class Autokinhto {

            protected String marka;

            protected String xrwma;

            protected String etos_paragwghs;

            protected int kuvika;

            protected int portes;

            protected boolean kinhthras_on;

 

            protected void ekkinhsh_kinhthra() {

                        kinhthras_on = true;

            }

            protected void ekkinhsh_kinhthra() {

                        kinhthras_on = false;

            }

}

 

Παράδειγμα 6:

public class Logariasmos {

            private String onoma_katoxou;

            private String arithmos_logariasmou;

            private int upoloipo;

            private int pin;

 

            private boolean eisagwgh_pin(int dwthen_pin) {

                    if (pin == dwthen_pin) {

                            return true;

         }

         return false;

            }

 

            private int katathesh(int poso) {

                    upoloipo = upoloipo + poso;

         return upoloipo;

            }

 

            private int analupsh(int poso) {

                    upoloipo = upoloipo - poso;

         return upoloipo;

            }

}

 

  Οι μεταβλητές και οι συναρτήσεις μίας κλάσης, μπορούν να χρησιμοποιηθούν και από άλλες κλάσεις, πράγμα που τμηματοποιεί σε μεγάλο βαθμό τον κώδικα μας και τον κάνει ευκολότερο στην διόρθωση και την κατανόηση του. Στο επόμενο άρθρο θα συνεχίσουμε με κλάσεις και θα μιλήσουμε για τον constructor / destructor των κλάσεων, την δημιουργία αντικειμένων και για το πως χρησιμοποιούμε αυτά τα αντικείμενα. Μείνετε συντονισμένοι!