Κλάση (class)

Γενικές αρχές

Κάθε κλάση έχει τη μορφή:

class ονομα_κλάσης { ... }

Για παράδειγμα:

class Animal { ... }

Μια κλάση μπορεί να έχει έναν τροποποιητή (modifier) όπως public ή private. Για παράδειγμα:

public class Animal { ... }

Μια κλάση περιέχει έναν συνδυασμό από πεδία (fields), μεθόδους (methods) και δημιουργούς ή κατασκευαστές (constructors)

Τα πεδία και οι μέθοδοι της κλάσης λέγονται μέλη της κλάσης (class members)

Ένα πεδίο στη δήλωσή του περιέχει:

  1. τον τροποποιητή (public, private, protected)
  2. τον τύπο δεδομένων (int, double, String κλπ)
  3. το όνομα του πεδίου

Για παράδειγμα:

public String firstName;

Μια μέθοδος στη δήλωσή της περιέχει:

  1. τον τροποποιητή (public, private, protected)
  2. τον τύπο δεδομένων που επιστρέφει (int, double, String κλπ) ή void αν δεν επιστρέφει τιμή
  3. το όνομα της μεθόδου
  4. 0, 1 ή περισσότερες παραμέτρους
  5. το σώμα της μεθόδου που ορίζεται από τα άγκιστρα: { ... }
  6. επίσης, μια μέθοδος μπορεί να περιέχει τις δικές της τοπικές μεταβλητές
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);

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

Μία κλάση περιέχει έναν η περισσότερους κατασκευαστές για τους οποίους ισχύει:

  1. Όλοι οι κατασκευαστές έχουν το ίδιο όνομα με αυτό της κλάσης
  2. Όλοι οι κατασκευαστές είναι προκαθορισμένα public, άρα ο τροποποιητής public είναι προαιρετικός
  3. Όλοι οι κατασκευαστές είναι void, δηλαδή δεν επιστρέφουν ποτέ καμία τιμή
  4. Εάν δεν έχει δηλωθεί κατασκευαστής μέσα στην κλάση, τότε θεωρείται αυτόματα ο προκαθορισμένος κατασκευαστής ο οποίος έχει τη μορφή: όνομα_κλάσης() {}
    Για παράδειγμα, αν το όνομα της κλάσης είναι Person, τότε ο προκαθορισμένος κατασκευαστής έχει τη μορφή: Person() { }
  5. Οι κατασκευαστές σε μια κλάση πρέπει να διαφέρουν στις παραμέτρους
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 διαγράμματα η κλάση απεικονίζεται όπως παρακάτω: