Assignment Operator

Hasan Kadir Demircan
1 min readNov 13, 2019

--

Javada assignment operatorü hepimizin bildiği ‘=’ ‘dir.

Burada bilmemiz gereken birkaç şeyden söz etmek istiyorum.

Assignment işlemi yaparken eğer veri kaybı riski yoksa explicitly(açık şekilde) cast işlemi yapılıyor. Fakat veri kaybı riski varsa implicitly(kapalı şekilde) cast işlemi yapılır.

Bir başka bilmemiz gereken ise; obje referans type ‘da assign işlemi yaptığımızda iki obje’de heap alanında aynı alanı gösterir.

Örnek olarak;

Kod içerisinde gördüğümüz animalRef objesini ürettik ve animal objesine assign ettik. Böylelikle animalRef ve animal heap alanındaki aynı belleği gösteriyor.

Yine kod içerisinde gördüğümüz byte number1 = 5; işleminde implicitly(kapalı şekilde) cast işlemi yaptığını görüyoruz.

Yine kod içerisinde gördüğümüz

byte number3 = (byte) (number1 + number2);

işleminde veri kaybı olacağı için explicitly(açık şekilde) cast işlemi yapmaktadır.

Diğer konumuz, obje referans type’da assign işlemleri. Burada şunlara dikkat etmemiz gerekmektedir.

  1. İlk olarak person1 objesini ürettik. Daha sonra set işlemlerini yaptık.
  2. person2'ye person1'i assign ettik.
  3. person1'e farklı değerler set ettik.
  4. Ekrana person2'yi ve person1'i yazdırdık.
  5. Programı çalıştırdığımızda göreceğimiz şey, person1 ve person2 aynı değerleri,bilgileri yazacaktır.
  6. Bunun sebebi dediğimiz gibi person1 ve person2 bellekte aynı adreste tutulmalarıdır.
  7. Burada employee2 objesini üretiyoruz.
  8. employee2 objesine set ediyoruz.
  9. employee2 ‘yi employee1’e assign ediyoruz.
  10. Görüyoruz ki changeEmployee() methodunda employee1 ve employee2 objesinin değerleri aynıdır.

Fakat changeEmployee() methodundan geri main methoduna dönüp employee1 objesini yazdırdığımızda içeriği değişmediğini yani eski değerler kaldığını görüyoruz.

Github : assignment operator

--

--

Hasan Kadir Demircan
Hasan Kadir Demircan

No responses yet