Κλάση (class)
Γενικές αρχές
Κάθε κλάση έχει τη μορφή:
class ονομα_κλάσης { ... }
Για παράδειγμα:
class Animal { ... }
Μια κλάση μπορεί να έχει έναν τροποποιητή (modifier) όπως public ή private. Για παράδειγμα:
public class Animal { ... }
Μια κλάση περιέχει έναν συνδυασμό από πεδία (fields), μεθόδους (methods) και δημιουργούς ή κατασκευαστές (constructors)
Τα πεδία και οι μέθοδοι της κλάσης λέγονται μέλη της κλάσης (class members)
Ένα πεδίο στη δήλωσή του περιέχει:
- τον τροποποιητή (public, private, protected)
- τον τύπο δεδομένων (int, double, String κλπ)
- το όνομα του πεδίου
Για παράδειγμα:
public String firstName;
Μια μέθοδος στη δήλωσή της περιέχει:
- τον τροποποιητή (public, private, protected)
- τον τύπο δεδομένων που επιστρέφει (int, double, String κλπ) ή void αν δεν επιστρέφει τιμή
- το όνομα της μεθόδου
- 0, 1 ή περισσότερες παραμέτρους
- το σώμα της μεθόδου που ορίζεται από τα άγκιστρα: { ... }
- επίσης, μια μέθοδος μπορεί να περιέχει τις δικές της τοπικές μεταβλητές
public int getAge(int birthYear) { Calendar cal = new GregorianCalendar(); int thisYear=cal.get(Calendar.YEAR); return thisYear-birthYear; }
Για τα πεδία και τις μεθόδους ο προκαθορισμένος προσδιοριστής είναι: public
Για παράδειγμα: String firstName; //το πεδίο είναι public
Το όνομα και οι παράμετροι (τύπος παραμέτρου, αριθμός παραμέτρων, σειρά παραμέτρων) αλλά χωρίς τα άγγιστρα και το σώμα ορίζουν την υπογραφή (signature) της μεθόδου. Για παράδειγμα:
void setPerson(String fname, String lname, int year);
Κατασκευαστές
Μία κλάση περιέχει έναν η περισσότερους κατασκευαστές για τους οποίους ισχύει:
- Όλοι οι κατασκευαστές έχουν το ίδιο όνομα με αυτό της κλάσης
- Όλοι οι κατασκευαστές είναι προκαθορισμένα public, άρα ο τροποποιητής
publicείναι προαιρετικός - Όλοι οι κατασκευαστές είναι
void, δηλαδή δεν επιστρέφουν ποτέ καμία τιμή - Εάν δεν έχει δηλωθεί κατασκευαστής μέσα στην κλάση, τότε θεωρείται αυτόματα ο προκαθορισμένος κατασκευαστής ο οποίος έχει τη μορφή:
όνομα_κλάσης() {}
Για παράδειγμα, αν το όνομα της κλάσης είναιPerson, τότε ο προκαθορισμένος κατασκευαστής έχει τη μορφή:Person() { } - Οι κατασκευαστές σε μια κλάση πρέπει να διαφέρουν στις παραμέτρους
class Person { private String firstName; private String lastName; public Person(String fn, String ln) //constructor with parameters { firstName=fn; lastName=ln; } public Person() //constructor with no parameters { firstName="noFname"; lastName="noLname"; } public String getFirstName() //public method, returns string { return firstName; } public String getLastName() //public method, returns string { return lastName; } public void setFirstName(String fn) //public method, sets firstName { firstName=fn; } public void setLastName(String ln) //public setter method, sets lastName { lastName=ln; } }
UML Διάγραμμα για κλάση
Στα uml διαγράμματα η κλάση απεικονίζεται όπως παρακάτω:
