Core Java - Chương 1: Lập trình hướng đối tượng

Kết thúc chương, học viên có thể:

¾ Định nghĩa Lập trình hướng Đối tượng (Object-oriented Programming).

¾ Nhận thức vềTrừu tượng hóa Dữliệu (Data Abstraction).

¾ Định nghĩa một Lớp (Class).

¾ Định nghĩa một Đối tượng (Object).

¾ Nhận thức được sựkhác biệt giữa Lớp và Đối tượng.

¾ Nhận thức được sựcần thiết đối với Thiết lập (Construction) và Hủy

(Destruction).

¾ Định nghĩa tính Bền vững (Persistence).

¾ Hiểu biết vềtính Thừa kế(Inheritance).

¾ Định nghĩa tính Đa hình (Polymorphism).

¾ Liệt kê những thuận lợi của phương pháp hướng Đối tượng.

pdf24 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2552 | Lượt tải: 1download
Tóm tắt nội dung Core Java - Chương 1: Lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hỉ 
Nhập tên 
Nhập địa chỉ 
Ba lớp ‘Sinh viên’, ‘Nhân viên’ và ‘Khách hàng’ tạo nên lớp ‘Người’. Nói cách khác, ba 
lớp ấy có tất cả các thuộc tính và các phương thức của lớp ‘Người’, ngoài ra chúng còn 
có những thuộc tính và những phương thức riêng. 
Chúng ta cần phải định nghĩa lớp ‘Người’ và sử dụng nó trong khi định nghĩa các lớp 
‘Sinh viên’, ‘Nhân viên’ và ‘Khách hàng’. 
Chúng ta xây dựng một lớp ‘Người’ với những thuộc tính và những hoạt động như đã 
trình bày ở hình trên. Kế tiếp, chúng ta xây dựng lớp ‘Khách hàng’ bao gồm lớp ‘Người’ 
cộng với những thuộc tính và những phương thức riêng. 
Chúng ta có thể định nghĩa các lớp ‘Sinh viên’ và ‘Nhân viên’ theo cùng cách thức trên. 
Như thế, cả ba lớp ‘Khách hàng’, ‘Sinh viên’ và ‘Nhân viên’ đều chia sẻ những thuộc 
tính và những phương thức mà lớp ‘Người’ cung cấp. 
Lớp Sinh viên Lớp Nhân viên Lớp Khách hàng 
Điểm môn 1 
Điểm môn 2 
Nhập điểm 
tính tổng điểm 
Lương 
Chức vụ 
Nhập chức vụ 
Tính lương 
Kiểu xe bán được 
Nhập kiểu xe 
Xuất hóa đơn 
Theo ngôn ngữ hướng đối tượng, lớp ‘Khách hàng’ được gọi là thừa kế lớp ‘Người’. 
Có hai khái niệm quan trọng khác liên kết với tính thừa kế. Lớp ‘Khách hàng’ là lớp 
‘Người’ cộng thêm cái khác. Như thế, lớp ‘Khách hàng’ có tất cả các thuộc tính và các 
phương thức được định nghĩa trong lớp ‘Người’ cộng với các thuộc tính và các hoạt động 
của riêng nó. 
Trong ví dụ này, lớp ‘Khách hàng’ được gọi là ‘lớp con’ (subclass). 
Định nghĩa 
Tính thừa kế cho phép một lớp chia sẻ các thuộc tính và các phương thức được định 
nghĩa trong một hoặc nhiều lớp khác. 
Định nghĩa 
Lớp thừa hưởng từ một lớp khác được gọi là Subclass. 
Trong ví dụ trên, lớp ‘Người’ được coi là ‘lớp trên’ (superclass). 
Hãy xem xét ví dụ về lớp ‘Các động vật’ ở hình 1.4. ‘Các động vật’ là lớp trên cùng mà 
các lớp khác kế thừa. Chúng ta có một dãy các lớp trung gian – ‘Côn trùng’, ‘Hữu nhũ’, 
‘Bò sát’, ‘Lưỡng cư’ - mà dãy các lớp dưới kế thừa. 
Các lớp ‘Côn trùng’, ‘Hữu nhũ’, ‘Bò sát’, ‘Lưỡng cư’ là những lớp con của lớp trên ‘Các 
động vật’. Như thế, những lớp này có tất cả những thuộc tính và các hoạt động của lớp 
‘Các động vật’, cộng thêm những thuộc tính và những phương thức của riêng chúng. 
Lớp ‘Hữu nhũ’ là lớp mà các lớp ‘Con người’ và ‘Khác con người’ thừa kế. Như thế, các 
lớp ‘Con người’ và ‘Khác con người’ là các lớp con của lớp trên ‘Hữu nhũ’. 
1.9.1 Tính Đa Thừa kế 
Trong tất cả các ví dụ trên, một lớp thừa kế chỉ từ một lớp. Ngay cả trong ví dụ thừa kế 
về các loại phương tiện di chuyển, mỗi lớp con chỉ có một lớp cha. Trường hợp như thế 
gọi là ‘thừa kế đơn’ (single inheritance). 
Trong ‘đa thừa kế’, một lớp con thừa kế từ hai hay nhiều lớp cha. 
Hãy khảo sát ví dụ sau: 
Định nghĩa 
Một Superclass là một lớp mà các đặc tính của nó được một lớp khác thừa hưởng. 
Côn trùng 
Các động vật
Hữu nhũ Bò sát Lưỡng cư 
Con người Khác con người
Hình 1.4 Tính thừa kế
Trong hình trên, chúng ta đã xây dụng một lớp ‘Vẽ một hình’, lớp này thừa hưởng ba lớp: 
‘Đường thẳng’, ‘Đường tròn’, ‘Hình ảnh’. Như thế lớp ‘Vẽ một hình’ kết hợp chức năng 
của ba lớp trên thêm vào chức năng được định nghĩa bên trong nó. 
Lớp ‘Vẽ một hình’ là một ví dụ về tính đa thừa kế. 
Có thể sử dụng tính đa thừa kế để xây dựng một lớp mới, lớp này dẫn xuất chức năng của 
nó từ một vài lớp khác. Như thế, xét theo góc cạnh của người sử dụng lớp mới này, chỉ 
cần một lớp mà cung cấp tất cả các chức năng. Như vậy, họ không cần phải sử dụng 
nhiều đối tượng khác nhau. 
Sự thuận lợi quan trọng nhất của tính thừa kế là nó thúc đẩy việc tái sử dụng mã chương 
trình. 
Trong ví dụ trên, chúng ta có ba lớp ‘Đường thẳng’, ‘Đường tròn’ và ‘Hình ảnh’. Giả 
thiết rằng ba người khác nhau xây dựng ba lớp này riêng biệt. Bây giờ, người sử dụng cần 
xây dựng một lớp để vẽ đường thẳng, vẽ đường tròn cũng như hiển thị hình ảnh. Vì thế 
họ tìm kiếm xem có lớp nào đáp ứng một hoặc tất cả các yêu cầu đó. Nếu có những lớp 
cung cấp chức năng thỏa yêu cầu thì người sử dụng sẽ thừa kế những lớp đó để tạo một 
lớp mới. 
Giờ đây người sử dụng chỉ còn phải viết mã chương trình cho những đặc tính chưa có sau 
tiến trình thừa kế. Người sử dụng có thể sử dụng chính ba lớp trên. Tuy nhiên, sự thừa kế 
cung cấp một bó những chức năng hỗn độn trong một lớp. 
1.10 Tính Đa hình 
Trong một chương trình có cấu trúc (a structured program), một phương thức chỉ ứng 
dụng cho một đối tượng. Chẳng hạn xét toán tử ‘Cộng’. Toán tử này chỉ tính tổng của hai 
số nguyên. Khi truyền hai giá trị 2 và 3 thì nó hiển thị 5. Chúng ta không thể có một loại 
toán tử ‘Cộng’ để tính tổng của hai giá trị văn bản (text) ‘Hello!’ và ‘How are you?’ để 
có được chuỗi văn bản kết quả ‘Hello! How are you?’ 
Trong hệ thống hướng đối tượng thì tình huống mô tả trên là khả thể. 
=++ 
Lớp Đường thẳng 
Khởi điểm 
Điểm tận 
Vẽ đường thẳng 
Lớp Đường tròn 
Bán kính 
Tâm điểm 
Vẽ đường tròn 
Lớp Hình ảnh 
Hình ảnh 
Vẽ hình ảnh 
Lớp Vẽ một hình 
Nhận hình vẽ 
Vẽ hình 
Định nghĩa 
Tính đa hình cho phép một phương thức có các tác động khác nhau trên nhiều loại 
đối tượng khác nhau. 
Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp 
khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương 
thức này bao gồm cùng một số lượng các tham số. 
Tính đa hình là một trong những đặc tính quan trọng nhất của hệ thống hướng đối tượng. 
Một ví dụ khác là phương thức hiển thị. Tùy thuộc vào đối tượng tác động, phương thức 
ấy có thể hiển thị một chuỗi, hoặc vẽ một đường thẳng, hoặc hiển thị một hình ảnh. Hãy 
khảo sát hình sau: 
Hình trên cho thấy rằng ‘Vẽ’ là một phương thức được chia sẻ giữa các lớp con của lớp 
‘Hình thể’. Tuy nhiên, phương thức Vẽ được ứng dụng cho hình hộp sẽ khác với hình 
êlip. 
Tính đa hình hỗ trợ tính đóng gói. 
Xét trên mức độ người sử dụng, họ chỉ cần một phương thức ‘Vẽ’ của lớp ‘Hình thể’. 
Còn cách thức mà phương thức ‘Vẽ’ được thực thi cho các trường hợp khác nhau thì họ 
không cần biết. 
1.11 Những thuận lợi của Phương pháp hướng Đối tượng 
Lập trình hướng đối tượng đòi hỏi một sự chuyển hướng quan trọng trong tư duy của các 
lập trình viên. Phương pháp này làm cho tốc độ phát triển các chương trình mới nhanh 
hơn, và nếu được sử dụng cách đúng đắn phương pháp này sẽ cải tiến việc duy trì, việc 
tái sử dụng và việc đánh giá phần mềm. 
Những điểm thuận lợi của phương pháp hướng đối tượng là: 
¾ Phương pháp này tiến hành tiến trình phân tích, thiết kế và phát triển một vấn đề 
trong khuôn khổ những khái niệm và thuật ngữ thuộc lãnh vực ứng dụng. Vì thế, 
có một sự tương hợp cao nhất giữa việc phát triển ứng dụng và vấn đề thực tế. 
Lớp: Hình thể 
Các phương thức: 
Vẽ 
Di chuyển 
Khởi tạo 
Các lớp con
Hình 1.5: Lớp ‘Hình thể’ và các lớp con 
¾ Chẳng hạn như trong trường hợp bán xe hơi, ở mọi giai đoạn của việc phân tích, 
thiết kế và phát triển ứng dụng, luôn luôn có tiếng nói của khách hàng, của nhân 
viên bán hàng … 
¾ Phương pháp này hỗ trợ việc chia sẻ bên trong một ứng dụng. 
¾ Phương pháp này hỗ trợ việc tái sử dụng các đối tượng khi các ứng dụng mới 
được phát triển. Đây là sự thuận lợi rất quan trọng xét trong khía cạnh giảm thiểu 
chi phí có ý nghĩa lâu dài. 
¾ Chẳng hạn như hành vi của khách hàng một khi được mô hình hóa trong một ứng 
dụng thì có thể được sử dụng lại cho những ứng dụng liên hệ có bao gồm mô hình 
khách hàng. 
¾ Phương pháp này giảm thiểu các lỗi và những vấn đề liên quan đến việc bảo trì 
ứng dụng do khả năng tái sử dụng các đối tượng. 
¾ Phương pháp này tăng tốc tiến trình thiết kế và phát triển, một lần nữa đây là kết 
quả của việc tái sử dụng các đối tượng. 
Tóm tắt bài học 
¾ Lập trình hướng Đối tượng là một cách tư duy mới để giải quyết vấn đề với máy 
vi tính. Thay vì nỗ lực đưa vấn đề vào trong khuôn khổ quen thuộc với máy vi 
tính, phương pháp hướng đối tượng tìm kiếm một giải pháp toàn vẹn cho một vấn 
đề. 
¾ Sự trừu tượng hóa dữ liệu là tiến trình xác định và nhóm các thuộc tính và các 
phương thức liên quan đến một thực thể đặc thù, trong tương quan với một ứng 
dụng. 
¾ Một lớp định nghĩa một thực thể theo những thuộc tính và những phương thức 
chung. 
¾ Một đối tượng là một trường hợp của một lớp. 
¾ Một lớp định nghĩa một thực thể, còn đối tượng là thực thể hiện thực. 
¾ Tiến trình hiện thực hóa một đối tượng được gọi là Thiết lập (Construction). 
¾ Tiến trình hủy bỏ một đối tượng được gọi là Hủy (Destruction). 
¾ Tính bền vững là khả năng lưu trữ dữ liệu của một đối tượng vượt quá thời gian 
tồn tại của đối tượng đó. 
¾ Việc đóng gói là tiến trình che giấu việc thực thi chi tiết của một đối tượng đối 
với người sử dụng đối tượng ấy. 
¾ Tính thừa kế là cơ chế cho phép một lớp chis sẻ các thuộc tính và các phương 
thức được định nghĩa trong một hoặc nhiều lớp khác. 
¾ Tính đa hình là một thuộc tính cho phép một phương thức có các tác động khác 
nhau trên nhiều đối tượng khác nhau. 
¾ Phương pháp hướng đối tượng đưa ra tiến trình phân tích, thiết kế và phát triển 
ứng dụng trong khuôn khổ các khái niệm và các thuật ngữ thuộc lãnh vực ứng 
dụng. 
Kiểm tra sự tiến bộ 
1. Sự trừu tượng hóa dữ liệu đồng nghĩa với sự che giấu dữ liệu. Đúng/Sai 
2. Định nghĩa sự Trừu tượng hóa dữ liệu. 
3. Việc đóng gói dữ liệu che giấu những chi tiết thực thi đối với những đối tượng 
khác. Đúng/Sai 
4. Tính đa hình cho phép chúng ta tạo những đối tượng khác với cùng một tên.
 Đúng/Sai 
5. Mỗi một đối tượng có một _____________ và ____________ được xác định rõ. 
6. Tất cả các đối tượng của một lớp đều có cùng một tập hợp các thuộc tính.
 Đúng/Sai 
7. Một đối tượng định nghĩa một thực thể, trong khi một lớp là thực thể cụ thể.
 Đúng/Sai 
8. Định nghĩa tính Đa hình. 
Bài tập 
1. Thiết kế các thành phần và các hành động khi một khách hàng thực hiện một giao 
dịch ATM (Automatic Teller Machine). 
2. Liệt kê những thuộc tính và những phương thức cần có để vẽ một hình đa giác. 

File đính kèm:

  • pdfUnlock-CoreJava_C1.pdf
Tài liệu liên quan