Βίντεο: Week 2 2024
Υπάρχουν μερικά πράγματα που θέλετε να σκεφτείτε όταν επαναχρησιμοποιείτε ονόματα στην εφαρμογή Android. Θα μπορούσατε να δηλώσετε δύο μεταβλητές Java -
bag1
και
bag2
- να αναφερθούν σε δύο διαφορετικά αντικείμενα
BagOfCheese
. Είναι εντάξει. Αλλά μερικές φορές, έχοντας μόνο μία μεταβλητή και επαναχρησιμοποίηση για το δεύτερο αντικείμενο λειτουργεί εξίσου καλά, όπως φαίνεται εδώ.
πακέτο com. allmycode. a09_03;
Εισαγωγή του. υποστήριξη. v7. app. AppCompatActivity;
εισαγωγή του Android. os. Δέσμη;
εισαγωγή του Android. widget. TextView;
Εισαγωγή com. allmycode. a09_01. BagOfCheese;
η δημόσια κλάση MainActivity επεκτείνει το AppCompatActivity {
TextView textView;
@Override
προστατευμένο κενό onCreate (Bundle savedInstanceState) {
σούπερ. onCreate (savedInstanceState);
setContentView (διάταγμα διάταξης.activity_main);
textView = (TextView) findViewById (κωδικός αναγνώρισης κειμένου);
Τσάντα BagOfCheese = νέα BagOfCheese ();
τσάντα. είδος = "Cheddar";
τσάντα. βάρος = 2. 43;
τσάντα. ημέρεςAged = 30;
τσάντα. isDomestic = true;
textView. setText ("");
textView. "+", "+", "+ bag", "+", "+".
τσάντα = νέα BagOfCheese ();
τσάντα. είδος = "Μπλε";
τσάντα. βάρος = 5.987.
τσάντα. ημέρεςAged = 90;
τσάντα. isDomestic = false;
textView. "+", "+", "+ bag", "+", "+".
}
}
Σε αυτόν τον κώδικα, όταν η Java εκτελεί τη δεύτερη
τσάντα = νέα πρόταση BagOfCheese ()
, το παλιό αντικείμενο (η τσάντα που περιέχει το cheddar) έχει εξαφανιστεί. Χωρίς τσάντα (ή οποιαδήποτε άλλη μεταβλητή) που αναφέρεται σε αυτό το αντικείμενο cheddar, ο κώδικας δεν μπορεί να κάνει τίποτα με το αντικείμενο cheddar. Ευτυχώς, όταν φτάσετε στη δεύτερη
τσάντα = νέα δήλωση BagOfCheese ()
, τελειώσατε να κάνετε ό, τι θέλετε να κάνετε με την αρχική τσάντα τσάντα. Στην περίπτωση αυτή, είναι αποδεκτή η επαναχρησιμοποίηση της μεταβλητής της τσάντας.
Όταν επαναχρησιμοποιείτε μια μεταβλητή (όπως η μεταβλητή
τσάντα
παραπάνω), το κάνετε αυτό χρησιμοποιώντας μια εντολή εκχώρησης, όχι μια προετοιμασία. Με άλλα λόγια, δεν γράφετε
σακούλα BagOfCheese
μια δεύτερη φορά στον κωδικό σας. Αν το κάνετε, βλέπετε μηνύματα σφάλματος στον επεξεργαστή Android Studio.
Για να είστε οδυνηρά ακριβείς, μπορείτε να γράψετε περισσότερο από μία φορά το ίδιο κομμάτι του κώδικα με την
σακούλα BagOfCheese
.
Κανένα από τα πεδία της κατηγορίας
BagOfCheese
δεν είναι
τελικό
. Με άλλα λόγια, ο κώδικας της κλάσης σας επιτρέπει να επανατοποθετήσετε τιμές στα πεδία μέσα σε ένα αντικείμενο
BagOfCheese
.Με αυτές τις πληροφορίες, μπορείτε να συντομεύσετε τον παραπάνω κώδικα κατά μία ακόμη γραμμή, όπως φαίνεται εδώ.
πακέτο com. allmycode. a09_04;
εισαγωγή του Android. υποστήριξη. v7. app. AppCompatActivity;
εισαγωγή του Android. os. Δέσμη;
εισαγωγή του Android. widget. TextView;
Εισαγωγή com. allmycode. a09_01. BagOfCheese;
η δημόσια κλάση MainActivity επεκτείνει το AppCompatActivity {
TextView textView;
@Override
προστατευμένο void onCreate (Bundle savedInstanceState) {
σούπερ. onCreate (savedInstanceState);
setContentView (διάταγμα διάταξης.activity_main);
textView = (TextView) findViewById (κωδικός αναγνώρισης κειμένου);
Τσάντα BagOfCheese = νέα BagOfCheese ();
τσάντα. είδος = "Cheddar";
τσάντα. βάρος = 2. 43;
τσάντα. ημέρεςAged = 30;
τσάντα. isDomestic = true;
textView. setText ("");
textView. "+", "+", "+ bag", "+", "+".
// τσάντα = νέα BagOfCheese ();
τσάντα. είδος = "Μπλε";
τσάντα. βάρος = 5.987.
τσάντα. ημέρεςAged = 90;
τσάντα. isDomestic = false;
textView. "+", "+", "+ bag", "+", "+".
}
}
Με τη δεύτερη κλήση κατασκευαστή σε αυτόν τον κωδικό σχολίασε, δεν κάνετε τη μεταβλητή
σακούλα
να αναφέρεται σε ένα νέο αντικείμενο. Αντ 'αυτού, εξοικονομείτε αναθέτοντας νέες τιμές στα πεδία του υπάρχοντος αντικειμένου.
Σε ορισμένες περιπτώσεις, η επαναχρησιμοποίηση των πεδίων ενός αντικειμένου μπορεί να είναι πιο αποτελεσματική (πιο γρήγορη εκτέλεση) από τη δημιουργία ενός νέου αντικειμένου. Αλλά κάθε φορά που έχετε μια επιλογή, είναι καλή ιδέα να γράψετε κώδικα που αντικατοπτρίζει πραγματικά δεδομένα. Εάν το περιεχόμενο μιας πραγματικής τσάντας δεν μεταβάλλεται από τυρί τσένταρ σε μπλε τυρί, θα ήταν καλύτερα να μην αλλάξετε το είδος του αντικειμένου του αντικειμένου
BagOfCheese
από "
Cheddar
" σε "
".