Chuẩn, sai bét nhè, ai tin và làm theo thì hỏng cả 1 thế hệ
Tham biến và tham chiếu trong java
Cám ơn bạn, đây là một lỗi sơ xuất của tôi
Tôi đã hiểu vấn đề.
Các bạn sau hãy chạy thử ví dụ sau để phân biệt cho dễ dàng hơn:
/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package javaapplication1;
/**
*
-
@author podc_partner1
*/
public class JavaApplication1 {/**
-
@param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
HocSinh mHocSinh = new HocSinh();
mHocSinh.setName(“Nguyen Van A”);
System.out.println("step 1: " + mHocSinh.getName());
updateInfo(mHocSinh);
System.out.println("step 3: " + mHocSinh.getName());
}
public static void updateInfo(HocSinh mHocSinh) {
HocSinh hocSinh2 = new HocSinh();
hocSinh2.setName(“Nguyen Van C”);
mHocSinh.setName(“Nguyen Van B”);
System.out.println("step 2.1: " + mHocSinh.getName());
mHocSinh = hocSinh2;
System.out.println("step 2.2: " + mHocSinh.getName());
}
} -
@param args the command line arguments
class HocSinh {
private String name;
public HocSinh() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Bạn nói đúng. Trong C# cần từ khoá ref thì para đầu vào mới cùng reference về một value trên bộ nhớ.
Java có cả call by value và call by reference nhé!