Giải thích các từ khóa trong Java thường gây khó hiểu

Chào tất cả mọi người !
Trong bài viết hôm nay, mình sẽ giải thích với các bạn một số keywork ( từ khoá ) mà chúng ta thường gặp trong lập trình hướng đối tượng ( ở đây mình lấy ví dụ trong java ). Vậy chúng ta bắt đầu nhé :

1. this :
Ta có ví dụ sau :

public class Point {
public int x = 0;
public int y = 0;
//constructor
public Point(int a, int b) {
x = a;
y = b;
}

}
Với cùng cách viết tạo ra một class như trên nhưng chúng ta có thể tạo như sau :

public class Point {
public int x = 0;
public int y = 0;
//constructor
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
Vậy “this” ở đây nghĩa là gì ?
Nói một cách nôm na thì “this” là một keywork thể hiện đối tượng hiện tại tạo ra bởi class Point ( object current / singleton object ), cũng giống như việc bạn sau khi đã xây dựng một class, khi muốn dùng class đó bạn phải tạo một thể hiện của nó vậy. Nhưng có điều làm chúng ta thắc mắc ở đây là trong chính class này lại tự tạo ra một object của chính nó !!!, điều này khác xa với cách dùng mà chúng ta hay làm. Nhưng nếu chú ý bạn sẽ thấy các object chỉ được tạo ra lúc thực thi, có nghĩa là khi bạn tạo ra một thể hiện của class Point thì lúc đó keyword “this” mới thực sự trỏ về một đối tượng đã tồn tại class Point. Ví dụ :
Trong main bạn tạo ra một thể hiện của class trên :
Point p = new Point(5,6);
như vậy khi runtime , đọc đến dòng này thì đối tượng p mới được tạo ra và “this” lúc này mới trỏ về đối tượng p đó để thực thi các đoạn mã trong hàm dựng constructor.

Hết

Nhận xét