Πίνακας περιεχομένων:
- Κάνοντας κεφαλαία γράμματα όπου ανήκουν
- Διακοπή μιας δήλωσης διακόπτη
- εάν (inputNumber == randomNumber)
- OnClickListener, AnimationListener
- .
- }
- ,
- setContentView (διάταγμα διάταξης .activity_main);
- Η δραστηριότητα δεν βρέθηκε
- , παρόλο που η
Βίντεο: Computational Thinking - Computer Science for Business Leaders 2016 2024
Ο καθένας κάνει λάθη. Είναι γεγονός της ζωής. Ωστόσο, εάν λάβετε υπόψη τις συμβουλές εδώ, δεν χρειάζεται να είναι γεγονός του προγραμματισμού σας Java.
Κάνοντας κεφαλαία γράμματα όπου ανήκουν
Η Java είναι μια γλώσσα ευαίσθητη σε πεζά, γι 'αυτό πρέπει πραγματικά να προσέξετε τα p s και q s - του αλφαβήτου. Ακολουθούν μερικές ιδέες που πρέπει να θυμάστε καθώς δημιουργείτε προγράμματα Java:
- Οι λέξεις-κλειδιά της Java είναι εντελώς πεζά. Για παράδειγμα, σε μια πρόταση
- Όταν χρησιμοποιείτε ονόματα από το Interface Programming Interface (API) του Android, η περίπτωση των ονομάτων πρέπει να ταιριάζει με αυτό που εμφανίζεται στο API.
- Τα ονόματα που δημιουργείτε μόνοι σας πρέπει να κεφαλαιοποιούνται με τον ίδιο τρόπο σε όλο το πρόγραμμα. Εάν δηλώσετε μια μεταβλητή
myAccount
, δεν μπορείτε να την παραπέμψετε ωςMyAccount
,myaccount
ήMyaccount
. Αν χρησιμοποιείτε το όνομα της μεταβλητής με δύο διαφορετικούς τρόπους, η Java σκέφτεται να αναφέρετε δύο εντελώς διαφορετικές μεταβλητές.
Διακοπή μιας δήλωσης διακόπτη
Αν δεν ξεσπάσετε μια εντολή
διακόπτη
, θα πέσετε. Για παράδειγμα, αν η τιμή
roll
είναι
7
, ο ακόλουθος κώδικας εκτυπώνει και τις τρεις λέξεις -
win
,
> χάσει
:
διακόπτης (ρολό) {
περίπτωση 7:
textView. setText ("νίκη");
περίπτωση 10:
textView. setText ("συνέχεια");
textView. setText ("χάσει");
}
Συγκρίνοντας τις τιμές με ένα διπλό ίσο σημείο
Όταν συγκρίνετε δύο τιμές, χρησιμοποιείτε ένα διπλό ίσο σημείο. Η γραμμή
εάν (inputNumber == randomNumber)
είναι σωστή, αλλά η γραμμή
αν (inputNumber = randomNumber)
δεν είναι σωστή.
Προσθέτοντας ακροατές για την αντιμετώπιση συμβάντων
Θέλετε να μάθετε πότε ο χρήστης κάνει κλικ σε ένα γραφικό στοιχείο, όταν τελειώνει μια κινούμενη εικόνα ή όταν συμβαίνει κάτι άλλο, ώστε να δημιουργήσετε ακροατές:
OnClickListener, AnimationListener
{ …
public void onClick (Προβολή προβολής) {
… Όταν δημιουργείτε ακροατές, πρέπει να θυμάστε να ρυθμίσετε τους ακροατές:
ImageView widget = new ImageView (this);
widget.
setOnClickListener
(αυτό).
…
Κινούμενη εικόνα AlphaAnimation = νέα AlphaAnimation (0. 0F, 1. 0F);
κινούμενα σχέδια.
setAnimationListener
(αυτό); … Εάν ξεχάσετε την κλήση στο
, δεν γίνεται τίποτα όταν κάνετε κλικ στο γραφικό στοιχείο.Κάνοντας κλικ στο widget σκληρότερα μια δεύτερη φορά δεν βοηθά.
Καθορισμός των απαιτούμενων κατασκευαστών
Όταν καθορίζετε έναν κατασκευαστή με παραμέτρους, όπως στο
Η Java δεν δημιουργεί πλέον έναν προεπιλεγμένο κατασκευαστή παραμέτρων για εσάς. Με άλλα λόγια, δεν μπορείτε πλέον να καλέσετε
Θερμοκρασία roomTemp = νέα Θερμοκρασία ();
εκτός αν ορίσετε ρητά τη δική σας παράμετρο
Θερμοκρασία
.
Καθορισμός μη στατικών αναφορών
Αν προσπαθήσετε να συντάξετε τον παρακάτω κώδικα, θα λάβετε ένα μήνυμα σφάλματος:
class WillNotWork {
χαιρετισμός συμβολοσειρών = "Γεια σας";
static void εμφάνιση () {
textView. setText (χαιρετισμός);
}
}
Εμφανίζεται μήνυμα λάθους επειδή η μέθοδος
εμφανίζει
είναι στατική, αλλά
χαιρετισμός
δεν είναι στατική.
Διαμονή εντός ορίων σε έναν πίνακα
Όταν δηλώνετε έναν πίνακα με δέκα στοιχεία, τα στοιχεία έχουν ευρετήρια 0 έως 9. Με άλλα λόγια, εάν δηλώσετε
int επισκέπτες [] = νέο int [10];
μπορείτε να ανατρέξετε στα συστατικά του πίνακα
επισκέπτες
γράφοντας
επισκέπτες [0]
,
επισκέπτες [1]
κ.ο.
επισκέπτες [9]
. Δεν μπορείτε να γράψετε
επισκέπτες [10]
, επειδή ο πίνακας
φιλοξενουμένων
δεν έχει συνιστώσα με ευρετήριο 10.
Προβλέψεις μηδενικών δεικτών
A 999 NullPointerException
έρχεται όταν ονομάζετε μια μέθοδο σε μια έκφραση που δεν έχει "νόμιμη" αξία. Εδώ είναι ένα παράδειγμα:
δημόσια class MainActivity επεκτείνει AppCompatActivity {
TextView textView;
@Override
προστατευμένο void onCreate (Bundle savedInstanceState) {
σούπερ. onCreate (savedInstanceState);
setContentView (διάταγμα διάταξης.activity_main);
// Ξεχάσατε τη γραμμή findViewById.
}
public void onButtonClick (προβολή προβολής) {
textView. setText ("Γεια σας");
}
}
Στην Java, μια μεταβλητή τύπου αναφοράς που δεν δείχνει σε τίποτα έχει την τιμή
null
. Επομένως, σε αυτό το παράδειγμα, η τιμή της μεταβλητής
textView
είναι
null
.
Δεν μπορείτε να καλέσετε τη μέθοδο
setText
στην τιμή
null
. Για το θέμα αυτό, δεν μπορείτε να καλέσετε κάποια μέθοδο στην τιμή
null
. Όταν η Java προσπαθεί να εκτελέσει
textView. setText ("Hello")
, η εφαρμογή διακόπτεται. Ο χρήστης βλέπει μια
εφαρμογή έχει σταματήσει
μήνυμα. Εάν δοκιμάζετε την εφαρμογή χρησιμοποιώντας το Android Studio, βλέπετε το
NullPointerException
στο παράθυρο του Logcat.
Για να αποφύγετε αυτό το είδος καταστροφής, σκεφτείτε δύο φορές για οποιαδήποτε μέθοδο κλήσης στον κώδικα σας. Αν η έκφραση πριν από την κουκκίδα μπορεί να είναι
null
, προσθέστε κώδικα χειρισμού εξαιρέσεων στο πρόγραμμά σας:
public void onButtonClick (προβολή προβολής) {
try { textView. setText ("Γεια σας"); } αλίευση (NullPointerException e) {
Τοστ. makeText (αυτό, "Η εφαρμογή έχει ανακτήσει από σφάλμα.",
Τοστ. LENGTH_LONG). προβολή();
}
}
Χρήση δικαιωμάτων
Ορισμένες εφαρμογές απαιτούν ρητά δικαιώματα. Για παράδειγμα, μερικές εφαρμογές μιλούν στους διακομιστές του Twitter μέσω του Διαδικτύου. Αυτό δεν λειτουργεί εκτός εάν προσθέσετε ένα στοιχείο
στο
AndroidManifest της εφαρμογής.xml
αρχείο:
Εάν ξεχάσετε να προσθέσετε το στοιχείο
στο
AndroidManifest. xml
, η εφαρμογή δεν μπορεί να επικοινωνήσει με τους διακομιστές του Twitter. Η εφαρμογή αποτυγχάνει χωρίς να εμφανίσει ένα χρήσιμο μήνυμα σφάλματος. Πάρα πολύ κακό!
Η δραστηριότητα δεν βρέθηκε
Εάν δημιουργήσετε μια δεύτερη δραστηριότητα για την εφαρμογή σας, πρέπει να προσθέσετε ένα νέο
στοιχείο στο
AndroidManifest της εφαρμογής. xml
αρχείο. Το στοιχείο μπορεί να είναι τόσο απλό όσο
, αλλά στις περισσότερες περιπτώσεις το στοιχείο είναι λίγο πιο περίπλοκο.
Εάν δεν προσθέσετε αυτό το στοιχείο
, το Android δεν μπορεί να βρει την τάξη
MySecondActivity
, παρόλο που η
MySecondAcitivity. Το αρχείο java
βρίσκεται στον κατάλογο έργου της εφαρμογής. Η εφαρμογή σας διακόπτεται με
ActivityNotFoundException
.
Και αυτό κάνει όλη τη διαφορά.