java:objects
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| java:objects [2022/02/23 12:58] – [Επεξήγηση της χρήσης του τελεστή new] gthanos | java:objects [2022/02/23 15:25] (current) – [Garbage Collection] gthanos | ||
|---|---|---|---|
| Line 142: | Line 142: | ||
| </ | </ | ||
| + | <WRAP todo 80% center round> | ||
| Δημιουργήστε ένα project με τα παραπάνω τρία αρχεία java στο IDE της επιλογής σας και εκτελέστε τον κώδικα. Τρέξτε τον κώδικα βήμα-βήμα βλέποντας πως αλλάζουν οι τιμές των μεταβλητών. | Δημιουργήστε ένα project με τα παραπάνω τρία αρχεία java στο IDE της επιλογής σας και εκτελέστε τον κώδικα. Τρέξτε τον κώδικα βήμα-βήμα βλέποντας πως αλλάζουν οι τιμές των μεταβλητών. | ||
| + | </ | ||
| ==== Επεξήγηση του παραπάνω κώδικα ===== | ==== Επεξήγηση του παραπάνω κώδικα ===== | ||
| Line 179: | Line 181: | ||
| rect2.setOrigin(origin1); | rect2.setOrigin(origin1); | ||
| // display rect2 origin | // display rect2 origin | ||
| - | System.out.println(" | + | System.out.println(" |
| | | ||
| // move rect2 origin and display its new position | // move rect2 origin and display its new position | ||
| Line 185: | Line 187: | ||
| | | ||
| // print origin of rect1 and rect2 | // print origin of rect1 and rect2 | ||
| - | System.out.println(" | + | System.out.println(" |
| - | System.out.println(" | + | System.out.println(" |
| </ | </ | ||
| Στις γραμμές αυτές συμβαίνουν τα εξής: | Στις γραμμές αυτές συμβαίνουν τα εξής: | ||
| - | - Το αντικείμενο '' | + | - Το αντικείμενο '' |
| + | - Στη συνέχεια, | ||
| - Εκτυπώνονται οι αλλαγές για το '' | - Εκτυπώνονται οι αλλαγές για το '' | ||
| - Εκτυπώνονται οι αλλαγές για το '' | - Εκτυπώνονται οι αλλαγές για το '' | ||
| - | Παρατηρούμε ότι οι συντεταγμένες του πεδίου **origin** άλλαξαν | + | Παρατηρούμε ότι οι συντεταγμένες του πεδίου **origin** άλλαξαν για το αντικείμενο '' |
| Τα παρακάτω δύο σχήματα αποτυπώνουν α) την αλλαγή του πεδίου **origin** του '' | Τα παρακάτω δύο σχήματα αποτυπώνουν α) την αλλαγή του πεδίου **origin** του '' | ||
| Line 226: | Line 229: | ||
| </ | </ | ||
| - | ===== Πολλαπλοί κατασκευαστές σε μία κλάση ===== | + | ===== Διαφορετικοί κατασκευαστές σε μία κλάση ===== |
| - | Μία κλάση μπορεί να έχει πολλούς διαφορετικούς κατασκευαστές. Κάθε κατασκευαστής ορίζει | + | Μία κλάση μπορεί να έχει περισσότερους από ένα |
| <code java> | <code java> | ||
| Line 241: | Line 244: | ||
| - | ===== Χρήση | + | ===== Χρήση |
| Όταν φτιάξετε ένα αντικείμενο είναι σίγουρο ότι θα θέλετε να το χρησιμοποιήσετε προκειμένου να κάνετε μία εργασία όπως να γράψετε κάτι στα δεδομένα του, να διαβάσετε από αυτά ή να χρησιμοποιήσετε κάποια από τις μεθόδους του. | Όταν φτιάξετε ένα αντικείμενο είναι σίγουρο ότι θα θέλετε να το χρησιμοποιήσετε προκειμένου να κάνετε μία εργασία όπως να γράψετε κάτι στα δεδομένα του, να διαβάσετε από αυτά ή να χρησιμοποιήσετε κάποια από τις μεθόδους του. | ||
| Line 281: | Line 284: | ||
| Οι γλώσσες προγραμματισμού που μέχρι τώρα έχετε γνωρίσει (βλέπε **C**) αναθέτουν την ευθύνη δέσμευσης μνήμης στον προγραμματιστή μέσω των συναρτήσεων **malloc()** και **free()**. Σε αντιδιαστολή, | Οι γλώσσες προγραμματισμού που μέχρι τώρα έχετε γνωρίσει (βλέπε **C**) αναθέτουν την ευθύνη δέσμευσης μνήμης στον προγραμματιστή μέσω των συναρτήσεων **malloc()** και **free()**. Σε αντιδιαστολή, | ||
| - | Πώς όμως αποδεσμεύεται η μνήμη που δεσμεύτηκε προηγούμενα από το πρόγραμμα μας, αλλά δεν την χρειαζόμαστε πλέον; Περιοδικά το **JVM** κοιτάει εάν υπάρχει δεσμευμένη μνήμη για αντικείμενα στα οποία δεν υφίστανται πλέον αναφορές/ | + | Πώς όμως αποδεσμεύεται η μνήμη που δεσμεύτηκε προηγούμενα από το πρόγραμμα μας, αλλά δεν την χρειαζόμαστε πλέον; Περιοδικά το **JVM** κοιτάει εάν υπάρχει δεσμευμένη μνήμη για αντικείμενα στα οποία δεν υφίστανται πλέον αναφορές/ |
| Ο μηχανισμός **Garbage Collection** απαντάται σε αρκετές γλώσσες υψηλού επιπέδου, | Ο μηχανισμός **Garbage Collection** απαντάται σε αρκετές γλώσσες υψηλού επιπέδου, | ||
java/objects.1645621086.txt.gz · Last modified: 2022/02/23 12:58 by gthanos
