Thứ Bảy, 6 tháng 6, 2015

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

Related Posts:

  • Cấu trúc dữ liệu trong javaCác cấu trúc dữ liệu được cung cấp bởi các gói tiện ích Java là rất mạnh mẽ và thực hiện một loạt các chức năng. Những cấu trúc dữ liệu bao gồm các interface và classes và sau:EnumerationBitSetVectorStackDictionaryHashta… Read More
  • Đa luồng trong JavaJava là một ngôn ngữ lập trình đa luồng có nghĩa là chúng ta có thể phát triển các chương trình đa luồng sử dụng Java. Một chương trình đa luồng chứa hai hoặc nhiều bộ phận có thể chạy đồng thời và mỗi một phần có thể xử lý c… Read More
  • Java Collections FrameworkTrước Java 2, Java cung cấp các lớp học đặc biệt như từ điển, Vector, Stack, và Properties để lưu trữ và xử nhóm đối tượng. Mặc dù các lớp này là khá hữu ích, họ thiếu một, chủ đề thống nhất trung ương. Vì vậy, cách mà bạn sử… Read More
  • Bài 3. Sự khác nhau giữa kiểu dữ liệu cơ sở và kiểu dữ liệu tham chiếu trong ngôn ngữ Java là gì?Xin chào tất cả các bạn!Biến (variable) là một khái niệm cực kỳ quen thuộc với một developer, và đi kèm với nó chính là các kiểu dữ liệu. Ở bài trước, tớ đã cho các bạn thấy cách phân loại các kiểu dữ liệu trong Java. Và… Read More
  • Generics trong javaNó sẽ được tốt đẹp nếu chúng ta có thể viết một cách sắp xếp duy nhất mà có thể sắp xếp các phần tử trong một mảng Integer, một mảng String hoặc một mảng của bất kỳ loại hỗ trợ đặt hàng.Phương pháp Java Generic và các lớp học… Read More

0 nhận xét:

Đăng nhận xét

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page