Javada Değişkenler,Veri Tipleri,Veri Tip Dönüşümleri

Değişkenler verileri tutan yapılardır. Sınıf değişkenleri(Class Variables),Anlık değişkenler(Instance Variables) ve Yerel Değişkenler(Local Variables) olmak üzere üç şekli vardır.

Tanımı:

Erişim Belirteci+Anahtar Sözcük(Varsa)+Veri Tipi+Değişken Ismi 

şeklindedir.

Erişim Belirteci: public,protected,friendly,private şeklinde 4 tanedir. İhtiyaca göre herhangi bir tanesi       kullanılır. Değişkene erişimin kısıtlarını belirler.

Anahtar Sözcük:final,static gibi anahtar sözcükler değişken tanımlanırken gerektiğinde kullanılabilir.Degişkene ek özellik katarlar.

Veri Tipi: Değişkenin tuttuğu verinin tipini belirtir. Temel Veri Tipi(primitif) ve Referans Veri Tipi(Wrapper) olarak ikiye ayrılır.

       1.Temel Veri Tipi(Primitif):

Primitif veri tipleri değişkenin kopyasını kullanırlar. Belleğin stack(yığın) bölgesinde bulunurlar.

Bit Aralık (varsayılan)İlk Değer
Byte 8 bit-1byte -128 ,127 0
Short 16 bit-2 byte -32768,+32767 0
Integer 32 bit-4 byte -231,+231-1 0
Long 64 bit-8 byte -263,263-1 0L
Float 32 bit-4 byte -3.4 1038,3.4 1038 0,0f
Double 64 bit-8 byte -1.7 10308,1.7 10308 0,0d
Char 16 bit-2 byte \u0000
String Null
Boolean false

şeklindedir.

Kod Örneği ve Bellek Durumu;

package JavaBlokYaziKodlarim;
public class PrimitifveReferansTipleri {
public static void main(String[] args) {
//Primitif değişkenler belleğin stack bölgesinde bulunurlar ve değişkenin kopyasını kullanırlar.
int prmtf1=15;
int prntf2=25;
prmtf1
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);

prmtf1=prntf2;

prmtf2
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);

prmtf1=20;

prmtf3
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);
}
}

        2.Referans Veri Tipi(Wrapper)

Referans veri tipleri primitif veri tiplerinin sınıf örnekleridir. Primitif veri tiplerini kapsarlar(wrapper). Belleğin heap bölgesinde tutulurlar. Stack bölgesinde değişkenin adresi,  heap bölgesinde degeri tutulur.

Sınıf örnekleri oldukları için sınıfın sahip olduğu metodları kullanabilirler.

Vektör ,koleksiyon içinde tutulabilirler.

Hashmap anahtar değeri olarak kullanılabilirler.

Serileştirme işlemi yapılabilirler.

Null değer alabilirler.

Kod Örneği ve Bellek Durumu

package JavaBlokYaziKodlarim;

/**
*
* @author Sezayi
*/
public class ReferansVeriTipi {

public int değer1;
public int deger2;

public ReferansVeriTipi() {
this.değer1 = 0;
this.deger2 = 0;
}

public ReferansVeriTipi(int değer1, int deger2) {
this.değer1 = değer1;
this.deger2 = deger2;
}

public void yaz() {
System.out.println(“deger1:” + this.değer1 + “\ndeger2:” + this.deger2 + “\n”);
}

}

package JavaBlokYaziKodlarim;

/**
*
* @author Sezayi
*/
public class ReferansVeriTipiMain {

public static void main(String[] args) {
ReferansVeriTipi ref1 = new ReferansVeriTipi(10, 20);
ref1.yaz();
ref1
ReferansVeriTipi ref2 = new ReferansVeriTipi(30, 40);
ref2.yaz();

ref2

ref1 = ref2;

ref3
ref1.yaz();
ref2.yaz();

ref1.değer1 = 4;
ref1.deger2 = 3;

ref4
ref1.yaz();
ref2.yaz();
}
}

Veri Tipi Dönüşümleri

Primitif veri tipleri ve Referans veri tipleri kendi içlerinde de birbirleri arasındada dönüşüm yapabilirler.

Primitif veri->Referans veri tipine dönüşüm :boxing

Referans veri->Primitif veri tipine dönüşüm: unboxing olarak adlandırılır.

