Mục đích và yêu cầu Nắm rõ các khái niệm về lập trình hướng đối tượng Làm quen với các cú pháp và phong cách lập trình hướng đối tượng với ngôn ngữ Java.. Lập trình hướng đối tượng O
Trang 2Tài liệu tham khảo
Giáo trình “Lập trình Java cơ bản”
Giáo trình “Lập trình Java nâng cao”
Trần Tiến Dũng - Giáo trình lý thuyết và bài
tập Java - NXB Giáo dục, 1999
Thinking in Java (4th Edition), Bruce Eckel
Trang 3Mục đích và yêu cầu
Nắm rõ các khái niệm về lập trình hướng đối
tượng
Làm quen với các cú pháp và phong cách lập
trình hướng đối tượng với ngôn ngữ Java
Tạo và biên dịch các chương trình Java như các chương trình ứng dụng
Trang 4Nội dung môn h i dung môn h ọc
Giới thiệu về Java
Các thành phần cơ bản trong Java
Lập trình hướng đối tượng
Nhập xuất file & Ngoại lệ
Lập trình GUI
Kết nối cơ sở dữ liệu
4/25
Trang 5Chương 1: Giới thiệu về Java
Tổng quan về lập trình hướng đối tượng (OOP)
Tổng quan về Java
Chương trình “Hello Java”
Giới thiệu Eclipse
Trang 6Tổng quan lập trình hướng đối tượng
6/25
Trang 7Machine Code File
Main Program
Data
Trang 8Source File Machine-language
File Linker Exec utable File
Library Code
Trang 9Lập trình cấu trúc
Chương trình có cấu trúc được tổ chức
theo các công việc mà chúng thực hiện
Chương trình chia nhỏ thành các chương trình con riêng rẽ (còn gọi là hàm hay thủ tục )
Main Program
Data
Procedure1 Procedure2 Procedure3
Trang 10Nhược điểm của Lập trình cấu trúc
Lặp lại code
Khó tìm và sửa lỗi
Khó cho làm việc theo nhóm
Thiếu sự che dấu thông tin
Trang 11Lập trình hướng đối tượng (OOP)
Dựa trên ý tưởng
• Xem thế giới ta đang sống là tuyển tập các đối tượng, ví dụ như : bạn, những người bạn cùng lớp với bạn, con chó của bạn, ĐTDĐ của bạn
• Có sự tương tác giữa các đối tượng này bên trong ứng dụng để thực hiện các yêu cầu, ví dụ như: bạn có một con chó, bạn gọi điện thoại bằng ĐTDĐ của bạn, bạn nói chuyện với bạn cùng lớp của bạn
Xem dữ liệu (các thuộc tính) và các chức năng/xử
lý (các phương thức) trên dữ liệu đó như một đối tượng riêng Một đối tượng đóng bao cả dữ liệu vàcác phương thức
Trang 12Lập trình hướng đối tượng (OOP)
Object1Data1+Procedures1
Object3Data3 + Procedures3
Object2
Data2 + Procedures2
Object4Data4 + Procedures4
Trang 13Lập trình hướng đối tượng (OOP)
Trang 16Hai phần của một đối tượng
• Đối tượng = Dữ liệu + Các phương thức
Trang 17I am an object!
UNIQUE OBJECT IDENTIFIER (OID)
BEHAVIOUR
Methods
Hai phần của một đối tượng
Lập trình hướng đối tượng (OOP)
Trang 18 Các thuộc tính
• Thành phần dữ liệu của một đối tượng
• Xác định các đặc trưng mô tả của một đối tượng
• Ví dụ: con chó của bạn có màu nâu, ĐTDĐ của bạn thuộc hãng Nokia
Các phương thức
• Thành phần xử lý của một đối tượng
• Xác định các hành vi của một đối tượng
• Ví dụ: con chó đi, ĐTDĐ nhắn tin SMS
Lập trình hướng đối tượng (OOP)
Trang 19 Một khung mẫu (template, blueprint, prototype) đểtạo đối tượng
• Ví dụ: lớp “Chó” xác định các thuộc tính và các phương thức của một con chó, nhưng lớp “Chó” không phải là một đối tượng
Một đối tượng được tạo từ một lớp
• Là một minh họa của một lớp
• Ví dụ: bạn là một minh họa của lớp “SinhViên”, con chó của bạn là một minh họa của lớp “Chó”
Lớp
Trang 20 Các đối tượng của cùng một lớp
• Có cùng một tập các thuộc tính và các phương thức
Ví dụ: mỗi sinh viên có thuộc tính “MãSốSV”, mỗi con chó có thuộc tính “Màu sắc”
• Có thể có các giá trị thuộc tính khác nhau
Ví dụ: các sinh viên khác nhau có thể có giá trị mã số sinh sinh viên khác nhau, các con chó khác nhau có thể có màu sắc khác nhau
Lớp & Đối tượng
Trang 23Daria Jane BrittanyJodie
girl
class object
Lớp & Đối tượng
Trang 24Daria Jane BrittanyJodie
girl
class object
Lớp & Đối tượng
Trang 25 Trừu tượng (Abstraction)
Trang 26 Trích những tính chất cần thiết của đối tượng
và bỏ qua những tính chất không cần thiết
• Xác định một cách nhìn một đối tượng
Ví dụ: xe hơi
• Người bán hàng quan tâm giá, thời gian bảo hành, màu sắc, …
• Người bảo hành quan tâm đến: kích thước đầu bơm xăng, kiểu bugi,
Sự trừu tượng
Trang 28 Một đối tượng đóng gói cả các thuộc tính và các
phương thức của nó
Các gắn liền:
• Một thuộc tính/phương thức gắn liền với một đối tượng
• Khi đề cập đến một thuộc tính/phương thức, phải chỉ rõ thuộc tính/phương thức của đối tượng nào
• Tại sao đóng bao ?
Khi có một đối tượng, cũng là có được các thành phần dữ liệu
và hành vi của nó
Rất tốt cho dùng lại
Sự đóng gói
Trang 29Sự đóng gói
Trang 31 Một đối tượng có thể che giấu các chi tiết bên trong của nó
• Ta không thể biết cách làm việc bên trong của ĐTDĐ của mình ngoài các chức năng trên bàn phím
Có thể hiện một vài chi tiết nào đó ra thế giới bên ngoài
• Hiển thị số điện thoại của mình khi gọi tới máy khác
Xác định một giao tiếp (interface) để tương tác với thế giới bên ngoài
• ĐTDĐ tương tác với bạn thông qua bàn phím và màn hình
Sự che dấu thông tin
Trang 32 Một đối tượng có thể có bên
trong nó phức tạp nhưng có
giao tiếp đơn giản
• Làm cho giao tiếp với thế giới
bên ngoài dễ hơn
Không cần biết bên trong của
đối tượng
• Chỉ có giao tiếp mới là quan trọng
• Nghĩa là làm thế nào để tương tác
với nó
Thuận tiện cho việc dùng lại
code
Manufacture A Manufacture B Manufacture C
Sự che dấu thông tin
Trang 33• Sự thừa kế các thuộc tính, phương thức từ các lớp Cơ sở (base)/Cha (super) của các lớp Dẫn xuất (Derived)/ Con (sub)
Sự thừa kế
Trang 34•Sự thừa kế hình thành nên phân cấp các lớp
mở rộng/ dẫn xuất ra các lớp con/ dẫn xuất cần thiết
Sự thừa kế
Trang 35Cùng một phương thức được sử dụng ở lớp cha/cơ sở có thể được định nghĩa lại trong các lớp con/dẫn xuất để đáp ứng với các đối tượng thuộc các lớp khác
Sự đa hình
Trang 36Manufacturer A Manufacturer B Manufacturer C
Khả năng che giấu nhiều cài đặt khác nhau đằng sau một giao tiếp
Sự đa hình
Trang 37Cổ phiếu Trái phiếu Qũi chung
Get Current Value
getC urrentValue()
getC urrentValue()
getC urrentValue()
Sự đa hình
Trang 38Ưu điểm của Lập trình hướng đối tượng
• Tạo ra sự gần gũi giữa bài toán thực tế và việc cài đặt chương trình
• Đẩy mạnh việc chia sẻ trong phạm vi một ứng dụng
• Đẩy mạnh sự sử dụng lại của các đối tượng khi cài đặt những ứng dụng mới
• Về lâu dài, giảm đáng kể chi phí khi phát triển các ứng dụng mới
• Giảm lỗi và sự phức tạp trong bảo trì
• Sửa đổi nhanh hơn
Trang 39Các ngôn ngữ OOP
Ngôn ngữ OOP đầu tiên là Smalltalk, do trung tâm nghiên cứu Palo Alto (PARC) của hãng XEROR tập trung 10 năm nghiên cứu để hoàn thiện từ tư
tưởng của ngôn ngữ SIMULA67
Sau đó các ngôn ngữ OOP lần lượt ra đời như
Eiffel, Clos, Loops, Flavors, Object Pascal, Object
C, C++, Delphi, Java
Trang 40Tổng quan về java
40/25
Trang 44Tổng quan về Java Các ứng dụng Java
Ứng dụng Console: Ứng dụng nhập xuất ở chế độ văn bản tương tự màn hình Console của MS-DOS.
Ứng dụng Applet: Ứng dụng có thể nhúng và chạy trong
trang web của một trình duyệt web.
Ứng dụng Desktop dùng giao diện đồ họa: Phát triển các
ứng dụng đồ họa được giải quyết bằng thư viện AWT và
JFC.
Ứng dụng Web: Java hỗ trợ mạnh mẽ đối với việc phát
triển các ứng dụng Web thông qua công nghệ J2EE (Java 2 Enterprise Edition).
Ứng dụng nhúng: Java Sun đưa ra công nghệ J2ME hỗ trợ phát triển các phần mềm nhúng.
Trang 45 Java Standard Edition (J2SE)
• J2SE để phát triển các ứng dụng hay applet phía
client
Java Enterprise Edition (J2EE)
• J2EE để phát triển các ứng dụng phía server như
Java servlets và Java ServerPages
Java Micro Edition (J2ME)
• J2ME để phát triển các ứng dụng cho mobile
45/25
Các phiên bản JDK
Trang 46Dịch và thực thi chương trình Java
Trang 47Dịch và thực thi chương trình Java
thảo để viết mã nguồn, lưu lại với file tên có
đuôi “.java” Tên của file phải đặt giống tên của lớp chính trong chương trình
javac để biên dịch mã nguồn “.java” thành mã
của máy ảo (java bytecode) có đuôi “.class”
thi dùng lệnh “java”
Trang 48Dịch và thực thi chương trình Java
Trang 49Dịch và thực thi chương trình Java
Trang 50Cài đặt
Tải Java tại website
http://www.oracle.com/technetwork/java/index.html
Cài đặt JDK hoặc JRE
Thiết lập biến môi trường
50/25
Trang 51Chương trình “Hello Java”
Viết mã nguồn bằng Notepad
Trang 52 Lưu chương trình với đuôi java
52/25
Chương trình “Hello Java”
Trang 54 Chạy chương trình
54/25
Chương trình “Hello Java”
Trang 55Giới thiệu Eclipse
Tải Eclipse tại trang
http://www.eclipse.org/downloads/
Chọn Eclipse IDE for Java Developers
Giải nén và chạy file eclipse.exe
55/25
Trang 56 Giao diện ban đầu
56/25
Giới thiệu Eclipse
Trang 57 Màn hình welcome
57/25
Giới thiệu Eclipse
Trang 58 Tạo 1 project
58/25
Giới thiệu Eclipse
Trang 59 Chọn Java Project, rồi next
59/25
Giới thiệu Eclipse
Trang 60 Nhập tên Project
60/25
Giới thiệu Eclipse
Trang 61 Tạo class
61/25
Giới thiệu Eclipse
Trang 62 Đặt tên class
62/25
Giới thiệu Eclipse