1. Sarmalayıcı türlerinin listesi
Java'nın sınıf olmayan türler olan 8 ilkel türü olduğunu biliyorsunuz. Bir yandan, bu iyi — basitler ve az yer kaplıyorlar. Öte yandan, bazen dersler tam ihtiyacımız olan şeydir. Bunun tam olarak neden olduğunu bir sonraki derste öğreneceksiniz.
Peki ne yapılabilir?
Java'nın beşinci sürümünden başlayarak, her ilkel tür bir ikiz sınıf kazandı. Bu tür sınıfların her biri, belirli bir türde bir değere sahip tek bir alanı depolar. Bu sınıflara , sınıflardaki ilkel değerleri sardıkları için sarmalayıcı türleri denir .
İşte bu türlerin bir listesi. Hiç biliyor musun?
| ilkel tip | sarmalayıcı sınıfı |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
İlkel türlerin adları küçük harfle başlar, ancak sarmalayıcı sınıfların adları büyük harfle başlar. Bazı sınıf adları da biraz daha uzundur: Integerinstead of intи Characterinstead of char.
Sarmalayıcı sınıfların tüm nesneleri değiştirilemez ( immutable ).
Sınıf için basitleştirilmiş kod Integerşuna benzer:
| kod | Not |
|---|---|
|
Değişken Oluşturucu Yöntem bir değer döndürür Statik yöntem bir değişken Integeriçin yeni bir nesne oluştururint |
int2. an'ı an'a dönüştürmeInteger
Sarıcı türleri, ilkel kardeşlerinin eşdeğerleri olarak kabul edilir: bir ilkel türe karşılık gelen bir sarmalayıcı nesneyi kolayca oluşturabilirsiniz.
İlkel türlerin karşılık gelen sarmalayıcı türleriyle nasıl etkileşime girdiğini analiz etmek için int türünü örnek olarak kullanalım. intan'dan an'a ve tam tersi dönüştürme kodu Integerşöyle görünür:
intan'ı an'a dönüştürmek için Integerşu kodu yazmanız gerekir:
Integer name = new Integer(value);
Nerede namebir değişkenin adı Integerve valuesarılmış değerdir int.
Örnekler:
| kod | Not |
|---|---|
|
|
|
|
|
Ve an'ı Integeran'a dönüştürmek için intşu kodu yazmanız gerekir:
int name = variable.intValue();
Nerede namebir değişkenin adıdır intve variablebir nesneye referanstır Integer.
Örnekler:
| kod | Not |
|---|---|
|
|
|
|
|
|
|
|
3. Otomatik kutulama ve kutudan çıkarma
Ancak tiple yapılan basit işlemleri bile Integeryazmak kolay değildir.
Daha önce de söylediğimiz gibi, Integertip değiştirilemez ( immutable ). IntegerYeni bir değere sahip bir nesne oluşturmak için int, açıkça yeni bir nesne oluşturmanız gerekir Integer. intBununla birlikte, bir nesnenin içinde saklanan değeri elde etmek kolaydır Integer- sadece intValue()yöntemi çağırın.
Örnek:
| kod | Tanım |
|---|---|
|
5Bir Integernesneye sarın Nesneden değeri alın Yeni bir nesne oluşturun Integer( 10'a eşit)Integer |
Bu oldukça hantal bir kod, sence de öyle değil mi?
Java'nın yaratıcıları böyle düşündüler ve derleyiciye bu işlemleri otomatik olarak nasıl yapacaklarını öğrettiler. intan'ın an'a otomatik Integerolarak dönüştürülmesine otomatik kutulama (değerin otomatik olarak bir kutuya yerleştirilmesi) ve ters işleme (an'ın Integeran'a dönüştürülmesi) kutudan çıkarmaint adı verilir .
| Senin kodun | Derleyicinin gördüğü şey |
|---|---|
|
|
|
|
|
|
Otomatik kutulama ve kutudan çıkarma sayesinde, intbir Integerdeğişkene güvenli bir şekilde a atayabilir ve bunun tersini de yapabilirsiniz. intve türleri arasında ayrım yapmadan herhangi bir karmaşıklıktaki ifadeleri yazabilirsiniz Integer.
Örnekler:
| kod | Derleyici ne üretecek |
|---|---|
|
|
|
|
4. Sarma değişkenlerini karşılaştırma
Otomatik kutulama ve kutudan çıkarma basit ve şeffaf süreçlerdir. İfadeleri gerektiği gibi kullanırız ve yöntemi gerektiği gibi new Integer()çağırırız .intValue()
Programcı olarak sizin için her şey güzel ve kolay çalışıyor. an ve an'ı karşılaştırırsanız , karşılaştırmanın değerlere değil referansa dayalı olduğunu unutmayın .IntegerInteger
| kod | Konsol çıkışı |
|---|---|
|
|
|
|
ve değişkenleri adeğerleri bdepolamaz int. Nesnelere referansları saklarlar. Bu, onları doğru bir şekilde nasıl karşılaştıracağınızı hatırlamanın önemli olduğu anlamına gelir:
| Yanlış | Sağ |
|---|---|
|
|
GO TO FULL VERSION