Bu Java kodu:
public class XYZ {
public static void main(){
int toyNumber = 5;
XYZ temp = new XYZ();
temp.play(toyNumber);
System.out.println("Toy number in main " + toyNumber);
}
void play(int toyNumber){
System.out.println("Toy number in play " + toyNumber);
toyNumber++;
System.out.println("Toy number in play after increement " + toyNumber);
}
}
bu çıktı:
Oyundaki oyuncak numarası 5 Artım 6'dan sonra oyundaki oyuncak numarası Ana 5'teki oyuncak numarası
C ++ 'da toyNumber
gölgelenmeyi önlemek için değişkeni referans olarak geçirebilirim, yani aşağıdaki gibi aynı değişkenin bir kopyasını oluşturabilirim:
void main(){
int toyNumber = 5;
play(toyNumber);
cout << "Toy number in main " << toyNumber << endl;
}
void play(int &toyNumber){
cout << "Toy number in play " << toyNumber << endl;
toyNumber++;
cout << "Toy number in play after increement " << toyNumber << endl;
}
ve C ++ çıktısı şu olacaktır:
Oyundaki oyuncak numarası 5 Artım 6'dan sonra oyundaki oyuncak numarası Ana 6'daki oyuncak numarası
Sorum şu - Java'nın referans olarak geçmek yerine değere göre geçirildiği düşünüldüğünde, C ++ koduyla aynı çıktıyı elde etmek için Java'daki eşdeğer kod nedir ?
toyNumber
değişken main
yöntemde kapsam dahilinde olmadığı için gölgeleme değildir play
. C ++ ve Java'da gölgeleme, yalnızca kapsamların iç içe geçtiği durumlarda gerçekleşir. Bkz. En.wikipedia.org/wiki/Variable_shadowing .