"Ve şimdi, Diego'dan kısa bir ders. Kısa ve öz. Referans tipi dönüştürmeler hakkında."
"Object değişkenleri ile başlayalım. Böyle bir değişkene herhangi bir referans tipi atayabilirsiniz ( genişletme dönüştürmesi ). Ancak atamayı diğer yönde yapmak için ( darlaştırma dönüştürmesi ), bir cast işlemini açıkça belirtmeniz gerekir:"
kod | Tanım |
---|---|
|
Tipik bir genişleyen referans dönüştürme |
|
Tipik bir daraltma referans dönüştürmesi |
|
Genişletme dönüştürme. |
|
Çalışma hatası! Bir Tamsayı başvurusunu bir Dize başvurusuna çeviremezsiniz. |
|
Çalışma hatası! Bir Tamsayı referansını bir Float referansına çeviremezsiniz. |
|
Aynı türe dönüştürme. Daralan bir referans dönüştürme. |
" Genişletme veya daraltma referans dönüştürmesi, nesneyi hiçbir şekilde değiştirmez. Daraltma (veya genişletme) kısmı, özellikle, atama işleminin değişkenin ve yeni değerinin tip denetimini içerdiğini (içermediğini) ifade eder. "
"Bu, her şeyin açık olduğu ender örnek."
" Bu örneklerdeki hatalardan kaçınmak için , Object değişkeni tarafından hangi türe başvurulduğunu bulmanın bir yolunu bulduk: "
int i = 5;
float f = 444.23f;
String s = "17";
Object o = f; // o stores a Float
if (o instanceof Integer)
{
Integer i2 = (Integer) o;
}
else if (o instanceof Float)
{
Float f2 = (Float) o; // This if block will be executed
}
else if (o instanceof String)
{
String s2 = (String) o;
}
"Nesnenin türünden %100 emin değilseniz, bu kontrolü her genişletme dönüştürmesinden önce gerçekleştirmelisiniz."
"Anladım."
GO TO FULL VERSION