Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

1.4 Οι μέθοδοι κλάσσεων στην Java

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

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

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Main {
static void myMethod() {
System.out.println("Hello World!"); // Εκτύπωση του κειμένου "Hello World!"
}
public static void main(String[] args) {
myMethod(); // Κλήση της μεθόδου myMethod()
}
}
public class Main { static void myMethod() { System.out.println("Hello World!"); // Εκτύπωση του κειμένου "Hello World!" } public static void main(String[] args) { myMethod(); // Κλήση της μεθόδου myMethod() } }
public class Main {
  static void myMethod() {
    System.out.println("Hello World!"); // Εκτύπωση του κειμένου "Hello World!"
  }

  public static void main(String[] args) {
    myMethod(); // Κλήση της μεθόδου myMethod()
  }
}

Ο παραπάνω κώδικας δημιουργεί μια απλή Java κλάση με το όνομα “Main”. Η κλάση αυτή περιέχει δύο μεθόδους: τη μέθοδο “myMethod()” και την κύρια μέθοδο “main()”.

Η μέθοδος “myMethod()” είναι μια στατική μέθοδος που εκτυπώνει το κείμενο “Hello World!” στην οθόνη.

Η κύρια μέθοδος “main()” είναι η εκκίνηση του προγράμματος. Μέσα σε αυτήν τη μέθοδο γίνεται κλήση της μεθόδου “myMethod()”, η οποία θα εκτελέσει την ενέργεια της εκτύπωσης του κειμένου “Hello World!” στην οθόνη.

Συνολικά, ο κώδικας εκτελείται απλά εκτυπώνοντας το μήνυμα “Hello World!” στην οθόνη κατά την εκτέλεση της κύριας μεθόδου “main()”.

[adinserter block=”2″]

Συχνά σε προγράμματα Java θα συναντήσετε μεθόδους και χαρακτηριστικά που είναι είτε στατικά είτε δημόσια.

Στο παράδειγμα που παραθέσαμε προηγουμένως, δημιουργήσαμε μια στατική μέθοδο. Μια στατική μέθοδος μπορεί να κληθεί χωρίς να χρειάζεται να δημιουργηθεί ένα αντικείμενο της κλάσης. Από την άλλη πλευρά, μια δημόσια μέθοδος (public) μπορεί να κληθεί μόνο από αντικείμενα της κλάσης.

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Main {
static void myStaticMethod() {
System.out.println("Static methods can be called without creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της στατικής μεθόδου
}
public void myPublicMethod() {
System.out.println("Public methods must be called by creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της δημόσιας μεθόδου
}
public static void main(String[] args) {
myStaticMethod(); // Καλεί τη στατική μέθοδο
// myPublicMethod(); // Αυτό θα προκαλούσε σφάλμα συντακτικού
Main myObj = new Main(); // Δημιουργεί ένα αντικείμενο της κλάσης Main
myObj.myPublicMethod(); // Καλεί τη δημόσια μέθοδο μέσω του αντικειμένου
}
}
public class Main { static void myStaticMethod() { System.out.println("Static methods can be called without creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της στατικής μεθόδου } public void myPublicMethod() { System.out.println("Public methods must be called by creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της δημόσιας μεθόδου } public static void main(String[] args) { myStaticMethod(); // Καλεί τη στατική μέθοδο // myPublicMethod(); // Αυτό θα προκαλούσε σφάλμα συντακτικού Main myObj = new Main(); // Δημιουργεί ένα αντικείμενο της κλάσης Main myObj.myPublicMethod(); // Καλεί τη δημόσια μέθοδο μέσω του αντικειμένου } }
public class Main {
  static void myStaticMethod() {
    System.out.println("Static methods can be called without creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της στατικής μεθόδου
  }

  public void myPublicMethod() {
    System.out.println("Public methods must be called by creating objects"); // Εμφανίζει ένα μήνυμα που περιγράφει τη λειτουργία της δημόσιας μεθόδου
  }

  public static void main(String[] args) {
    myStaticMethod(); // Καλεί τη στατική μέθοδο
    // myPublicMethod(); // Αυτό θα προκαλούσε σφάλμα συντακτικού

    Main myObj = new Main(); // Δημιουργεί ένα αντικείμενο της κλάσης Main
    myObj.myPublicMethod(); // Καλεί τη δημόσια μέθοδο μέσω του αντικειμένου
  }
}

Ο κώδικας δημιουργεί μία κλάση με όνομα “Main”. Μέσα στην κλάση “Main” ορίζονται τρεις μέθοδοι.

Η πρώτη μέθοδος, η myStaticMethod(), είναι μια στατική μέθοδος που εμφανίζει ένα μήνυμα στην οθόνη που λέει “Static methods can be called without creating objects” (Οι στατικές μέθοδοι μπορούν να κληθούν χωρίς να δημιουργηθούν αντικείμενα).

Η δεύτερη μέθοδος, η myPublicMethod(), είναι μια δημόσια μέθοδος που εμφανίζει ένα μήνυμα στην οθόνη που λέει “Public methods must be called by creating objects” (Οι δημόσιες μέθοδοι πρέπει να κληθούν δημιουργώντας αντικείμενα).

Η τρίτη μέθοδος, η main(), είναι η κύρια μέθοδος του προγράμματος και είναι σημείο εκκίνησης για την εκτέλεση του κώδικα. Μέσα σε αυτήν τη μέθοδο γίνονται τα εξής:

  • Καλείται η στατική μέθοδος myStaticMethod(), η οποία εμφανίζει το αντίστοιχο μήνυμα.
  • Υπάρχει ένα σχόλιο που απενεργοποιεί την κλήση της μη δημόσιας μεθόδου myPublicMethod().
  • Δημιουργείται ένα αντικείμενο της κλάσης “Main” με τη χρήση της εντολής new Main().
  • Καλείται η δημόσια μέθοδος myPublicMethod() μέσω του αντικειμένου myObj, η οποία εμφανίζει το αντίστοιχο μήνυμα.

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

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

Στο παρακάτω παράδειγμα, δημιουργούμε ένα αντικείμενο της κλάσης Main με το όνομα myObj. Χρησιμοποιούμε τη μέθοδο myMethod στο αντικείμενο για να εκτυπώσουμε ένα κείμενο:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Main {
void myMethod() {
System.out.println("Hello World!"); // Εκτύπωση του μηνύματος "Hello World!"
}
public static void main(String[] args) {
Main myObj = new Main(); // Δημιουργία ενός νέου αντικειμένου της κλάσης Main
myObj.myMethod(); // Κλήση της μεθόδου myMethod() στο αντικείμενο myObj
}
}
public class Main { void myMethod() { System.out.println("Hello World!"); // Εκτύπωση του μηνύματος "Hello World!" } public static void main(String[] args) { Main myObj = new Main(); // Δημιουργία ενός νέου αντικειμένου της κλάσης Main myObj.myMethod(); // Κλήση της μεθόδου myMethod() στο αντικείμενο myObj } }
public class Main {
  void myMethod() {
    System.out.println("Hello World!"); // Εκτύπωση του μηνύματος "Hello World!"
  }

  public static void main(String[] args) {
    Main myObj = new Main(); // Δημιουργία ενός νέου αντικειμένου της κλάσης Main
    myObj.myMethod(); // Κλήση της μεθόδου myMethod() στο αντικείμενο myObj
  }
}

Ο παραπάνω κώδικας δημιουργεί μια κλάση με το όνομα “Main”. Στην κλάση αυτή, υπάρχουν δύο μέθοδοι: η μέθοδος “myMethod()” και η μέθοδος “main()”.

Η μέθοδος “myMethod()” είναι μια μέθοδος χωρίς επιστρεφόμενο τύπο (void), η οποία εκτυπώνει το μήνυμα “Hello World!” στην οθόνη.

Η μέθοδος “main()” είναι η κύρια μέθοδος που εκτελείται όταν το πρόγραμμα ξεκινάει. Στο εσωτερικό της μεθόδου, δημιουργείται ένα αντικείμενο της κλάσης “Main” με την χρήση της εντολής “Main myObj = new Main();”. Έπειτα, καλείται η μέθοδος “myMethod()” στο αντικείμενο “myObj” με την εντολή “myObj.myMethod();”, η οποία εκτυπώνει το μήνυμα “Hello World!” στην οθόνη.

Συνολικά, ο κώδικας εκτυπώνει το μήνυμα “Hello World!” στην οθόνη μέσω της κλήσης της μεθόδου “myMethod()”.

Παράδειγμα:
Δημιουργήστε ένα αντικείμενο αυτοκινήτου με όνομα myCar. Καλέστε τις μεθόδους fullThrottle() και speed() στο αντικείμενο myCar και εκτελέστε το πρόγραμμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Car {
// Attributes
String brand; // Η μάρκα του αυτοκινήτου
String model; // Το μοντέλο του αυτοκινήτου
int year; // Το έτος κατασκευής του αυτοκινήτου
double price; // Η τιμή του αυτοκινήτου
// Methods
public void fullThrottle() {
System.out.println("The car is going as fast as it can!"); // Εμφανίζει μήνυμα ότι το αυτοκίνητο πηγαίνει όσο γρήγορα μπορεί
}
public void speed(int maxSpeed) {
System.out.println("Max speed is: " + maxSpeed); // Εμφανίζει τη μέγιστη ταχύτητα που μπορεί να αναπτύξει το αυτοκίνητο
}
// Main method
public static void main(String[] args) {
Car myCar = new Car(); // Δημιουργία ενός αντικειμένου Car
myCar.fullThrottle(); // Κλήση της μεθόδου fullThrottle()
myCar.speed(200); // Κλήση της μεθόδου speed()
}
}
public class Car { // Attributes String brand; // Η μάρκα του αυτοκινήτου String model; // Το μοντέλο του αυτοκινήτου int year; // Το έτος κατασκευής του αυτοκινήτου double price; // Η τιμή του αυτοκινήτου // Methods public void fullThrottle() { System.out.println("The car is going as fast as it can!"); // Εμφανίζει μήνυμα ότι το αυτοκίνητο πηγαίνει όσο γρήγορα μπορεί } public void speed(int maxSpeed) { System.out.println("Max speed is: " + maxSpeed); // Εμφανίζει τη μέγιστη ταχύτητα που μπορεί να αναπτύξει το αυτοκίνητο } // Main method public static void main(String[] args) { Car myCar = new Car(); // Δημιουργία ενός αντικειμένου Car myCar.fullThrottle(); // Κλήση της μεθόδου fullThrottle() myCar.speed(200); // Κλήση της μεθόδου speed() } }
public class Car {
  // Attributes
  String brand; // Η μάρκα του αυτοκινήτου
  String model; // Το μοντέλο του αυτοκινήτου
  int year; // Το έτος κατασκευής του αυτοκινήτου
  double price; // Η τιμή του αυτοκινήτου

  // Methods
  public void fullThrottle() {
    System.out.println("The car is going as fast as it can!"); // Εμφανίζει μήνυμα ότι το αυτοκίνητο πηγαίνει όσο γρήγορα μπορεί
  }

  public void speed(int maxSpeed) {
    System.out.println("Max speed is: " + maxSpeed); // Εμφανίζει τη μέγιστη ταχύτητα που μπορεί να αναπτύξει το αυτοκίνητο
  }

  // Main method
  public static void main(String[] args) {
    Car myCar = new Car(); // Δημιουργία ενός αντικειμένου Car
    myCar.fullThrottle(); // Κλήση της μεθόδου fullThrottle()
    myCar.speed(200);     // Κλήση της μεθόδου speed()
  }
}

[adinserter block=”3″]

Ο παραπάνω κώδικας περιέχει την κλάση “Car” που αντιπροσωπεύει ένα αυτοκίνητο. Η κλάση έχει τέσσερα γνωρίσματα (μεταβλητές): “brand” (μάρκα), “model” (μοντέλο), “year” (έτος) και “price” (τιμή), τα οποία αντιπροσωπεύουν τα χαρακτηριστικά ενός αυτοκινήτου.

Στη συνέχεια, η κλάση περιέχει δύο μεθόδους. Η πρώτη μέθοδος “fullThrottle()” εμφανίζει ένα μήνυμα στην οθόνη που δηλώνει ότι το αυτοκίνητο πηγαίνει όσο γρήγορα μπορεί. Η δεύτερη μέθοδος “speed(int maxSpeed)” δέχεται έναν αριθμητικό παράμετρο “maxSpeed” και εμφανίζει τη μέγιστη ταχύτητα που μπορεί να αναπτύξει το αυτοκίνητο, συνδυάζοντας το μήνυμα με την τιμή της παραμέτρου.

Τέλος, η κλάση περιέχει την κύρια μέθοδο “main”, όπου δημιουργείται ένα αντικείμενο της κλάσης “Car” με την χρήση του “new Car()”. Στη συνέχεια, καλούνται οι μέθοδοι “fullThrottle()” και “speed(200)” στο αντικείμενο “myCar”, εμφανίζοντας τα αντίστοιχα μηνύματα στην κονσόλα.

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

Το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι:

“The car is going as fast as it can!”
“Max speed is: 200”

Μπορούμε επίσης να αλλάξουμε τις τιμές των χαρακτηριστικών του αντικειμένου myCar χρησιμοποιώντας τη σύνταξη myCar.attributeName = newValue. Για παράδειγμα, μπορούμε να αλλάξουμε την τιμή του price χαρακτηριστικού του myCar ως εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
myCar.price = 30000;
myCar.price = 30000;
myCar.price = 30000;

Στη συνέχεια, μπορούμε να καλέσουμε ξανά τη μέθοδο speed() για να εμφανιστεί η νέα τιμή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
myCar.speed(200);
myCar.speed(200);
myCar.speed(200);

Η έξοδος θα είναι:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Max speed is: 200
Max speed is: 200
Max speed is: 200

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

Όπως αναφέραμε στο κεφάλαιο των κλάσεων, είναι μια καλή πρακτική να δημιουργούμε ένα αντικείμενο μιας κλάσης και να το χρησιμοποιούμε σε άλλη κλάση.

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

Main.java

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Main {
public static void main(String[] args) {
Second mySecond = new Second();
System.out.println(mySecond.x);
}
}
public class Main { public static void main(String[] args) { Second mySecond = new Second(); System.out.println(mySecond.x); } }
public class Main {
  public static void main(String[] args) {
    Second mySecond = new Second();
    System.out.println(mySecond.x);
  }
}

Second.java

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class Second {
int x = 5;
}
public class Second { int x = 5; }
public class Second {
  int x = 5;
}

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο mySecond της κλάσης Second στο αρχείο Main.java και εκτυπώνουμε την τιμή της μεταβλητής x του αντικειμένου αυτού. Η τιμή αυτή προέρχεται από τη δήλωση της μεταβλητής x στο αρχείο Second.java.

Στη συνέχεια, μπορούμε να τρέξουμε το πρόγραμμα αυτό, και θα εμφανιστεί η τιμή της μεταβλητής x που είναι 5.

13 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων