Sarmalayıcı (wrapper) sınıflar

Java'da Veri Türleri ve İstisnalar

Jim White

Java Developer

Java'nın 8 ilkel türü

8 Java ilkel türü, tüm verilerin oluşturulduğu temel veri tipleridir.

Java'da Veri Türleri ve İstisnalar

Sarmalayıcı (wrapper) sınıflar

  • Her ilkel türün eşdeğer bir sarmalayıcı sınıfı vardır
primitive Sarmalayıcı Sınıf
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character

Sarmalayıcı sınıflar, ilkel türlerin nesne gibi ele alınmasını sağlar. Sarmalayıcı sınıflar Object'in alt sınıflarıdır.

Java'da Veri Türleri ve İstisnalar

İlkel türleri sarmalama

  • Bir sarmalayıcı sınıfın örneği tek bir ilkel değeri tutar
    • Örnek: Integer tek bir int ilkel değeri tutar

Sarmalayıcı nesneler değer olarak bir ilkel tür içerir

Java'da Veri Türleri ve İstisnalar

Sarmalayıcı ayrıntıları

  • Sarmalayıcı sınıfların ek alan ve metotları vardır
    • Tür hakkında alanlar (örn. en büyük değer)
    • Sarılan ilkel türle çalışmaya yönelik metotlar
  • Sarmalayıcı sınıflar temel dilde bulunur
    • import gerekmez (import'lar sonra)
Java'da Veri Türleri ve İstisnalar

Sarmalayıcı nesneler oluşturma

  • İlkel (primitive) bir değeri sarmalayıcı türde bir değişkene atayın
    • Sözdizimi: Wrapper-type variable = primitive-value;
Integer age = 12;
Double cost = 150250.55;
Float interest = 5.5f;
Character grade = 'A';
Boolean isActive = true;
  • Sarmalayıcı nesnelerin değeri olmayabilir (null)
Integer age = null;
Java'da Veri Türleri ve İstisnalar

Sarmalayıcı nesneleri kullanma

Integer age = 12;
  • Yazdırın
    System.out.println(age);    // 12 yazdırır
    
  • İlkel değerini alın
    int x = age.intValue();     // x'e 12 atanır
    
  • Diğer işlemleri yapın
    double z = age.doubleValue();  // z 12.0 olur
    String y = age.toString();  // y "12" olur
    Integer teenAge = 16;
    int smaller = age.compareTo(teenAge);  // 12 < 16 olduğundan smaller -1 olur
    
Java'da Veri Türleri ve İstisnalar

Sarmalayıcı Statik Metotlar

  • Sarmalayıcı sınıflar statik metotlarla gelir
  • İlgili ilkel tür üzerinde işlemler için kullanılır
    int x = Integer.sum(8,12);  // x 20 olur
    int y = Integer.remainderUnsigned(102, 10);  // y 2 olur
    
  • String ile ilkel tür arasında dönüştürme için kullanılır
    int z = Integer.parseInt("123");   // z 123 olur
    boolean ans = Boolean.parseBoolean("false");  // ans false olur
    
1 Integer sarmalayıcı hakkında daha fazlası için bkz. https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html
Java'da Veri Türleri ve İstisnalar

Sarmalayıcı Statik Alanlar

Sarmalayıcı sınıflarda örnek statik alanlar

System.out.println(Integer.MAX_VALUE); // int'in alabileceği en büyük değer
System.out.println(Integer.MIN_VALUE); // int'in alabileceği en küçük değer
2147483647
-2147483648
System.out.println(Boolean.TRUE); // true ilkel değerine karşılık gelir
System.out.println(Boolean.FALSE); // false ilkel değerine karşılık gelir
true
false
Java'da Veri Türleri ve İstisnalar

Sarmalayıcı Statik Alanlar

Sarmalayıcı sınıflarda örnek statik alanlar

System.out.println(Character.SPACE_SEPARATOR);  // ' ' gibi normal boşluk için Unicode
System.out.println(Character.LINE_SEPARATOR); // '\n' gibi satır sonu için Unicode
12
13
Java'da Veri Türleri ve İstisnalar

İlginç Sarmalayıcı Metotlar

Wrapper Method Döndürür
Boolean.logicalAnd(boolean a, boolean b) boolean
Boolean.logicalOr(boolean a, boolean b) boolean
Boolean.parseBoolean(String s) boolean
Character.getNumericValue(char ch) char'ın Unicode int değeri
Character.isDigit(char ch) boolean
Character.isLowerCase(char ch) boolean
Character.isWhitespace(char ch) boolean
Double.parseDouble(String s) double
Double.longValue() Double değerini aşağı yuvarlayıp Long döndürür
Java'da Veri Türleri ve İstisnalar

Neden Sarmalayıcılar?

  • İlkel türlerin metodu yoktur (sadece işlemler vardır)
    • Sarmalayıcı sınıflar yararlı metotlar sunar
      int score = Integer.parseInt("8");
      
  • Sarmalayıcılar, ilkel türleri nesne gibi kullanmayı sağlar; ör. koleksiyonlara koymak
    • Koleksiyonları Bölüm 2'de öğreneceksiniz.
Java'da Veri Türleri ve İstisnalar

Sarmalayıcılar null olabilir

  • Sarmalayıcılar, türün örnek veya statik değişkenlerinin null olmasına izin verir
    • İlkel örnek veya statik değişkenler başlatılmazsa varsayılan değere sahiptir
int herAge; // varsayılan olarak 0
Integer hisAge = null;
if (hisAge != null) {
  // hisAge ayarlanmamış değilse bir şey yap
}
Java'da Veri Türleri ve İstisnalar

Hadi pratik yapalım!

Java'da Veri Türleri ve İstisnalar

Preparing Video For Download...