Từ khóa this trong lập trình hướng đối tượng | How Kteam

Dẫn nhập

Trong bài trước, Kteam đã giải thích các bạn từ khóa STATIC. Tiếp tục ở bài này, chúng ta sẽ tìm hiểu lại từ khóa this.

Nội dung

Để đọc hiểu bài này, tốt nhất những bạn nên có kiến thức và kỹ năng cơ bản về những phần sau :

Bài này chúng ta sẽ tìm hiểu những vấn đề sau:

  • Từ khóa this làm gì?
  • Cách sử dụng this

Từ khóa this làm gì?

Từ khóa this dùng để ánh xạ đối tượng hiện tại. Giống như trong lớp Student có rất nhiều đối tượng như bạn Châu, Long, Thanh,… thì khi xử lý các thuộc tính và phương thức ta sẽ dùng từ ‘bạn ấy’ để ám chỉ đối tượng hiện tại cần thực hiện.

Cách sử dụng this

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

Như những ví dụ trước. Nếu như không sử dụng this trong phương thức khởi tạo:

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 người dùng và in thông tin ra :

public class HelloWorld {

	public static void main(String[] args) {
		Person a = new Person("Chau", 21, 1.7f);
		System.out.println(a.name);
		System.out.println(a.age);
		System.out.println(a.height);
	}
}

Từ khóa this trong lập trình hướng đối tượng

Ta thấy xuất hiệt 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 xuất sắc. Bây giờ ta hãy quan sát lại cách hiển thị trên Eclipse :

Từ khóa this trong lập trình hướng đối tượng

Như cách Eclipse bộc lộ thì những biến màu xanh biển là chính là thuộc tính, còn biến mà nâu là tham số trong phương pháp. Như vậy, nếu không có this, ta đang gán giá trị tham số cho chính nó. Không ảnh hưởng tác động đến thuộc tính của đối tượng người tiêu dùng .

Từ khóa this trong lập trình hướng đối tượng

Chỉ cần thêm this, màu sắc đã thay đổi.

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

Ngoài gọi được thuộc tính, thì this hoàn toàn có thể gọi đến phương pháp 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);
	}
}

Tại chương trình main

public class HelloWorld {

	public static void main(String[] args) {
		Person a = new Person("Chau", 21, 1.7f);
		Person b = new Person("Long", 24, 1.7f);
	}
}

Từ khóa this trong lập trình hướng đối tượng

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;
	}
	
	public void getInfo() {
		System.out.println("Name:"+this.name);
		System.out.println("Age:"+this.age);
		System.out.println("Height:"+this.height);
	}
}

Như vậy ở phương pháp main, ta hoàn toàn có thể khởi tạo đối tượng người tiêu dùng Person theo nhiều cách khác nhau :

public class HelloWorld {

	public static void main(String[] args) {
		Person a = new Person("Chau");
		Person b = new Person("Chau", 21);
		Person c = new Person("Chau", 21, 1.7f);
	}
}

Việc chạy những phương pháp khởi tạo hoàn toàn có thể hiểu theo cách sau :

Từ khóa this trong lập trình hướng đối tượng

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 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 class HelloWorld {

	public static void main(String[] args) {
		Person a = new Person("Chau", 21, 1.7f);
		System.out.println(a);
		System.out.println(a.getInstance());
		Person b = a;
		Person c = a.getInstance();
		System.out.println(b);
		System.out.println(c);
	}
}

Từ khóa this trong lập trình hướng đối tượng

Ở kết quả đều trả về chung một giá trị, giá trị in ra theo kiểu quy tắc kiểu dữ liệu tham chiếm mà Kteam đã nói trước đó: [tên lớp]@[vị trí lưu trữ]

Kết

Như vậy tất cả chúng ta đã khám phá từ khóa static trong lập trình hướng đối tượng người dùng

Ở bài sau, Kteam sẽ giới thiệu đến bạn về KẾ THỪA TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Thảo luận

Nếu bạn có bất kể khó khăn vất vả hay vướng mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI và ĐÁP trên thư viện Howkteam. com để nhận được sự tương hỗ từ hội đồng .