Tại sao chương trình lại cho ra họ và tên null

cac bac cho minh hoi sao minh chay chuong trinh ma ho va ten lai ra null nhi ?

public class Student {
    private String ten;
    private double hocphi;
    public void tenSinhVien (String tenSV){
        ten = tenSV;
    }
    public void setHocPhi(double hp){
        hocphi = hp;
    }
    
    public void inThongTin(){
        System.out.println("Ho va Ten: "+ ten);
        System.out.println("hoc phi la: "+ hocphi );
    }
    public static void main(String args[]){
        Student sv1 = new Student();
        sv1.setHocPhi(400);
        sv1.inThongTin();
        sv1.tenSinhVien("Nguyen Van A");
    }

}

hỏi thì hỏi cho đàng hoàng thì người ta mới trả lời cho , hỏi kêu này ai mà trả lời cho bạn

2 Likes

xin lỗi bạn nha . mình là người mới chua biet quy dinh web ntn ban chi minh dang lai bai moi =)) tks ban nha =)

gán thế này không có tác dụng gì cả
phải là $this->ten = tenSV

1 Like

cám ơn bạn nhá =) cơ mà khong hiểu sao cái neatbean mình nó lai khong nhận $this->ten = tenSV bạn ạ =(

bạn đang viết bằng ngôn ngữ gì?
một số ngôn ngữ thì dùng -> (php…) một số ngôn ngữ dùng dấu chấm (java, …)
thử $this.ten = tenSV

mình viết java bạn ạ. cái này nó dung this với dấu chấm bạn ạ =) . nhưng mà mình thay vào ntn
public void tenSinhVien (String tenSV){
this.ten = tenSV;
}
thì cái họ và tên vẫn null bạn ạ. chắc cái neatbean mình nó bị lỗi hay sao ấy =(

Mới tham gia thì bạn vui lòng đọc các nội quy của diễn đàn nhe :smile: https://daynhauhoc.com/faq
Đây là cách post code: Cách post Code dùng Markdown trong Category Programming

2 Likes

cám ơn bác nhá =) may quá chưa ra đảo =)

Topic vi phạm nên đã ra rồi nhé :slight_smile:

2 Likes

hàm inThongTin khi gọi thì biến ở trong hàm đó cũng chưa có khai báo hay có giá trị gì cả, nếu muốn lấy đúng thì có lẽ là this.ten, this.hocphi

trong main thì chưa set tên cũng đã in thông tin

1 Like

bạn cho mình hỏi sao mình khai báo thế mà cái hocphi nó vẫn in ra giá trị mà cái họ và tên thì lại ra null ?

Do bạn gọi hàm in trước khi set tên sv

1 Like

Thực ra không dùng this kết quả vẫn gán giá trị được
Tuy nhiên theo code style thì khi tạo setter, tham số truyền vào phải giống với thuộc tính của class, nên phải dùng this để trỏ chính class đó
VD

public class Student {
    private String name;
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Trỏ một thuộc tính của class trong Java là this.<tên thuộc tính>
VD this.ten

1 Like

đơn giản đây là câu trả lời.

1 Like

mình cám ơn các bạn nhé =)

Đây, bài viết của bạn noname00 :

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?