Dönüşüm yapılırken ;

Küçük veri tipinden büyüğüne dönüşüm otomatik gerçekleşir . Büyük veri tipinden küçüğe dönüşümlerde veri kaybı yaşanacağından dikkat edilmesi gerekir ,cast işlemi gerekir.

Kod Örneği

package JavaBlokYaziKodlarim;/**
*
* @author Sezayi
*/

/*
Java uygulamalarında kullanılan veri türleri arasında uyumsuzluk olduğunda boyutu küçük olan veri tipi otomatik olarak
boyutu büyük olan veri tipine dönüştürülür.

*/
public class TipDonusumleri {
public static void main(String[] args) {
//Sayısal tipler arası
int intSayi;
float floatSayi=3.23f;
double doubleSayi=12.12;

//Büyük veri tipinden küçüğe geçişte casting gerikir.
intSayi=(int) floatSayi;
System.out.println(intSayi);
System.out.println(floatSayi);

//Kücük veri tipinden büyük veri tipine geçişte otomatik casting yapılır
System.out.println(doubleSayi);
doubleSayi=intSayi;
System.out.println(intSayi);
System.out.println(doubleSayi);

//Primitif veri tipleri ve karakter katarları dönüşümleri

String s1=”12″;
String s2=”13″;

//String veri tipinden int e dönüşüm
int intDonusumValueOf=Integer.valueOf(s1);
int intDonusumParse=Integer.parseInt(s2);

System.out.println(intDonusumValueOf);
System.out.println(intDonusumParse);

//Float ve Double içinde aynı fonksiyonlar geçerlidir.

//Primitif Sayısal veri tiplerinin Stringe veri tipin çevrilmesi(3 yontem)

int donusumInt=14;

String stringDonusum1=””+donusumInt; //otomatik olarak stringe çevrilir
String stringDonusum2=String.valueOf(donusumInt);
String stringDonusum3=Integer.toString(donusumInt);

//Double ve float içinde bu yöntemler geçerlidir.
System.out.println(stringDonusum1);
System.out.println(stringDonusum2);
System.out.println(stringDonusum3);

}
}

Değişken Tanımlama Kuralları

  • Değer atanmadan bellekte yer tutmazlar.
  • Default erişim belirteci public tir.
  • Tüm sınıflar java.lang sınıfından türemiştir.
  • Degişken isimleri sayı ile başlamaz,boşluk ve Türkçe karakter içermez
  • Case sensitive ; büyük küçük harfe duyarlıdır
  • Aynı satırda aynı tip değişkenler tanımlanabilir
  • İsimlerin anlamlı olması okunabilirliği artırır.
  • Değişken tipi dogru seçilmelidir, gerekmedikçe büyük boyutlu seçilen veri tipi yer israfına neden olur.
  • (java 7) sayısal ilkel veri tiplerini binary olarak tanımlayabiliriz.
  • (java 7) sayısal ilkel veri tiplerini ‘_’ alt çizgi ile gruplayabiliriz.

Değişken Tipleri:

      1.Class Değişkeni: Sınıf bloğu içerisinde bulunan başka hiçbir blok içinde olmayan, static olarak tanımlanan değişkenlerdir.

Static değişkenin özellikleri;

  • Bir anda tek bir değeri olur
  • Sınıf içeresindeki her kod tarafından ulaşılabilir ve hepsi o anki static değişken değerini görür
  • Program boyunca adresini korur
  • Nesne yaratmaya gerek kalmadan kullanılır bu yüzden sınıf değişkeni denir.

       2.Instance( Anlık,dinamik) Değişken: Class değişkeninin static olmayan şekli. Yani sınıf bloğu içeresinde bulunan başka hiçbir blok içinde bulunmayan ,static olarak tanımlanmayan değişkendir. Her sınıf nesnesi için ayrı değer tutar bu yüzden instance değişken olarak adlandırılır.

Nesne yaratılmadan değer atanamaz ,erişilemez.

İnstance değişkenlere ancak ait olduğu nesne içindeki kodla erişilebilir.

Ait olduğu nesne bellekten silindiğinde anlık değişkende yok olur.

      3.Yerel Değişken: Tanımı bir blok içerisinde yapılan ve bu blok içerisinde geçerli olan değişkendir.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir