• Trong thời gian này, bạn không thể tạo bài mới, đăng comment, hay tạo tài nguyên mới để diễn đàn dọn dẹp nội dung.
    Diễn đàn sẽ sớm mở trở lại, chi tiết hãy theo dõi tại Discord
anhcraft

Java & Plugin Dev Java cơ bản #11: Từ khóa this, Getter & Setter

  • Người tạo chủ đề Người tạo chủ đề anhcraft
  • Ngày gửi Ngày gửi
Từ khóa this
Từ khóa this được sử dụng trong Non-static method và Constructor, nhằm chỉ Object hiện tại.

sx3GSr9.png


Với ảnh trên, mình đã thêm từ khóa this vào trước tenTaiLieu (...chẳng có gì thay đổi cả)

Vậy khi nào mình mới thực sự cần dùng?
0SCw8wf.png

Mình đã đổi tên Parameter thứ nhất thành tenTaiLieu và xóa cái từ khóa this
Java:
tenTaiLieu = tenTaiLieu;
Dòng này không còn ý nghĩa vì: Java không trỏ về biến tenTaiLieu ở trên nữa mà trỏ ngược lại cái parameter

Lý do: Java ưu tiên hàm/biến về mặt quan hệ: bên trong hàm -> bên ngoài hàm -> hàm/biến được kế thừa
Đó là lý do vì sao dù có biến ở trên nhưng Java vẫn trỏ ngược lại cái parameter
Bây giờ mình thêm từ khóa this
sVWrX9l.png

OK đã fix dc rồi :D Bây giờ, gía trị từ Parameter sẽ được đặt vào cái biến ở trên cùng.

Tóm lại, bạn cần dùng this, khi bạn muốn truy cập vào Instance variable bị trùng tên với Local variable/Parameter khác trong Method.

Getter & Setter
Định nghĩa phương thức getter & setter: là các hàm cung cấp khả năng truy cập & cập nhật các biến private
Java:
public class Person {
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String newName) {
    this.name = newName;
  }
}
Ví dụ trong code trên, biến name có access modifier là private, vì thế class khác không thể truy cập vào được. Nhưng có thể truy cập thông qua getter và setter (hai hàm ở dưới)
  • Getter: lấy dữ liệu từ biến (get = lấy)
  • Setter: ghi đè dữ liệu vào biến (set = đặt/ghi đè)
Bạn có thể gặp getter & setter ở bất cứ đâu, chẳng hạn như trong API Bukkit để viết plugin:
FpA7eSZ.png

(nhấn vào ảnh để phóng to)

Hết ~
 
Nội dung tương tự Xem nhiều nhất Xem thêm

Thống kê nội dung

Tạo
anhcraft,
Trả lời lần cuối từ
anhcraft,
Trả lời
2
Lượt xem
333
Quay lại
Trên cùng