Trang chủ » Blog » Từ khóa this trong Java

Từ khóa this trong Java

bởi CodeGym | 06/12/2023 17:30 | Blog

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về từ khóa this trong Java nhé.

Ánh xạ đối tượng khi cần sử dụng

Nếu không sử dụng this trong phương thức khởi tạo, ta có ví dụ sau:

public class Person {

   public String name;

   public  int age;

   public float height;




   public Person(String name, int age, float height) {

       name = name;

       age = age;

       height = height;

   }
 

}

Ta hãy thử khởi tạo đối tượng và in thông tin ra

public static void main(String[] args) {

   Person person1 = new Person("Huy",21,1.7f);

   System.out.println(person1.name);

   System.out.println(person1.age);

   System.out.println(person1.height);

}

Kết quả:

null

0

0.0

Ta thấy xuất hiện giá trị mặc định của thuộc tính khi khởi tạo, có nghĩa việc gán giá trị khi khởi tạo không thành công.

Gọi phương thức từ lớp hiện tại

Ngoài gọi được thuộc tính, thì this có thể gọi đến phương thức từ lớp hiện tại.

Ví dụ: Viết phương thức trả thông tin Person và gọi mỗi lần khởi tạo đối tượng

public class Person {

   public String name;

   public  int age;

   public float height;




   public Person(String name, int age, float height) {

       this.name = name;

       this.age = age;

       this.height = height;

       this.getInfo();

   }




   public void getInfo() {

       System.out.println("Name: "+this.name);

       System.out.println("Age: "+this.age);

       System.out.println("Height: "+this.height);

   }




   public static void main(String[] args) {

       Person a = new Person("Huy",20,17.f);

       Person b = new Person("Binh",20,17.f);




   }




}

Kết quả:

Name: Huy

Age: 20

Height: 17.0

Name: Binh

Age: 20

Height: 17.0

Gọi lại phương thức khởi tạo

Khi dùng this() thì sẽ triệu hồi phương thức khởi tạo Constructor của lớp hiện tại. Thường được sử dụng trong việc có nhiều phương thức khởi tạo và muốn tái sử dụng code nhiều lần:

Ví dụ: Ta tạo 3 phương thức khởi tạo cho Person như sau:

public class Person {

   public String name;

   public  int age;

   public float height;




   public Person(String name) {

       this.name = name;

   }




   public Person(String name, int age) {

       this(name);

       this.age = age;

   }




   public Person(String name, int age, float height) {

       this(name, age);

       this.height = height;

   }

}

Như vậy ở phương thức main ta có thể khởi tạo đối tượng Person theo nhiều cách khác nhau:

public static void main(String[] args) {

   Person a = new Person("Huy");

   Person b = new Person("Huy",22);

   Person c = new Person("Huy", 22, 1.9f);

}

Trả về đối tượng (instance) của lớp hiện tại

Ta sẽ trả về instance của lớp hiện tại bằng từ khóa this như sau:

public class Person {

   public String name;

   public  int age;

   public float height;




   public Person(String name, int age, float height) {

       this.name = name;

       this.age = age;

       this.height = height;

   }

   public Person getInstance(){

       return this;

   }

}




public static void main(String[] args) {

   Person a = new Person("Huy",22,19f);

   System.out.println(a);

   System.out.println(a.getInstance());

}


Kết quả:

test.Person@1b6d3586

test.Person@1b6d3586

Ở kết quả đều trả về chung một giá trị, giá trị in ra theo kiểu quy tắc dữ liệu tham chiếu.

Kết luận

Từ khóa this được sử dụng trong các trường hợp sau:

  • Ánh xạ đối tượng khi cần sử dụng
  • Gọi phương thức từ lớp hiện tại
  • Gọi lại phương thức khởi tạo
  • Trả về đối tượng (instance) của lớp hiện tại

Author: Vũ Tuấn 

TẢI TÀI LIỆU JAVA TRÊN 2 TRANG GIẤY TẠI ĐÂY.

Xem thêm các tài liệu, bài chia sẻ khác tại đây.

Download - Giáo trình thuật toán

3 + 8 =

Tags: JAVA

0 Lời bình

Gửi Lời bình

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

BÀI VIẾT LIÊN QUAN

BẠN MUỐN HỌC LẬP TRÌNH?

GỌI NGAY

098 953 44 58

Đăng ký tư vấn lộ trình học lập trình

Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

11 + 12 =

TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM