Passing Variable

Hasan Kadir Demircan
2 min readDec 11, 2019

--

Passing variable hakkında bilmemiz gereken şeyler şunlardır;

  • Primitive type için; methoda değişkenin kopyası gider. Kendisi veya adresi gitmez.
  • Referance type için; methoda objenin adresi gider. Kopyası veya kendisi gitmez.

Primitive type örneği;

  1. Yukarıdaki primitive type örneğinde number adlı integer variable ‘ın kopyasını addNumber adlı method’a gönderiyoruz.
  2. number’a 10 ekliyoruz.
  3. Ekrana yazacağı sonuç; 60'dır.
  4. Fakat main methodunda number’ı tekrar yazdırdığımızda main içerisinde assign ettiğimiz 50 değerini ekrana yazacaktır.
  5. Bunun sebebi; primitive type’larda methodlara değişkenin adresi değil kopyası gönderilmesinden kaynaklıdır.

Referance type örneği;

  1. Yukarıdaki referance type örneğnde Employee sınıfının objesini üretiyoruz ve kadir, 22, 0.5 değerlerini assign ediyoruz.
  2. Ekrana yazdırdığımızda Employee [name=kadir, age=22, salary=0.5] yazdığını görüyoruz.
  3. PassingVariable sınıfının objesini üretiyoruz.
  4. PassingVariable sınıfının change() methoduna employee objemizi gönderiyoruz.
  5. Burada employee objemizin kopyasını değil, adres bilgisini gönderdiğimizi unutmayalım.
  6. change() methodunda employee’nin bilgilerini değiştiyoruz.
  7. change() methodu içerisinde bilgileri değiştirdikten sonra ekrana yazdırdığımızda Employee [name=hasan, age=24, salary=1.5] yeni bilgilerin assign olduğunu görüyoruz.
  8. Main methodu içerisinde employee objesini tekrar yazdırdığımızda change() methodunda değiştirdiğimiz bilgileri yazdığını görüyoruz.(Employee [name=hasan, age=24, salary=1.5])
  9. Bunun sebebi belirttiğimiz gibi objenin adresini methoda gönderdiğimiz içindir.
  10. update() methoduna değişmiş employee objesini gönderiyoruz.
  11. employee objesine yeni bilgiler assign ediyoruz.
  12. update() methodu içerisinde ekrana yazdırdığımızda Employee [name=msi, age=30, salary=7.0] çıktısını görüyoruz.
  13. employeeRef objesine null assign ediyoruz. Burada aslında yaptığımız şey; employeeRef referans type değişkeninin bağlantısını kesiyoruz.
  14. update() methodu içerisinde employeeRef objesini yazdırdığımızda null çıktısını görüyoruz.
  15. Fakat main methoduna döndüğümüzde employee objesini yazdırdığımızda Employee [name=msi, age=30, salary=7.0] yazdığını görüyoruz.

Github : PassingVariable

--

--

Hasan Kadir Demircan
Hasan Kadir Demircan

No responses yet