Java

Java’da Veri Tipleri, Değişkenler ve Diziler

Bir önceki yazımız Java Geliştirme Ortamları kısmında Java yazmak için kullanabileceğimiz iki program olan Eclipse ve Netbeans’i inceledik. Java geliştime ortamlarının sağladığı kolaylıklara değindik.

Bu yazımızda ise tüm programlama dillerinde bulunan veri tipleri, değişkenler ve dizilere Java’nın gözüyle bakacağız.

Java’da tip denetimleri oldukça sıkıdır. Ki Java’nın güvenli olması da bir açıdan bu sebepledir. Her değişken, deyim bir tipe sahip olmak zorundadır. Buna ek olarak metotlara geçirilen parametreler dahil olmak üzere tüm atamalarda tip uyumluluğu kontrol edilir. Eğer bir uyumsuzluk varsa, bu bir hatadır ve düzeltilmesi gerekir. Şimdi veri tiplerine daha yakından göz atalım:

Tamsayılar

Java’da dört adet tamsayı tipi vardır. Bunlar byte, short, int, long tipleridir. Bu tiplere ait genişlik ve aralık tablosu şu şekildedir:

tablo

byte

En küçük tamsayı tipi olan byte 8 bit, -128 ile 127 aralığında bir tamsayıdır. Bir dosya veya ağdan veri akışı söz konusu olduğunda kullanışlıdır.

byte türünde bir değişken oluşturmak için byte b; yazılabilir.

short

16 bit tamsayı tipidir. Java’da en az kullanılan veri tipidir. short l; şeklinde deklarasyonu yapılır.

int

Java’da en çok kullanılan veri tipidir. 32 bitliktir. Bir tamsayıya gereksinim duyulduğunda genellikte int kullanılır. çünkü byte veya short ile oluşturulan herhangi bir deyim kullanılırken otomatik olarak int tipine yükseltme gerçekleştirilir. Bu sebeple en iyisi int kullanmak.

long

64 bitlik tamsayı tipidir. Genelde uzun sayılar için kullanılır. Mesela ışık hızını hesaplayacağımız bir programda çıkacak sonuç int sınırlarını aşacağı için long kullanmak iyi bir seçim olacaktır.

Reel Sayılar

Kesirli sayıların gerekli olduğu durumlarda kullanılırlar. İki adet tip vardır; float ve double.

doubles

float

Tablodan da görüldüğü üzere 32 bittir.Küçük işlemlerde kullanmak faydalı olabilir. Mesela para hesaplamalarında.

double

64 bitlik bu tip, üst düzey matematiksel işlemlerde kullanılır. Math kütüphanesindeki fonksiyonlar kullanılırken hep double tipinde değişkenler kullanırız.

 Karakterler

 Java’da karakterleri char veri tipiyle saklarız. Yalnız diğer dillerde char tipi 8 bit iken Java’da 16 bittir. Çünkü Java Unicode karakter setini kullanır. Bu uluslararası bir karakter setidir ve tüm dilleri içerir. Java evrensel bir dil olarak tasarlandığı için karakter seti de evrensel bir set olan Unicode olarak tanımlanmıştır.

Bunun yanı sıra ASCII kodları da Java’da aynen geçerlidir. Ayrıca Java’da karakaterler üzerinde artimetik işlem yapılabilir. Resmi olarak char tipi bir tamsayı tipi olsa da, kullanım olarak Unicode karakterleri temsil ettiğinden tamsayılardan ayrı olarak ele alınır. Bir örnekle inceleyelim:

Boolean Değerler

Mantıksal ifadeler boolean değerlerle belirtilir. İki tip vardı, true ve false. 

Koşullu deyimlerde, a<b gibi ifadelerin olduğu yerlerde kullanılır. Şu çok önemli: Java’da true ve false değerleri 1 ve 0’a eşit değildir!

Karakter Kaçış Sekansları tablosu

kaçışsekanslarıDeğişkenler

 Java’da değişken tanımlamak diğer dillerdeki tanımlamalara benzer. Örneğin bir tamsayı değişkeni şu şekilde tanımlarız:

int x;

