Tôi có câu hỏi về việc thay đổi các giá trị của các biến trong các phương thức trong Java.Thay đổi giá trị của các biến trong các phương thức, Java
Đây là mã của tôi:
public class Test {
public static void funk(int a, int[] b) {
b[0] = b[0] * 2;
a = b[0] + 5;
}
public static void main(String[] args) {
int bird = 10;
int[] tiger = {7};
Test.funk(bird, tiger);
}
}
Sau khi thực hiện các phương pháp Test.funk(bird, tiger)
, giá trị của con chim là không thay đổi - nó vẫn còn có giá trị 10
, mặc dù trong phương pháp funk()
chúng tôi đã thay đổi giá trị với a = b[0] + 5;
Mặt khác, giá trị của các phần tử trong những thay đổi mảng, vì chúng tôi có báo cáo kết quả b[0] = b[0] * 2;
tôi không hiểu tại sao một điều thay đổi và cái kia không? Ai đó có thể vui lòng giải thích điều này cho tôi.
không, nó không giúp đỡ. Java là ALWAYS pass-by-value. Đọc các liên kết được cung cấp trong các câu trả lời khác; bạn cần hiểu điều này. –
Ví dụ này giải thích 'cơ bản' của tôi là tốt. Tôi đã nói rõ rằng đó là một lời giải thích cơ bản. Nếu người hỏi muốn đọc một lời giải thích sâu hơn thì các liên kết có đó cho anh ta. Tôi không có cách nào để nói anh ta yêu cầu bao nhiêu chi tiết, vì vậy anh ấy nghĩ rằng anh ấy có thể đánh giá cao sự lựa chọn. – stephendl
Vâng, tôi đã đánh giá cao nó. Tôi cũng đọc các liên kết, nhưng giải thích ngắn hơn cũng hữu ích để giúp bạn bắt đầu. Cảm ơn tất cả. – user42155