


Mục Tiêu Bài Học
• Thế nào là lập trình hướng đối tượng
• Tìm hiểu về trừu tượng dữ liệu
• Định nghĩa lớp và đối tượng
• Constructor và Destructor
• Tìm hiểu về tính lưu trữ, bao bọc dữ liệu, tính kế thừa và đa hình
• Các ưu điểm của phương pháp lập trình hướng đối tượng
Lập Trình Hướng Đối Tượng
• Lấy đối tượng làm nền tảng cơ sở của phương pháp lập trình
• Phương pháp thiết kế và thực hiện bằng các hệ phần mềm
Trừu Tượng Dữ Liệu
• Là tiến trình xác định và tập hợp các tính chất và các hành động của một thực thể có liên quan đến ứng dụng
• Lợi ích:
– Tập trung vào vấn đề
– Xác định những tính chất và hành động thiết yếu
– Loại trừ những chi tiết không cần thiết
Trừu Tượng Dữ Liệu
Các tính chất của một đối tượng Người
Tên
Địa chỉ
Tuổi
Chiều cao
Màu tóc
Các tính chất của một đối tượng Khách hàng
Mã khách hàng
Tên khách hàng
Địa chỉ
Trừu Tượng Dữ Liệu (tiếp theo)
Các thuộc tính và hành động
| Thuộc tính | Hành động |
|---|---|
| Mã khách hàng | Nhập mã khách hàng |
| Tên của khách hàng | Nhập tên của khách hàng |
| Địa chỉ của khách hàng | Nhập địa chỉ của khách hàng |
| Sản phẩm đã mua | Nhập sản phẩm mua được |
| (—) | Lập hóa đơn |
Lớp
• Lớp là một nhóm các đối tượng có chung những tính chất và hành động
Lớp Khách hàng
Mã khách hàng
Tên khách hàng
Địa chỉ khách hàng
Sản phẩm đã mua
Nhập mã khách hàng
Nhập tên
Nhập địa chỉ
Nhập sản phẩm mua được
Lập hóa đơn
Đối Tượng
• Đối tượng là một thể hiện của lớp
Nhi
Đức
Phúc
Đối Tượng (tiếp theo)
• Thuộc tính: Tính chất mô tả một đối tượng
• Hành động: Dịch vụ mà đối tượng có thể đáp ứng
• Phương thức: Đặc tả cách đáp ứng bằng hành động khi được yêu cầu
• Thông điệp: Yêu cầu một hành động
• Biến cố: Sự kích thích từ đối tượng này gởi sang đối tượng khác
Lớp Và Đối Tượng
• Lớp là một thực thể, còn đối tượng là một thực thể thực tế
• Lớp là một mô hình ý niệm định rõ các tính chất và các hành động được quy định bởi một đối tượng, còn đối tượng là một mô hình thực sự
• Lớp là khuôn mẫu từ đó đối tượng được tạo ra
• Tất cả các đối tượng trong cùng một lớp có các tính chất và các hành động như nhau
Constructor
• Tiến trình tạo ra một đối tượng được gọi là Constructor
• Một Constructor:
– Cấp phát vùng nhớ
– Khởi gán những thuộc tính (nếu có)
– Cho phép truy cập những thuộc tính và phương thức
Destructor
• Tiến trình hủy một đối tượng gọi là Destructor
• Một Destructor:
– Giải phóng bộ nhớ
– Cấm truy cập thuộc tính và phương thức
Tính Lưu Trữ
• Tính lưu trữ là khả năng của đối tượng có thể lưu lại dữ liệu của nó sau khi đã bị hủy
Tính Bao Bọc Dữ Liệu
• Tiến trình che dấu những chi tiết hiện thực một đối tượng được gọi là tính bao bọc
• Ưu điểm:
– Tất cả những thuộc tính và phương thức cần thiết đều được tạo
– Một lớp có thể có nhiều tính chất và phương thức nhưng chỉ một số trong đó được hiển thị cho người dùng
Tính Kế Thừa
Lớp Sinh Viên — Lớp Nhân Viên — Lớp Khách Hàng
| Sinh viên | Nhân viên | Khách hàng |
|---|---|---|
| Tên | Tên | Tên |
| Địa chỉ | Địa chỉ | Địa chỉ |
| Điểm môn 1 | Lương | Sản phẩm mua được |
| Điểm môn 2 | Chức vụ | Nhập tên |
| Nhập tên | Nhập tên | Nhập địa chỉ |
| Nhập địa chỉ | Nhập địa chỉ | Nhập mã sản phẩm |
| Nhập điểm | Nhập lương | Lập hóa đơn |
| Tính tổng số điểm | Tính lương | (—) |
Tính Kế Thừa (tiếp theo)
Lớp Người
Tên
Địa chỉ
Nhập tên
Nhập địa chỉ
Tính Kế Thừa (tiếp theo)
Lớp Người
Tên
Địa chỉ
Nhập tên
Nhập địa chỉ
Thêm các thuộc tính và hành động cần thiết vào lớp khách hàng:
Nhập mã sản phẩm đã mua
Lập hóa đơn
→ Lớp Khách Hàng
Tính Kế Thừa (tiếp theo)
• Tính thừa kế: Là cơ chế cho phép một lớp chia sẻ những thuộc tính và những hành động đã định nghĩa trong một hoặc nhiều lớp khác
• Lớp con: Là lớp thừa kế từ lớp khác
• Lớp cha: Là lớp từ đó một lớp khác thừa kế các ứng xử của nó
• Đa thừa kế: Khi một lớp con thừa kế từ hai hoặc nhiều lớp
Tính Đa Hình
Text
Line
Picture
How are you?
Hành động: Display
• Tính đa hình là thuộc tính cho phép một hành động ứng xử khác nhau trên các lớp khác nhau
Ưu điểm của phương pháp hướng đối tượng
• Chia sẻ trong phạm vi một ứng dụng
• Đẩy mạnh sự dùng lại của các đối tượng khi hiện thực những ứng dụng mới
• Về lâu dài, chi phí giảm đáng kể
• Giảm lỗi và rắc rối trong bảo trì
• Điều chỉnh nhanh hơn
TỔNG KẾT
• Tiếp cận hướng đối tượng đưa ra một giải pháp toàn diện cho một bài toán cụ thể
• Trừu tượng dữ liệu là một tiến trình xác định và tập hợp các tính chất và các hành động có quan hệ với một thực thể cụ thể
• Lớp mô tả một thực thể, còn đối tượng là một thực thể thực tế
• Constructor và Destructor
• Tính lưu trữ, bao bọc dữ liệu, tính kế thừa và đa hình
Chương 1
Giới thiệu ngôn ngữ lập trình Java
Giới thiệu
• Sự phát triển của Java
• Hướng tới người dùng
• Giống với C / C++
Các đặc trưng của Java
• Đơn giản
• Hướng đối tượng
• Độc lập phần cứng
• Mạnh
• Bảo mật
• Phân tán
• Đa luồng
• Động
Các chương trình dịch truyền thống
(giữ nguyên như bản gốc – không có hình nên không thêm)
Chương trình dịch Java
(giữ nguyên như bản gốc – không có hình nên không thêm)
Quá trình biên dịch và thực thi chương trình Java
Java source code
Machine code
Java bytecode
Java interpreter
Bytecode compiler
Java compiler
Các loại chương trình Java
• Ứng dụng độc lập (console Application)
• Ứng dụng giao diện (GUI Application)
• Applets
• Servlet
• Ứng dụng cơ sở dữ liệu
Máy ảo Java
• Là một phần mềm dựa trên cơ sở máy tính ảo
• Là tập hợp các lệnh logic để xác định hoạt động của máy tính
• Được xem như là một hệ điều hành thu nhỏ
• Nó thiết lập lớp trừu tượng cho:
– Phần cứng bên dưới
– Hệ điều hành
– Mã đã biên dịch
Quá trình dịch chương trình Java
• Trình biên dịch chuyển mã nguồn thành tập các lệnh không phụ thuộc vào phần cứng
• Trình thông dịch trên mỗi máy chuyển tập lệnh này thành chương trình thực thi
• Máy ảo tạo ra một môi trường để thực thi các lệnh bằng cách:
– Nạp các file .class
– Quản lý bộ nhớ
– Dọn “rác”
Trình dịch Java
Java Development Kit
• Java 1.0
• Java 1.1
• Java 2
• …
Bộ công cụ JDK
• Trình biên dịch, ‘javac’
– javac optionsoptionsoptions sourcecodename.java
• Trình thông dịch, ‘java’
– java optionsoptionsoptions classname
• Trình dịch ngược, ‘javap’
– javap optionsoptionsoptions classname
• Công cụ sinh tài liệu, ‘javadoc’
– javadoc optionsoptionsoptions sourcecodename.java
• Chương trình tìm lỗi – Debug, ‘jdb’
– jdb optionsoptionsoptions sourcecodename.java
OR
– jdb -host -password optionsoptionsoptions sourcecodename.java
• Chương trình xem Applet, ‘appletviewer’
– appletviewer optionsoptionsoptions sourcecodename.java / url

