search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
868 gösterim
Genel Kavramlar kategorisinde 6.2k puan

1 cevap

0 oy

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.

6.2k puan

İlgili sorular

0 oy
2 cevap 1.5K gösterim
1.5K gösterim 2 Aralık 2016 Genel Kavramlar kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 433 gösterim
433 gösterim
Selamlar, Bir uygulama yazdığım zaman java da out parametre kullanabilir miyim diye merak ediyorum. Kodlarında fonksiyon değeri döndürmek yerine out parametre benzeri bir yapı kullanan arkadaşlar var mı? Kullanımları nasıl? İyi çalışmalar.
18 Mayıs 2016 Java kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 2.3K gösterim
2.3K gösterim
Break, continue ve pass kelimelerinin arasındaki fark nedir? Break ve continue daha önceden başka yerlerde de gördüm fakat pass kelimesini hatırlamıyorum
11 Ocak 2020 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 506 gösterim
506 gösterim
Git üzerinden bazı dosyaları remote a gönderecekken bir uyarı aldım. Git add . yaptığımda böyle bir uyarı aldım. Ne demek istiyor. Bir sakıncası olur mu? warning: LF will be replaced by CRLF in src/....Test.java. The file will have its original line endings in your working directory.
28 Mayıs 2019 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 765 gösterim
765 gösterim
SQL'de Group By ile Order By arasında fark var mı? Group By ve Order By farkı yokmuş gibi duruyor?
5 Haziran 2021 Veri Tabanı kategorisinde canonka 334 puan sordu