Java ile Nesne Yönelimli Programlama | Değişkenler (Variables)

Yazan: FURKAN BAYSAN

Değişken (Variable) nedir?

Değişken, içinde veri depolayan (data storage özelliği taşıyan) en küçük veri üniteleridir (data units).

Değişkenlerin (Variables) sınıflandırılması

Değişkenleri, depoladıkları verinin türüne göre 2 şekilde, tanımlandığı alana göre yine 2 farklı şekilde sınıflandırabiliriz.

Depoladıkları verinin türüne göre;

  • Primitive Data Types
  • Reference Data Types

Primitive Data Types (İlkel Veri Tipindeki Değişkenler) ile kast edilen nedir?

İlkel Veri Tipindeki Değişkenler 8 adet olup, genelde sayısal verileri depolamak için kullanılmakla birlikte, tek karakterli ve true-false tipinde verileri de tutabilen değişkenlerdir.  Bunlar;

  • int
  • short
  • long
  • double
  • float
  • char
  • boolean

Reference Data Type (Referans Tipteki Değişkenler) ile kast edilen nedir?

Genel anlamda referans tipi değişkenlerden,  RAM’de kendisi için yer ayrılan (memory allocation) nesneleri refer eden, hold eden, nesne tutabilen türdeki değişkenler (object referers) kast edilir. Bununla birlikte, Stringler (Karakter Dizileri) ve Arrayler (Diziler) de JAVA’nın doğası gereği reference data type olarak karşımıza çıkar.

Primitive Data Types ve Reference Data Types arasındaki fark nedir?

Primitive ve Reference tipte değişkenler arasındaki temel fark, reference data typelar’da işlemler (processes) değişkenin kendisiyle yani verinin RAM’deki orjinal değeriyle yapılırken, primitive data typelar’da değişkenin bir kopyası ile yapılır. Dolayısıyla, reference data typelar kullanılarak gerçekleştirilen işlemlerde orjinal verinin değerinin değişme ihtimali söz konusuyken, primitive data typelar’da bu mümkün değildir.

Strings (Karakter Dizileri)

  • Charların konkatüne (concatenation) edilmiş halidir.
  • Default olarak reference data tiptedir.
  • Wrapper classdır.
  • Arrayler gibi Stringler de immutable (sabit) yapılardır.

Wrapper (Sarmalayıcı) Class nedir?

Ona ait olan nesneler için RAM’de ayrılan yerde primitive data type depolayabileceğimiz, primitive data typeları nesne oluşturur gibi reference data type formatında tanımlamamıza olanak veren sınıflardır.

Neden wrapper class kavramına ihtiyaç duyarız?

  • Metodlara (methods) değişkenleri parametre olarak verdiğimizde, değişkenlerin orjinal değeriyle işlem yapmak isteyebiliriz.
  • Collection framework’ünde var olan veri yapılarının (data structures) sadece  nesneleri depolaması , primitive data typelar kullanılamaz.

Değişkenler tanımlandıkları alana (fielda) göre;

  • Non-static alanda (fieldda) depolanan değişkenlere instance variables
  • Static alanda (fieldda) depolanan değişkenlere static variables denir.

Genel kural : Static variablelar static alandan , instance variablelar non-static alandan erişilip, değiştirilebilirler.

Instance Variables (Nesne Değişkenleri) ile kast edilen nedir?

  • Nesnenin, kendine ait olan özellikleridir. (attributes)
  • Non-static alanda (fieldda) depolanırlar, dolayısıyla erişmek için nesne gereklidir.
  • Her nesnesin, bu özelliklerler (attributes) için kendi kopyası vardır.

Static-Class Variables (Sınıf Değişkenleri) ile kast edilen nedir?

  • Static alanda (fieldda) depolanırlar, dolayısıyla oradan erişilip, değiştirilebilirler.
  • Static değişkenler (variables), nesneden bağımsızdırlar,  dolayısıyla her nesne için aynı şekilde davranan özellikleri (değişkenleri) static olarak tanımlamalıyız.
  • Nesnenin adedine bakılmaksızın static değişkenlerin RAM’de sadece 1 kopyası oluşturulur ve program sonlandığında (termination) RAM’den silinir.
  • Sınıfın (class) adıyla çağırılabilirler.

Instance Variables (Nesne Değişkenleri) ve Static Variables (Sınıf Değişkenleri) arasındaki farklar nelerdir?

  • Instance variableların (attributes), instantiate edilen her nesne için farklı bir kopyası oluşturulur , dolayısıyla instance variablelara bir nesneyle yapılan değişiklik diğer nesneyi etkilemez. Buna karşılık, bahsi geçen sınıfa ait kaç nesne oluşturulduğuna bakılmaksızın static variableların RAM’de sadece bir kopyası oluşturulur ve her nesne için aynı davranışı gösterir. Bu nedenle, static variablelara (değişkenlere) bir nesneyle yapılan değişiklik diğer tüm nesneleri etkiler.
  • Instance variablelara (Nesne değişkenlerine) instantiate edilen nesnelerin object refererıyla erişilirken , static variablelar sınıfa (classa) ait oldukları için sınıfın adıyla erişilebilirler.

 

 

 

 

 

 

 

 

 

 

Bahcesehir University Computer Engineering Full Time Extrovert and Developer
Yazı oluşturuldu 9

Java ile Nesne Yönelimli Programlama | Değişkenler (Variables)” üzerine 10 görüş

  1. A lot of thanks for your whole work on this blog. Gloria enjoys going through research and it is easy to see why. Almost all know all of the powerful mode you convey precious information by means of your web blog and even attract participation from other people about this idea then our simple princess is actually understanding a whole lot. Enjoy the remaining portion of the year. You have been doing a powerful job.

  2. I have to express some thanks to you just for rescuing me from this particular setting. Just after looking through the search engines and seeing concepts which were not powerful, I was thinking my entire life was well over. Existing minus the solutions to the problems you’ve sorted out through your good post is a critical case, as well as the ones which could have in a negative way affected my entire career if I had not encountered the website. The capability and kindness in taking care of all the things was vital. I am not sure what I would have done if I hadn’t come across such a thing like this. It’s possible to now look forward to my future. Thanks for your time so much for this skilled and result oriented guide. I won’t hesitate to suggest the blog to anyone who should get support about this topic.

  3. I’m impressed, I have to admit. Rarely do I come across a
    blog that’s equally educative and interesting, and let me
    tell you, you’ve hit the nail on the head. The issue is something
    that too few people are speaking intelligently about.
    I’m very happy I found this in my search for something regarding
    this.

  4. Wow! This blog looks exactly like my old one! It’s on a
    totally different topic but it has pretty much the same page
    layout and design. Excellent choice of colors!

  5. I like what you guys are up also. Such intelligent work and reporting! Carry on the superb works guys I have incorporated you guys to my blogroll. I think it will improve the value of my website 🙂

    1. Thank you so much for your opinion, i always try to explain everything in detail 🙂

    1. Thank you so much for your opinion, i always try to explain everything in detail and also clear, keep in touch with website 🙂

Bir cevap yazın

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

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.