Υπάρχουν πολλά διαφορετικά μικρόβια που μπορεί να προκαλέσουν Java για να ρίξει ένα ασυμβίβαστο λάθος τους τύπους κατά τη μεταγλώττιση του προγράμματος σας . Στην απλούστερη λάθος , μπορεί να έχετε προσπαθήσει να δώσει έναν ασυμβίβαστο τύπου σε μια μεταβλητή . Για παράδειγμα , εάν δημιουργήσατε μια ακέραια μεταβλητή , δεν μπορείτε να ορίσετε την τιμή 1.3 σε αυτό . Μπορείτε επίσης να έχετε προσπαθήσει να περάσει ένα ασυμβίβαστο μεταβλητή σε μια μέθοδο ? Μια μέθοδος που δέχεται μόνο μια σειρά από strings ως επιχείρημα δεν μπορεί να δεχθεί μια χορδή . Το πρόβλημα αυτό μπορεί επίσης να προκληθεί από τη χρήση ενός εσφαλμένη σύνταξη σε ένα Boolean σύγκριση. Αν προσπαθήσετε να ελέγξετε αν οι numApples ακέραιος είναι ίσος με 1 ( numApples == 1 ), αλλά παραλείψετε ένα ίσον , θα αναφέρει , αντίθετα, ότι numApples είναι ίσο με 1 ( numApples = 1 ) . Η πρώτη δήλωση αποτιμάται σε έναν τύπο boolean , ενώ η δεύτερη αποτιμάται σε έναν τύπο ακέραιο . Αν τοποθετήσετε τη δεύτερη ανακοίνωση σε λειτουργία, όπου ένας τύπος boolean είναι απαραίτητο , το πρόγραμμα θα ρίξει μια ασυμβίβαστη σφάλμα τύπους .
Εικόνων Casting
Η
Αν χρειαστεί να περάσει μια μεταβλητή με μια μέθοδο που δεν υποστηρίζει το συγκεκριμένο τύπο της μεταβλητής , μπορείτε να είστε σε θέση να το ρίχνει σε ένα άλλο είδος . Για παράδειγμα , αν μια μέθοδος υποστηρίζει μόνο ακέραιους αριθμούς , αλλά θέλετε να περάσετε ένα διπλό , μπορείτε να μετατρέψετε προσωρινά το διπλό σε ακέραιο με την προσθήκη " ( int) " μπροστά από το διπλό μεταβλητό όπως μπορείτε να περάσετε στη μέθοδο . Casting δεν θα αλλάξει την αποθηκευμένη μεταβλητή, αλλά μπορεί να αλλάξει την τιμή που είναι cast. Casting ένα διπλό που ισοδυναμεί με 3.2 σε μια ακέραιο θα επιστρέψει τον ακέραιο 3 .
Η υπερφόρτωση
Η
Αν χρειαστεί να περάσει διάφορα είδη μεταβλητών στο ίδια μέθοδο , μπορείτε να δημιουργήσετε μια υπερφορτωμένη μέθοδος . Υπερφορτωμένες μεθόδους είναι αντίγραφα μιας μεθόδου που έχουν το ίδιο όνομα , αλλά δέχονται διαφορετικά επιχειρήματα . Για παράδειγμα , θα μπορούσατε να δημιουργήσετε δύο εκδοχές της μεθόδου add στην ίδια κατηγορία , η οποία θα δέχεται δύο διπλές τιμές και ένα άλλο που δέχεται δύο τιμές float . Αν καλέσετε προσθέσετε και να περάσει δύο τιμές float , το πρόγραμμα θα εκτελέσει αυτόματα τη μέθοδο που καθορίζεται για τις τιμές float .
Εικόνων Κληρονομικότητα
Η
Όταν εργάζεστε με προηγμένες μορφές , μπορείτε να αποφεύγονται τα ασυμβίβαστα τύπους σφαλμάτων θέτοντας μια μέθοδο για να δεχθεί την μητρική οποιουδήποτε τύπου που θέλετε να περάσετε σε αυτό . Για παράδειγμα , αν έχετε δημιουργήσει μια μέθοδο για τον υπολογισμό της τετραγωνικής έκτασης του κτιρίου , θα πρέπει να ρυθμιστεί να δέχεται ένα κτίριο ως επιχείρημά της :
διπλό calculateSquareFootage (είσοδος Κτίριο)
συνέχεια, μπορείτε να να περάσει σε οποιοδήποτε τύπο δεδομένων που κληρονομεί τον τύπο δεδομένων κτιρίου , όπως ένα σχολείο , φυλακή ή στο νοσοκομείο τύπο δεδομένων .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα