Προς το περιεχόμενο

Java και αντικείμενα


ffseriespower

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω μία κλάση όπου μέσα έχω βάλει τρεις κλάσεις ως εξής

 

κλαση 1 extends applet implements runnable{}

κλαση 2 extends Thread{}

κλάση 3 extends Thread{}

 

Το πρόβλημα μου είναι το εξής. Δημιουργώ ένα αντικείμενο της κλάσης δύο και το χρησιμοποιώ για να του αλλάξω μια εσωτερική του μεταβλητή κάθε φορά που θα πατάω ένα κουμπί. Όμως δεν με αφήνει να χρησιμοποιήσω αυτήν την μεταβλητή στην κλάση 3. Δηλαδή να πατάω το κουμπί να αλλάζει η μεταβλητή της κλάσης δύο και παράλληλα να μπορώ να εκμεταλευτώ αυτήν την αλλαγή στην κλάση 3. Μου βγάζει variable not found στο bluej.

 

Ευχαριστώ.

Δημοσ.

Το γεγονός ότι οι classes 2 και 3 ορίζονται μέσα στην ίδια class (αν κατάλαβα τι λες) δεν έχει καμία σημασία. Διάβασε ένα βιβλίο για Java, γιατί η ερώτηση που κάνεις δείχνει ότι πιθανόν να μη γνωρίζεις απολύτως βασικά πράγματα.

Δημοσ.

Έχω μία κλάση όπου μέσα έχω βάλει τρεις κλάσεις ως εξής

 

κλαση 1 extends applet implements runnable{}

κλαση 2 extends Thread{}

κλάση 3 extends Thread{}

 

Το πρόβλημα μου είναι το εξής. Δημιουργώ ένα αντικείμενο της κλάσης δύο και το χρησιμοποιώ για να του αλλάξω μια εσωτερική του μεταβλητή κάθε φορά που θα πατάω ένα κουμπί. Όμως δεν με αφήνει να χρησιμοποιήσω αυτήν την μεταβλητή στην κλάση 3. Δηλαδή να πατάω το κουμπί να αλλάζει η μεταβλητή της κλάσης δύο και παράλληλα να μπορώ να εκμεταλευτώ αυτήν την αλλαγή στην κλάση 3. Μου βγάζει variable not found στο bluej.

 

Ευχαριστώ.

 

 

Εχεις μπερδεψει κατι...Αυτο που εχεις κανει εδω οπως το λες ειναι να εχεις δημιουργησει 3 κλασεις σε ενα αρχειο..ειναι ομως 3 διαφορετικα αντικειμενα εντελως...για να μπορει το ενα να παιρνει τη τιμη της αλλης σαν μεταβλητη πχ αν χρησιμοποιουν το χ και οι 3 οταν αλλαζει στη μια να γινεται και στην αλλη πρεπει ειτε να κανεις τις 2 επομενες απλες μεθοδους της κλασεις σου με δηλωενη την μεταβλητη απο την αρχη...ειτε να κανεις synhronize tiw μεθοδους πραγμα που δεν νομιζω θα καταφερεις ευκολα αφου δεν ξερεις καλη Java.

Δημοσ.

To bluej είναι το IDE που χρησιμοποιεί.

 

Στο πρόβλημά σου τώρα. Για να μπορείς να χρησιμοποιήσεις την μεταβλητή της κλάσης 2 στην κλάση 3 πρέπει αρχικά να κατασκευάσεις ένα αντικείμενο (με new) της κλάσης 2 μέσα στην κλάση 3. Από εκεί, μέσω του αντικειμένου αυτού, θα προσπελάσεις τη μεταβλητή.

Αντίστοιχα θα μπορούσες να την προσπελάσεις αν είχες δηλώσεις τη μεταβλητή ως static, απλά καλώντας όνομα_κλάση_2.όνομα_μεταβλητής.

 

Αν δε σε καλύπτει το παραπάνω, γίνε λίγο πιο συγκεκριμένος με κώδικα. Πώς έχεις υλοποιήσει τις κλάσεις σου (τα "κρίσιμα" σημεία) και πώς το προσπαθείς τώρα και δεν τα καταφένεις;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...