Passing Variable
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;
- Yukarıdaki primitive type örneğinde number adlı integer variable ‘ın kopyasını addNumber adlı method’a gönderiyoruz.
- number’a 10 ekliyoruz.
- Ekrana yazacağı sonuç; 60'dır.
- Fakat main methodunda number’ı tekrar yazdırdığımızda main içerisinde assign ettiğimiz 50 değerini ekrana yazacaktır.
- Bunun sebebi; primitive type’larda methodlara değişkenin adresi değil kopyası gönderilmesinden kaynaklıdır.
Referance type örneği;
- Yukarıdaki referance type örneğnde Employee sınıfının objesini üretiyoruz ve kadir, 22, 0.5 değerlerini assign ediyoruz.
- Ekrana yazdırdığımızda Employee [name=kadir, age=22, salary=0.5] yazdığını görüyoruz.
- PassingVariable sınıfının objesini üretiyoruz.
- PassingVariable sınıfının change() methoduna employee objemizi gönderiyoruz.
- Burada employee objemizin kopyasını değil, adres bilgisini gönderdiğimizi unutmayalım.
- change() methodunda employee’nin bilgilerini değiştiyoruz.
- 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.
- 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])
- Bunun sebebi belirttiğimiz gibi objenin adresini methoda gönderdiğimiz içindir.
- update() methoduna değişmiş employee objesini gönderiyoruz.
- employee objesine yeni bilgiler assign ediyoruz.
- update() methodu içerisinde ekrana yazdırdığımızda Employee [name=msi, age=30, salary=7.0] çıktısını görüyoruz.
- employeeRef objesine null assign ediyoruz. Burada aslında yaptığımız şey; employeeRef referans type değişkeninin bağlantısını kesiyoruz.
- update() methodu içerisinde employeeRef objesini yazdırdığımızda null çıktısını görüyoruz.
- 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