< Hasscript />
popular Tags
Java #297 Genel Kavramlar #295 Veri Tabanı #220 oracle #84 Sunucular #81
→ View All Tags
top Authors
kenan 485 tolgacelik.art 341 kupanintorunu 49 canonka 36 buzel 32
→ View All Authors
→ Tags
popular Tags
#Java #Genel Kavramlar #Veri Tabanı #oracle #Sunucular
→ Authors
top Authors
@kenan @tolgacelik.art @kupanintorunu @canonka @buzel
/**
* @author kenan
* @date 2016-12-02
* @tags Genel Kavramlar, pass-by-reference
*/

question Pass by reference nedir?

comments 1 references
  1. // @author kenan | 12 Aralık 2016

    Bir fonksiyon içine geçirilen değerin fonksiyonun dışında da değişeceği yönteme denir. 

    Yani açıklayalım.

    public class Test {
       public void buyukluk(List<String> a) {
           System.out.print(a.size());
       }

      private static void test(List<String> x) {
         x.add(“Test”);
      }
      public static void main(String… args) {
       ArrayList<String>  a = new ArrayList<>();
       buyukluk(a);
       test(a);
       buyukluk(a);    
      }
    }

    Burada main metodumuzu konuşalım. a diye bir değişkenimiz var ve bu bir arraylist. Büyüklüğüne bakıyoruz sonuc 0 olacaktır. Sonra test metodunun içine a değişkenini geçiriyoruz ve test metodunda da a’nın içine bir değer ekliyoruz. Daha sonradan a’nın büyüklüğüne bakarsak bunun 1 olduğunu göreceğiz. Peki buradan ne anlamamız gerekecek? x ile a hafızadaki aynı arraylist’i görüyorlar. x’e birşey eklemek aslında a’ya eklemekle aynı şey. Java da sınıf bazlı değişkenlerde (string hariç) bir metodun içine her zaman o metodun pointer benzeri bir bilgisi geçirilir. 

    Şayet a değişkeni bir int olsaydı ne olacaktı. int sınıf bazlı bir değişken olmadığı için a’nın değeri değişmeyecekti. Neden? Çünkü; test(a) dediğimiz zaman, farz edelim ki a = 5, x = 5 olacaktı. Biz x üzerinde bir değişiklik yapsak bile x değişecekti, a aynı kalacaktı. Halbuki arraylist olunca arraylist’in sanki bir pointerını yollamış gibi olduk.

// Comments are closed.

// Hasscript © 2026
// Powered by Coffee & Code