I Java -program , är alla variabler får en särskild och oföränderlig typ när de först deklarerade . Således , om du skapar en heltalsvariabel kallad " numApples , " kan du inte ändra denna variabel till en dubbel eller snöre som programmet körs . Denna kvalitet gör Java ett " starkt maskinskrivna " språk och gör det möjligt att fånga ett antal potentiella problem som programmet sammanställer istället medan programmet körs . En av de potentiella problem är en åtgärd med inkompatibla typer . Orsak
p Det finns flera olika buggar som kan orsaka Java för att kasta en inkompatibel typer fel när du kompilerar dina program . I den enklaste misstag , kanske du har försökt att tilldela en inkompatibel typ för en variabel . Till exempel , om du skapade ett heltal variabel , kan du inte tilldela värdet 1.3 till den . Du kanske har även försökt att passera en inkompatibel variabel i en metod , en metod som endast accepterar en array av strängar som argument inte kan acceptera en enda sträng . Problemet kan också orsakas av en felaktig syntax på en boolesk jämförelse . Om du försöker att kontrollera om de heltal numApples är lika med 1 ( numApples == 1 ) men du utelämnar ett likhetstecken , kommer du uppger istället att numApples är lika med 1 ( numApples = 1 ) . Det första påståendet returnerar en boolean typ medan den andra returnerar ett heltal typ . Om du placerar det andra meddelandet i en funktion där en boolesk typ är nödvändigt , kommer programmet att kasta en inkompatibel typer fel . Addera Casting
p Om du behöver skicka en variabel till en metod som inte stöder just den typ av variabel , kanske du kan kasta den till en annan typ . Till exempel, om en metod bara stödjer heltal , men du vill passera en dubbel , kan du konvertera tillfälligt dubbel till ett heltal genom att lägga till " ( int ) " framför den dubbla variabeln när du passerar den i metoden . Casting kommer inte att ändra den lagrade variabeln , men det kan ändra värdet som gjuts . Gjutning en dubbel som motsvarar 3,2 till ett heltal returnerar heltalet 3 .
Överbelastning
p Om du behöver skicka olika typer av variabler till samma metod kan du skapa en överbelastad metoden . Överbelastade metoder är dubbletter av en metod som har samma namn , men acceptera olika argument . Till exempel kan du skapa två versioner av ett tillägg metod i samma klass , en som accepterar två dubbla värden och en annan som accepterar två flyttal . Om du ringer till och ge det två flyttal , kommer programmet köras automatiskt den metod som du angett för flyttal .
Arv
När du arbetar med avancerade typer , du kan undvika inkompatibla typer fel genom att ställa en metod för att acceptera föräldern av något slag som du vill passera in i den . Till exempel , om du har skapat en metod för att beräkna ytor av en byggnad , bör du ställa in den att acceptera en byggnad som argument :
calculateSquareFootage
dubbel ( Byggnad ingång ) katalog
Du kan då passera i någon datatyp som ärver byggnaden datatyp , till exempel en skola , fängelse eller data sjukhus typ .