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
62 trang |
Chia sẻ: lylyngoc | Lượt xem: 1737 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 1 Giới thiệu ngôn ngữ java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH JAVA CƠ BẢN
Chương 1
GIỚI THIỆU NGÔN NGỮ
JAVA
GV: Võ Hoàng Phương Dung
2/25
Tà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
3/25
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.
Tạo và biên dịch các chương trình Java như các
chương trình ứng dụng
Nộ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
5/25
Chươ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
Tổng quan
lập trình hướng đối tượng
6/25
7/25
Lập trình tuyến tính
Lập trình bằng assembly
…
ADDF3 R1, R2, R3
…
Assembly Source File
Assembler
…
1101101010011010
…
Machine Code File
Main Program
Data
COBOL
FORTRAN
BASIC
Pascal
Ada
C
8/25
Các ngôn ngữ lập trình cấp cao
Visual Basic
Delphi
C++
C#
Java
Compiler Source File Machine-language
File
Linker Executable File
Library Code
9/25
Lậ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
10/25
Nhượ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
11/25
Lậ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
12/25
Lập trình hướng đối tượng (OOP)
Object1
Data1+Procedures1
Object3
Data3 + Procedures3
Object2
Data2 + Procedures2
Object4
Data4 + Procedures4
13/25
Hàm
Hàm
Hàm
Các thao tác
Dữ liệu
Đối tượng
Các thao tác
Dữ liệu
Đối tượng
Các thao tác
Dữ liệu
Đối tượng
Lập trình cấu trúc Hướng đối tượng
Lập trình hướng đối tượng (OOP)
Ví dụ:
Order
Product
Ship via
Lập trình hướng đối tượng (OOP)
Lập trình hướng đối tượng (OOP)
Hai phần của một đối tượng
• Đối tượng = Dữ liệu + Các phương thức
Hoặc:
• Đối tượng = Trạng thái + Hành vi
= +
+=
Lập trình hướng đối tượng (OOP)
I am an
object!
UNIQUE OBJECT IDENTIFIER (OID)
NAME MARK
DOB 14/02/1964
JOB LECTURER
ATTRIBUTES
State
CHANGE JOB
GET AGE
BEHAVIOUR
Methods
Hai phần của một đối tượng
Lập trình hướng đối tượng (OOP)
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)
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
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
Lớp & Đối tượng
Lớp & Đối tượng
Daria Jane BrittanyJodie
girlclassobject
Lớp & Đối tượng
Daria Jane BrittanyJodie
girlclassobject
Lớp & Đối tượng
Trừu tượng (Abstraction)
Đóng gói (Encapsulation)
Thừa kế (Inheritance)
Đa hình (Polymophism)
Các đặc trưng cơ bản của LTHĐT
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
Sự trừu tượng
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
G
E
T
A
G
E
M
E
T
H
O
D
C
H
A
N
G
E
JO
B
M
E
T
H
O
D
NAME: MARK
DOB: 14/02/64
JOB: LECTURER
GET AGE
CHANGE JOB
OBJECT
Sự đóng gói
Sự đóng gói
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
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
• 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ế
•Sự thừa kế hình thành nên phân
cấp các lớp
•Sự thừa kế mang đến:
• Chia sẻ các thuộc tính và
phương thứa (tránh viết lại
code)
• Mô hình hóa sự tổng
quát hóa và chuyên biệt hóa
trong thế giới thực
• Viết các thành phần
phần mềm chung, tổng quát
(lớp cha/ lớp cơ sở), sau đó
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ế
Cù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
Manufacturer 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
Cổ phiếu Trái phiếu Qũi chung
Get Current Value
getCurrentValue()
getCurrentValue()
getCurrentValue()
Sự đa hình
38/25
Ư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
39/25
Cá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 ...
Tổng quan về java
40/25
41/39
Tổng quan về Java
James Gosling and Sun Microsystems
Oak
Java, May 20, 1995, Sun World
Khắc phục một số hạn chế của C++
JAVA là ngôn ngữ hướng đối tượng
JDK Versions
• JDK 1.02 (1995)
• JDK 1.1 (1996)
• JDK 1.2 (1998)
• JDK 1.3 (2000)
• JDK 1.4 (2002)
• JDK 1.5 (2004) a. k. a. JDK 5 or Java 5
• JDK 1.6 (2006) a. k. a. JDK 6 or Java 6
• JDK 1.7 (2011) a. k. a. JDK 7 or Java 7
42/25
Tổng quan về Java
43/25
Các đặc điểm của ngôn ngữ Java
Simple
Object-oriented
Distributed
Interpreted
Robust
Secure
Architecture-neutral
Portable
Performance
Multithreaded
Dynamic
đơn giản
hướng đối tượng
phân tán
thông dịch
mạnh mẽ
bảo mật
kiến trúc trung tính
khả chuyển
hiệu quả cao
đa tuyến
linh động
44/39
Tổ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.
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
46/25
Dịch và thực thi chương trình Java
47/39
Dịch và thực thi chương trình Java
Viết mã nguồn: Dùng một chương trình soạn
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.
Biên dịch ra mã máy ảo: Dùng trình biên dịch
javac để biên dịch mã nguồn “.java” thành mã
của máy ảo (java bytecode) có đuôi “.class”
Thông dịch và thực thi: Việc thông dịch và thực
thi dùng lệnh “java”.
48/25
Dịch và thực thi chương trình Java
49/25
Dịch và thực thi chương trình Java
Cài đặt
Tải Java tại website
.html
Cài đặt JDK hoặc JRE
Thiết lập biến môi trường
50/25
Chương trình “Hello Java”
Viết mã nguồn bằng Notepad
class HelloWorldApp {
public static void main(String[] args)
{
System.out.println("Hello World!");
// Display the string.
}
}
51/25
Lưu chương trình với đuôi .java
52/25
Chương trình “Hello Java”
Biên dịch chương trình
javac HelloWorldApp.java
53/25
Chương trình “Hello Java”
Chạy chương trình
54/25
Chương trình “Hello Java”
Giới thiệu Eclipse
Tải Eclipse tại trang
Chọn Eclipse IDE for Java Developers
Giải nén và chạy file eclipse.exe
55/25
Giao diện ban đầu
56/25
Giới thiệu Eclipse
Màn hình welcome
57/25
Giới thiệu Eclipse
Tạo 1 project
58/25
Giới thiệu Eclipse
Chọn Java Project, rồi next
59/25
Giới thiệu Eclipse
Nhập tên Project
60/25
Giới thiệu Eclipse
Tạo class
61/25
Giới thiệu Eclipse
Đặt tên class
62/25
Giới thiệu Eclipse