Görüldüğü gibi önce değişkenimizin hangi tipte olacağını belirtiyoruz, sonra da bir isim veriyoruz. Değişken isimleri verirken dikkatli olmalısınız.Değişkenler rakam ile başlayamaz, değişken ismi boşluk barındıramaz, özel karakterler kullanılamaz ve Java’da önceden tanımlı anahtar kelimeler değişken ismi olarak atanamaz. Ayrıca dikkat edilmesi gereken bir başka nokta büyük-küçük harf meselesidir. Java’da Ali ve ali değişkenleri farklı değişkenlerdir.

Birden fazla değişken tanımlamak için örneğin double a,b,c; şeklinde virgülle değişken isimleri ayrılarak yazılır.

Her değişkenin bir kapsamı vardır. Küme paratenzleri arası değişkenler için yaşam alanıdır. Parantez içinde deklare edilir, kullanılır ve ömürleri biter.

Tip Yükseltme

Java’da tip yükseltmeleri genelde otomatik yapılır. Bir alt tip, bir üstüne otomatik olarak yükselir. Örneğin int tipi tüm byte tiplerini alacak kadar geniştir. Bu yüzden herhangi bir dönüşümde int tipini ayrıca belirtmeye gerek kalmaz. Fakat bazen int tipinde bir değişkeni byte tipindeki bir değişkene atamak isteyebiliriz. Bu durumda şöyle yaparız:

byte b = 20;

b = (byte) (b * 10);

Tip yükseltme yapılırken değişkenler arasında kullanılan en yüksek tip neyse onun tipine yükseltilir. Yani birkaç farklı değişken var elimizde. En büyüğü double olsun. Bu değişkenlerle yaptığımız işlemin sonucunu double bir değişkene atamamız gerekir.

Diziler

Dizi, benzer tipte değişkenlerin oluşturduğu gruptur. Diziler programalamada oldukça kolaylıklar sağlamaktadır. Tek boyutlu veya çok boyutlu olabilirler. Tek boyutlu diziler aynı tipte değişkenlerin oluşturduğu listeler olarak düşünülebilir. Örneğin: int o_numaraları []; şeklinde tanımladığımız bir dizide int tipindeki öğrenci numaralarını saklayabiliriz. Dizi içerisindeki numaralara index’leri aracılığı ile ulaşırız. Örneğin o_numaraları [0] ifadesi dizinin ilk elemanını gösterir. (Dizilerin indexleri Java’da 0 ile başlar.)

Fakat bu ifade henüz bir dizi ifade etmemektedir. Diziyi kullanmak için bellekte yer ayırmalıyız. Şu şekilde dizimizi oluşturmayı tamamlarız:

o_numaralari = new int [50];
Dizimizin boyutunu köşeli parantez içine yazmamız gerekir. Çünkü bu tür tanımlamada kullandığımız new anahtar kelimesi bellekte yer ayırmaktadır ve bunun için de ne kadar yer ayrılması gerektiği belirtilmiş olmalıdır. Biz 50 öğrencilik yer ayırmış olduk.

 Çok boyutlu diziler ise tek boyutlu dizileri barındıran diziler şeklinde düşünülebilir. Şu ifade iki boyutlu bir dizi oluşturmak için kullanılır:

int ikiBoyut [ ][ ] = new int [5][5];

5 satır 5 sütundan oluşan bir dizi oluşturduk. Mesela 3. satırın 2. elemanına erişmek istersek ikiBoyut [2][1]; yazmamız gerekir. Çünkü burada da ilk indisimiz 0 ile başlamaktadır. İki boyutlu dizilerin en iyi örneği ise matrislerdir.

Bahsetmediğimiz Bir Veri Tipi

Bu yazıda elimizden geldiğince veri tipleri, değişkenler ve dizileri genel hatlarıyla anlatmış olduk. Fakat String tipini açıklamadık. Bunun sebebi String tipinin diğer veri tiplerinden farklı olarak bir nesne şeklinde ele alınmasıdır. İlerleyen bölümlerde özellikle String tipini ve kütüphanelerini inceleyeceğiz. Bir sonraki yazıda ise Operatörler konusunu ele alacağız.

Bilgisayar Mühendisi.