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
}
}
აქ ჩანს, რომ მეთოდის შიგნით ობიექტის მდგომარეობის ცვლილება შენარჩუნებულია, მაგრამ მითითების გადატანა არ ახდენს გავლენას ორიგინალ ობიექტზე.