Đang thực hiện
Tên đăng nhập
Mật khẩu
 
Hoặc đăng nhập bằng:
Nhập lại mật khẩu

Trang chủ Cẩm nang học viên
Cẩm nang học viên

Một số đặc điểm quan trọng trong lập trình hướng đối tượng với Java

Cập nhật: 25/09/2018 Lượt xem: 92
Bài viết hôm nay chúng ta cùng tìm hiểu về một số đặc điểm quan trọng trong lập trình hướng đối tượng với Java. Phân biệt Class và Object, Phân biệt Overloading và Overriding và Các mối quan hệ giữa các đối tượng trong Java

Bài viết hôm nay chúng ta cùng tìm hiểu về một số đặc điểm quan trọng trong lập trình hướng đối tượng với Java.


1) Phân biệt lớp (Class) và đối tượng (Object)


Lớp là một khuôn mẫu mang  tính lý thuyết, dùng để mô tả về những đối tượng cùng loại. Lớp là một kiểu dữ liệu có sẵn của ngôn ngữ, hoặc do người dùng tự định nghĩa. Từ lớp, ta khởi tạo ra các đối tượng.
Đối tượng là một thể hiện cụ thể của lớp. Đối tượng chính là những biến được tạo ra từ các lớp (kiểu dữ liệu).

 

Một số chú ý khi định nghĩa lớp:


- Tên lớp nên là một danh từ, vì lớp dùng để mô tả về những thực thể (entity) trong thế giới thực.
- Một lớp sẽ bao gồm 2 thành phần: Các thuộc tính, và các hành vi. Thuộc tính thể hiện các đặc điểm của lớp, và được khai báo qua các biến. Hành vi thể hiện các hành động mà các đối tượng của lớp có thể thực hiện, và được cài đặt thông qua các phương thức.
- Mỗi đối tượng được tạo ra từ lớp sẽ có một bản copy của các thuộc tính và hành vi được định nghĩa bên trong lớp.

 

Ví dụ về định nghĩa lớp:


Ở đây, để mô tả về các thực thể Dog trong thế giới thực, ta đã định nghĩa một lớp có tên là Dog, bao gồm các thuộc tính và các hành vi.

 
mot so dac diem quan trong trong lap trinh huong doi tuong java 1

Ví dụ phần quan hệ giữa lớp và đối tượng:

Từ lớp Dog nói trên, ta đã khởi tạo ra các đối tượng Dog cụ thể. Mỗi loại Dog sẽ có các thuộc tính và hành vi riêng.


 
mot so dac diem quan trong trong lap trinh huong doi tuong java 2
 


2) Phân biệt hai quá trình Method Overloading và Method Overriding



a) Method Overloading


Là quá trình ta định nghĩa các method có cùng tên, cùng return type, cùng Exception, nhưng có danh sách khác nhau trong cùng một lớp. Ta sử dụng đặc điểm này khi muốn cung cấp nhiều cách thực thi khác nhau cho cùng một hành vi trong lớp.

Chú ý: Danh sách các tham số của method khác nhau ở hai tiêu chí: Số lượng các tham số, và kiểu dữ liệu của các tham số.

Ví dụ: Ta định nghĩa một lớp Calculator, và cung cấp nhiều method add(), để thể hiện nhiều cách thực hiện khác nhau cho cùng một hành vi tính tổng.


 
mot so dac diem quan trong trong lap trinh huong doi tuong java 3

Sau đó ta có thể thực thi chương trình, và phiên bản của method được gọi sẽ căn cứ vào tham số được truyền vào method.
 

 
mot so dac diem quan trong trong lap trinh huong doi tuong java 4


 

b) Method Overriding



Là quá trình lớp con định nghĩa lại một hành vi được kế thừa từ lớp cha, để cho phù hợp với lớp con. Trong quá trình này, lớp con sẽ ghi đè (override) một method được kế thừa từ lớp cha.

Chú ý: nếu có khai báo access modifier, thì method trong lớp con phải có  mức truy cập bằng hoặc cao hơn so với method của lớp cha được ghi đè.

Ví dụ:

Ở đây ta định nghĩa lớp Animal là lớp cha, và có một hành vi là eat().



 

mot so dac diem quan trong trong lap trinh huong doi tuong java 4



Sau đó ta định nghĩa lớp Lyon, là lớp con của lớp Animal. Trong lớp Lyon, ta đã ghi đè (định nghĩa lại) nội dung cho hành vi eat() được kế thừa từ lớp cha. Quá trình này được gọi là method overriding.
 

 

mot so dac diem quan trong trong lap trinh huong doi tuong java 5



3) Các mối quan hệ giữa các đối tượng trong Java


Các đối tượng trong OOP sẽ có hai mối quan hệ với nhau, bao gồm:

- IS-A relationship: Đây là một mối quan hệ Là –Một, nghĩa là một đối tượng thuộc lớp con sẽ Là Một kiểu đối tượng thuộc lớp cha. Thông thường, lớp cha sẽ thể hiện một tập hợp thực thể tổng quát hơn, rộng lớn hơn, còn lớp con sẽ thể hiện một tập hợp các thực thể chuyên biệt hơn, hẹp hơn.

Ví dụ:

Ở đây ta có lớp Object nằm trên cùng trong cây phân cấp, và lớp Laptop là lớp con của lớp Object, vì vậy ta có thể nói một Laptop là một kiểu của Object. Tương tự như vậy, với lớp Dell là lớp con của lớp Laptop, ta cũng có thể nói, một đối tượng Dell là một kiểu Laptop.


 

mot so dac diem quan trong trong lap trinh huong doi tuong java 7


- HAS-A relationship: Đây là mối quan hệ Có-Một, mối quan hệ này xảy ra khi trong định nghĩa của một lớp có chứa các tham chiếu của các lớp khác. Đây là quan hệ chứa lẫn nhau giữa các lớp.

Ví dụ: Ở đây ta có định nghĩa của lớp HardDisk, và định nghĩa của lớp UseDell. Trong lớp UseDell ta có khởi tạo một đối tượng của lớp HardDisk, vì vậy ta có thể nói lớp UseDell có mối quan hệ HAS-A với lớp HardDisk.

 

mot so dac diem quan trong trong lap trinh huong doi tuong java 8
 

 

Tony Hùng Cường

Tư vấn viên 1: Lê Thoa
Tư vấn viên 2: Thu Huyền
Tuyển sinh lập trình viên quốc tế - MMS new vision
Khóa học C&B Excel - Trần Văn Hải