Junior — Middle
Методторду чакырганда өзгөрмөлөрдү шилтемелүү аркылуу өткөрүү кандай жүргүзүлөт?
sobes.tech AI
AIден жооп
Javaда параметрлерди методторго дайындаганда ар дайым мааниси боюнча өткөрүлөт, башкача айтканда, өзгөрмөнүн мааниси көчүрүлөт. Бирок, эгер объект өткөрүлсө, анда объектке шилтеме көчүрүлөт, өзү эмес. Бул көбүнчө " шилтемеге өткөрүү" деп аталат, бирок чындыкта шилтеменин көчүрмөсү өткөрүлөт.
Бул деген, методтун ичинде параметрге шилтеме кылган объекттин абалын өзгөртүүгө болот, бирок шилтемени башка объектке көрсөтүү үчүн өзгөртүүгө болбойт.
Мисал:
class MyObject {
int value;
}
public class Example {
public static void modifyObject(MyObject obj) {
obj.value = 10; // объекттин абалын өзгөртүү
obj = new MyObject(); // жергиликтүү шилтеменин көчүрмөсүн өзгөртүү
obj.value = 20; // бул өзгөртүү методтон тышкары объектке таасир этпейт
}
public static void main(String[] args) {
MyObject myObj = new MyObject();
myObj.value = 5;
modifyObject(myObj);
System.out.println(myObj.value); // 10 чыгат
}
}
Бул жерде, методтун ичинде объекттин абалын өзгөртүү сакталат, бирок шилтемени кайра аныктоо таасир этпейт.