Nhập môn Giới thiệu Các khái niệm cơ bản của lập trình hướng đối tượng Giới thiệu ngôn ngữ lập trình Java... Giới thiệu 3tượng độc lập, có thể tương tác bằng cách trao đổi thông bá
Trang 1Lập trình hướng đối tượng
Object-oriented Programming
Giảng viên: Nguyễn Thị Minh Huyền
nguyenthiminhhuyen@hus.edu.vn
Đỗ Thanh Hà
Trang 3Tổ chức học tập
thứ Tư (xem lịch cụ thể kèm theo)
Chuẩn bị chương trình ở nhà
Phân tích, chữa bài tập, chạy chương trình tại phòng máy
Kiểm tra thường xuyên (bài tập về nhà theo nhóm 2 người)
Kiểm tra giữa kì
Bài tập lớn (nhóm 4-5 người) + trả lời câu hỏi trên giấy
Trang 4Nhập môn
Giới thiệu
Các khái niệm cơ bản của lập trình
hướng đối tượng
Giới thiệu ngôn ngữ lập trình Java
Trang 5Giới thiệu (1)
Đặc tả yêu cầu ( requirements ) : làm gì?
Phân tích ( analysis ): làm thế nào?
Thiết kế ( design ): tổ chức ra sao?
Lập trình ( coding ): viết mã chương trình
Dò lỗi ( debugging ): sửa lỗi
Kiểm tra ( testing ): đảm bảo chương trình chạy đúng
Phân phối ( deployment ): đưa vào sử dụng
Bảo trì ( maintenance ): tiếp tục hoàn thiện, phát triển, giữ phần mềm hoạt động
Trang 7Giới thiệu (3)
tượng độc lập, có thể tương tác bằng cách trao đổi thông báo cho nhau
1967: ngôn ngữ Simula triển khai khái niệm lớp (class)
1976: ngôn ngữ Smalltalk triển khai khái niệm đóng gói, thừa kế, đa hình – các khái niệm cơ bản của lập trình hướng đối tượng
Các ngôn ngữ khác: C++, Objective-C, Eiffel, Java, C#, Visual Basic.NET, Python, Ruby, v.v.
Trang 8Nhập môn
Giới thiệu
Các khái niệm cơ bản của lập trình
hướng đối tượng
Giới thiệu ngôn ngữ lập trình Java
Trang 9Đối tượng ( object )
hay phi vật thể)
member function): mô tả các hành vi có thể của đối tượng
thái của đối tượng
Trang 10Chương trình hướng đối tượng
DATA
Function 1 Function 2
Function 3
Function 4 Function 5
Trang 12Đối tượng – Ví dụ (2)
độ Oxy
Trang 13Đặc điểm LT hướng đối tượng
thức)
thông báo yêu cầu thực hiện các hành vi nào
đó (gọi hàm)
Trang 14Đặc điểm LT hướng đối tượng
tâm đến các đặc tính của đối tượng (gồm có gì, làm gì),
bỏ qua các tiểu tiết (làm như thế nào)
trường bên ngoài chỉ có thể tác động vào đối tượng
thông qua các dịch vụ (phương thức) cho bởi người viết
mã chương trình => tính toàn vẹn dữ liệu
đối tượng “phản ứng” khác nhau
(kế thừa) những đặc tính sẵn có của đối tượng khác
Trang 15Đặc điểm LT hướng đối tượng
tượng
hưởng gì đến chương trình bên ngoài sử
dụng đối tượng
suất, đơn giản hóa độ phức tạp khi bảo
trì/mở rộng phần mềm
Trang 16tượng Mỗi đối tượng sinh ra nhờ việc thực thể
đối tượng Đặc biệt:
hàm dựng ( constructor ) – cài đặt giá trị ban đầu, đăng kí bộ nhớ, v.v.,
hàm hủy ( destructor ) – thực hiện các thao tác cần thiết khi hủy bỏ 1 đối tượng
Trang 17Đóng gói dữ liệu
tới các thuộc tính/phương thức của một đối tượng:
từ tất cả các lớp khác
được trong nội bộ hoặc các lớp con của nó
được trong nội bộ lớp
Trang 18Kế thừa
Tạo một lớp mới (lớp con - subclass ) từ một lớp đã có (lớp cha – parent class )
tính/phương thức của lớp cha
mới
(vd: C++)
Trang 19Đa hình
tương tự nhưng bản chất thực hiện khác nhau (ví dụ: phép cộng - số, xâu)
lại hàm thuộc lớp cha thành hàm mới trong lớp con (ví dụ: định nghĩa hàm di chuyển cho các lớp con
của lớp Quân Cờ)
lớp, nhưng số lượng tham biến khác nhau hoặc kiểu các tham biến khác nhau
Trang 20Nhập môn
Giới thiệu
Các khái niệm cơ bản của lập trình
hướng đối tượng
Giới thiệu ngôn ngữ lập trình Java
Trang 21Phân loại ngôn ngữ lập trình hướng đối tượng
Eiffel, v.v.): hiệu năng cao hơn
Biên dịch ra mã byte chạy bởi máy ảo
(Smalltalk, Java, v.v.): chương trình ổn
định, chạy trong mọi môi trường
Thông dịch hoặc ngôn ngữ script (Ruby, Python, JavaScript, v.v.)
Trang 22Ngôn ngữ thực hành: Java
Phiên bản: J2SE 5.0 (JDK 5.0)
Trang 23Java – tổng quan (1)
Do hãng Sun Microsystems triển khai năm 1991
Dự án Green: chế tạo điều khiển từ xa vạn năng chứa hệ điều hành có thể điều khiển toàn bộ các đồ điện tử trong nhà
Cần một ngôn ngữ lập trình tích hợp trong các đồ điện tử gia dụng
để điều khiển và cho phép chúng tương tác/trao đổi với nhau:
ngôn ngữ hướng đối tượng
C++: phức tạp, kém tính mang được (portable)
James Gosling: định nghĩa ngôn ngữ lập trình mới mang tên Oak , sau đổi tên là Java : cơ bản dựa trên C++, chương trình đơn
giản/gọn nhẹ hơn, c ó tính mang được
Java được đánh giá là thích hợp cho web: chương trình nhỏ
gọn, chạy trên mọi máy
Trang 24 Kiểu xâu kí tự và mảng được tích hợp trong ngôn ngữ
Trang 25tính năng giới hạn (để đảm bảo tính an toàn) dùng cho ứng dụng web
Trang 26Java – tổng quan (4)
phí
javac: trình biên dịch (*.java -> *.class)
java: máy ảo thực hiện ứng dụng
appletviewer: máy ảo thực hiện applet
jdb: debugger
javap: trình dịch ngược (*.class -> *.java)
javadoc: bộ sinh tài liệu chương trình
jar: trình nén các tệp bytecode
trường (Windows, Linux, Unix) – jdk1.6
Trang 27Tài liệu tham khảo
Học liệu: BigJava
http://www.horstmann.com/bigjava2.html
Giáo trình Lập trình Java
(laptrinh_java.pdf)