fonksiyon içinden global değişken nasıl değişir

bakb
09-01-2010, 18:46   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
19 mesaj
Kayıt Tarihi:Kayıt: Ara 2008

String s="aaaa";
public void fonksiyon(String deg)
{
deg="bbbb";
}

fonksiyon(s);

Evet arkadaşlar. Yukarıya sorunumu anlatacağını düşündüğüm bir kodumsu yazdım. Şimdi benim istediğim şey fonksiyon(s); yazdığım zaman s stringinin "bbbb" olması ama olmuyor. C++'da bunu pointer kullanarak yapıyorduk java daysa pointer yok...

Son Düzenleme: bakb ~ 09 Ocak 2010 18:47
AYKANUS
14-01-2010, 14:46   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
329 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

http://www.csharpnedir.com/artic ... a&id=245&title=Java
 
Aradığın yöntem bu adreste

muh34
03-11-2010, 02:20   |  #3  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Java pointer(işaretçi) kavramını icermesede,etkili bir biçimde sınıf kavramını içerir.Her sınıfa kendi nesnesi ile eriserek,sınıf uyeleri veya ornek degiskenleri uzerinde bir takım degisiklikler yapılması mumkundur.Ornegin C++ ile aşagıdaki yazılan kod,
void fonk(string &mesaj)  {

     mesaj="bbbb";
     }

main() {

       string nes="merhaba";
       fonk(nes);
       cout << nes;
}
şeklinde yazılabilir.Tabi amacladıgınız yontem C++ dilinde de sınıf kavramı veya pointer kavramı ile gercekleştirmek mumkundur.Hatta arguman degeri ile fonksiyon donus tipinin aynı olması durumunda bir return degeri bile yeterli olabilir.Ancak soruya donecek olursak,java dili bizlere herzaman sınıfları(class) kullanmamızı teşvik eder.Ornegin yukarıdaki C++ dili ile yazılmış kodun java versiyonu nispeten aşagıdaki gibide yazılabilir.

public class fonksiyon {


static String fonksiyon(String deg) {


deg="bbbb";

return deg;

}


public static void main(String args[]) {


String ses=" ";

ses=fonksiyon(ses);

System.out.println(ses);

}
}
Bu sayede static bazlı fonksiyon metotu String tipinde aldıgı degeri dondurerek arguman degerini degistirmis olacaktır.Ancak bu program ayrı bir sınıfa eklenerek,olusturulan nesne yardımıylada metota ulasilabilir.
Başarılar