SlideShare a Scribd company logo
1 of 47
Download to read offline
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bài 01. Tổng quan về OOP
1
Mã HP: IT3100
Mục tiêu bài học
 Tìm hiểu tổng quan về Công nghệ lập trình hướng
đối tượng
 Khái niệm, Ưu điểm, vai trò, ứng dụng, Sự phát triển các
ngôn ngữ lập trình
 Tìm hiểu về Đối tượng và lớp
 Đối tượng, trạng thái, hành vi
 Lớp, thuộc tính, phương thức
 Tương tác giữa các đối tượng (thông điệp, giao diện)
 Tìm hiểu Ngôn ngữ lập trình Java
 Giới thiệu về Java, Nền tảng Java, Mô hình dịch Java
 Tính năng và ứng dụng của Java
 Cài đặt môi trường lập trình
2
Nội dung
1. Công nghệ hướng đối tượng (HĐT)
2. Đối tượng và lớp
3. Ngôn ngữ lập trình Java
4. Cài đặt môi trường lập trình
3
1/ CÔNG NGHỆ HĐT
4
1.1. Kỹ thuật lập trình
 Kỹ thuật lập trình: Kỹ thuật thực thi một giải pháp phần
mềm (cấu trúc dữ liệu + giải thuật) dựa trên nền tảng một
phương pháp luận (methodology) và một hoặc nhiều ngôn
ngữ lập trình phù hợp với yêu cầu đặc thù của ứng dụng
 Ngôn ngữ lập trình
 Là ngôn ngữ được chuẩn hóa
 Cả con người và máy tính có thể đọc và hiểu được
 Sử dụng chương trình dịch tương ứng để biên dịch toàn bộ
chương trình nguồn thành mã máy trước khi thực hiện
5
1.2. Sự phát triển của ngôn ngữ lập trình
6
Ngôn ngữ máy
Lập trình
tuần tự
Hướng cấu
trúc/thủ
tục
Hướng đối
tượng
Assembly language
Hướng cấu trúc vs. Hướng ĐT
 Hướng cấu trúc/thủ tục:
data structures + algorithms = Program
(cấu trúc dữ liệu + giải thuật = Chương trình)
 Hướng đối tượng:
objects + messages = Program
(đối tượng + thông điệp = Chương trình)
7
1.3. Lập trình hướng đối tượng
 Thể hiện các thành phần của bài toán là các “đối tượng”
(object).
 Hướng đối tượng là một kỹ thuật để mô hình hóa hệ
thống thành nhiều đối tượng tương tác với nhau
8
"Tất cả mọi thứ đều là đối tượng"
-Alan Kay
Object-oriented modeling
House
Tom Car Flower
House
Tom
Car
Flower
lives in
drives
Model
Reality
gets
1.4 Công nghệ đối tượng (OOT)
 Công nghệ đối tượng là một tập các quy tắc (trừu
tượng hóa, đóng gói, đa hình), các hướng dẫn để
xây dựng phần mềm, cùng với ngôn ngữ, cơ sở dữ
liệu và các công cụ khác hỗ trợ các quy tắc này.
 Các mốc chính của công nghệ đối tượng
9
(Object Technology - A Manager’s Guide, Taylor, 1997)
Simula
1967
C ++
Late 1980s
Smalltalk
1972
Java
1991
The UML
1996
UML 2
2004
1.4.1 OOT được sử dụng ở đâu?
 Các hệ thống Client/Server và
phát triển Web
 Hệ nhúng (embedded system)
 Hệ thống thời gian thực (real-
time)
 Hệ thống phần mềm nói chung…
10
1.5. Các nguyên lý cơ bản của OOT
11
Trừu
tượng
hóa
Đa
hình
Hướng đối tượng
Đóng
gói
Thừa
kế
1.5.1 Trừu tượng hóa (Abstraction)
 Là quá trình loại bỏ đi các thông tin/tính chất cụ
thể và giữ lại những thông tin/tính chất chung.
 Tập trung vào các đặc điểm cơ bản của thực thể,
các đặc điểm phân biệt nó với các loại thực thể
khác.
 Phụ thuộc vào góc nhìn
 Quan trọng trong ngữ cảnh này nhưng lại không có ý nghĩa
nhiều trong ngữ cảnh khác.
12
Ví dụ: Trừu tượng hóa
13
Phụ thuộc vào góc nhìn
1.5.2 Đóng gói (Encapsulation)
 Che giấu, ẩn đi chi tiết thực hiện bên trong
 Cung cấp cho thế giới bên ngoài một giao diện
• Việc sử dụng không ảnh hưởng bởi chi tiết bên trong.
14
1.5.3. Thừa kế (Inheritance)
 Xếp hạng hay xếp thứ tự các mức trừu tượng vào
một cấu trúc cây
 Các phần tử ở cùng cấp trong sơ đồ phân cấp thì
có cùng mức trừu tượng hóa
15
Giảm mức độ
trừu tượng hóa
Gia tăng mức độ
trừu tượng hóa
Vehicle
Automobile Motorcycle Bus
Sedan Sports Car School Bus Luxury Bus
1.5.4. Đa hình (polymorphism)
 Đa hình: “one name, many forms”
 Nạp chồng phương thức: phương thức cùng
tên, nhưng hoạt động khác nhau
Add(int x, int y)
Add(float x, float y)
Add(float x, float y, float z)
 Ghi đè phương thức (Method Overriding)
Một Intern (thực tập sinh) là một Intern, đồng thời cũng
có thể được xem là một Staff (nhân viên)
Phương thức quẹt thẻ của Intern khác với phương thức
quẹt thẻ của Staff
16
2/ ĐỐI TƯỢNG VÀ LỚP
17
2.1 Đặc tính của LT HĐT
 Alan Kay đã tổng hợp các đặc tính của LT HĐT:
1. Tất cả đều là đối tượng
2. Mỗi đối tượng đều có dạng đặc trưng của
lớp các đối tượng đó
3. Tất cả các đối tượng thuộc về cùng một lớp
đều có các hành vi giống nhau
4. Chương trình phần mềm có thể coi là một
tập hợp các đối tượng tương tác với nhau
thông qua hành vi đối tượng
5. Mỗi đối tượng trong chương trình có các dữ
liệu độc lập của mình và chiếm bộ nhớ riêng
của mình.
18
2.2 Đối tượng là gì?
 Đối tượng trong thế giới thực, là một thực thể
cụ thể mà thông thường chúng ta có thể sờ,
nhìn thấy hay cảm nhận được.
 Tất cả có trạng thái (state) và hành vi
(behaviour)
19
2.2.1 Trạng thái và hành vi
 Hành vi quyết định đối
tượng đó hành động và đáp
trả như thế nào đối với bên
ngoài.
 Hành vi nhìn thấy được của
một đối tượng được mô
hình thành một tập các
thông điệp nó có thể đáp
trả (các thao tác mà đối
tượng đó thực hiện).
20
Trạng thái của một đối tượng
là một trong các điều kiện tại
đó mà đối tượng tồn tại.
Trạng thái của một đối tượng
có thể thay đổi theo thời gian.
2.3 Đối tượng phần mềm
 Các đối tượng phần mềm được dùng để biểu
diễn các đối tượng thế giới thực.
 Cũng có trạng thái và hành vi
 Trạng thái: thuộc tính (attribute; property)
 Hành vi: phương thức (method)
21
Ví dụ đối tượng phần mềm
22
Đối tượng (object) là một
thực thể phần mềm bao
bọc các thuộc tính và
các phương thức liên
quan.
Đối tượng phần mềm Đối tượng phần mềm Xe Đạp
Thuộc tính được xác định
bởi giá trị cụ thể gọi là
thuộc tính thể hiện.
Một đối tượng cụ thể
được gọi là một thể hiện.
2.4 Lớp đối tượng
 Một lớp là một thiết kế (blueprint) hay mẫu (prototype)
cho các đối tượng cùng kiểu
 VD: lớp XeDap là một thiết kế chung cho nhiều đối tượng xe đạp
được tạo ra
 Lớp định nghĩa các thuộc tính và các phương thức chung
cho tất cả các đối tượng của cùng một loại nào đó
 Một đối tượng là một thể hiện cụ thể của một lớp.
 VD: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap
 Mỗi thể hiện có thể có những thuộc tính thể hiện khác
nhau
 VD: một xe đạp có thể đang ở bánh răng thứ 5 trong khi một xe khác
có thể là đang ở bánh răng thứ 3.
23
Ví dụ Lớp Xe đạp
24
Khai báo cho
lớp XeDap
Các đối tượng
của lớp
XeDap
2.5 Tương tác giữa các đối tượng
 Sự giao tiếp giữa các đối tượng trong thế giới
thực:
 Các đối tượng và sự tương tác giữa chúng trong
lập trình
 Các đối tượng giao tiếp với nhau bằng cách gửi thông điệp
(message)
25
Gọi hàm vs. Gửi thông điệp
 Gọi hàm (Call function)
Chỉ ra chính xác đoạn mã nào sẽ được thực hiện.
Chỉ có duy nhất một sự thực thi của một hàm với một tên
nào đó.
Không có hai hàm trùng tên.
 Gửi thông điệp
Yêu cầu một dịch vụ từ một đối tượng và đối tượng sẽ
quyết định cần phải làm gì.
Các đối tượng khác nhau sẽ có các cách thực thi các thông
điệp theo cách khác nhau.
26
Thông điệp vs. Phương thức
Thông điệp
 Được gửi từ đối tượng này đến đối tượng kia, không
bao gồm đoạn mã thực sự sẽ được thực thi.
Phương thức
 Thủ tục/hàm trong ngôn ngữ lập trình cấu trúc.
 Là sự thực thi dịch vụ được yêu cầu bởi thông điệp.
 Là đoạn mã sẽ được thực thi để đáp ứng thông điệp
được gửi đến cho đối tượng.
27
3/ NNLT JAVA
28
3.1. Java là gì?
 Java là một ngôn ngữ lập trình HĐT được phát
triển bởi Sun Microsystems, nay thuộc sở hữu của
Oracle.
• Ban đầu được sử dụng để xây dựng ứng dụng điều
khiển các bộ xử lý bên trong các thiết bị điện tử dân
dụng như máy điện thoại cầm tay, lò vi sóng…
 Java = 1 ngôn ngữ lập trình = 1 công nghệ = 1 nền
tảng phát triển
29
Green Team and James Gosling
(the leader)
3.2 Nền tảng Java
Mỗi sản phầm Java gồm:
 Bộ công cụ phát triển: J2SDK, JDK hay SDK (development kit)
• JDK = JRE + tools tiện ích (*.exe) + tài liệu + thư viện
 Môi trường chạy JRE (runtime environment): môi trường
thực thi
• JRE = JVM + Java runtime library (trên desktop)
• Server JRE: JRE trên server
 Máy ảo java JVM (virtual machine)
 Các đặc tả chi tiết kỹ thuật, Ngôn ngữ lập trình, Các công
nghệ đi kèm
Java hỗ trợ các platform
 Sun Solaris, Linux, Mac OS, FreeBSD & Microsoft
Windows.
30
Ví dụ các thành phần trong Java SE
31
3.3 Mô hình dịch của Java
 Mô hình biên dịch truyền thống
 Mã nguồn được biên dịch thành mã nhị phân/mã máy
 trên các platform khác nhau, mã máy là khác nhau
32
Src: guru99.com
3.3 Mô hình dịch của Java (2)
 Mô hình dịch của Java
 Tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write
Once, Run Anywhere" (WORA))
 Mã nguồn được biên dịch thành bytecode rồi được thông
dịch bởi JVM
33
Src: guru99.com
3.3 Mô hình dịch của Java (3)
 Máy ảo Java (Java Virtual Machine):
 Máy ảo Java là trái tim của ngôn ngữ Java
 Tạo ra môi trường bên trong để thực thi lệnh:
• Nạp các file .class
• Quản lý bộ nhớ
• Dọn “rác”
 Trình thông dịch “Just In Time - JIT”
• Chuyển tập lệnh bytecode thành mã máy cụ thể cho từng loại CPU.
34
3.4. Tính năng của Java
 Đơn giản, hướng đối tượng và quen thuộc.
 Mạnh mẽ và an toàn.
 Kiến trúc trung lập và di động.
 Thực thi với hiệu suất cao.
 Thông dịch, đa luồng và động.
 Dễ sử dụng cho người dùng Java.
35
3.4. Tính năng của Java (2)
 Đơn giản
 Từ khóa
• Java có 50 từ khóa
• So với Cobol hay VB có tới hàng trăm từ khóa
• Có ý nghĩa đặc biệt trong ngôn ngữ
• Được sử dụng để viết các câu lệnh
 Hướng đối tượng
 Java hỗ trợ phát triển phần mềm bằng cách sử dụng khái
niệm “đối tượng”
 Phần mềm được phát triển sử dụng Java bao gồm các lớp và
các đối tượng
36
3.4. Tính năng của Java (3)
 Mạnh mẽ
 Thư viện lớp: Hàng trăm lớp được viết trước với nhiều các
phương thức tiện ích.
 Java sử dụng mô hình con trỏ không cho phép truy cập trực
tiếp vào bộ nhớ; bộ nhớ không thể ghi đè.
 An toàn
 Java authentication dựa vào các phương pháp mã hóa
khóa công khai
 Mô hình con trỏ Java bảo vệ dữ liệu riêng tư trong các
đối tượng và ngăn các ứng dụng chưa được authorized
không được phép truy cập cấu trúc dữ liệu
37
3.4. Tính năng của Java (4)
 Kiến trúc trung lập, di động
 Hỗ trợ nhiều platform, "Write Once, Run Anywhere"
 Network capable
 Hỗ trợ phát triển các ứng dụng trong môi trường mạng
 Java hỗ trợ phát triển các ứng dụng phân tán
 Lý tưởng cho các ứng dụng Web
 Thực thi với hiệu suất cao
38
3.4. Tính năng của Java (5)
 Thông dịch
 Chương trình nguồn *.java được biên dịch thành *.class và
sau đó sẽ được thông dịch thành mã máy
 Đa luồng (Multi-threaded)
 Cho phép chương trình của bạn chạy nhiều hơn một tác vụ
tại cùng một thời điểm.
 Khả chuyển (Portable)
 Các chương trình có thể viết và biên dịch một lần, rồi chạy
trên các nền tảng khác
 Nhờ mô hình biên dịch/thông dịch
(WORE – Write Once, Run Everywhere)
39
3.5. Các ứng dụng của Java
40
ƯD trên thẻ thông minh, thẻ SIM
ƯD trên Clound
ƯD quy mô doanh nghiệp
ƯD trên thiết bị nhúng
ƯD trên thiết bị nhúng giới hạn tài nguyên
ƯD trên Windows sử dụng thiết bị nhúng
Phiên bản chuẩn, dành cho mọi ứng dụng
Phiên bản chuẩn, dành cho ứng dụng nhúng
ƯD trên TV thông minh
4/ CÀI ĐẶT MÔI TRƯỜNG LT
41
4.1 Các bước cài đặt Java
 Bước 1: Cài đặt JDK
 Bước 2: Cài đặt các biến môi trường (nếu dùng cmd)
 Bước 3: Cài trình soạn thảo hoặc IDE (Integrated
Development Environment )
 TextPad/JCreator/NetBean/Eclipse…
 Bước 4: Lập trình/Viết mã nguồn (HelloWorld.java)
 Bước 5: Dịch
 Gõ lệnh: javac HelloWorld.java
 Bước 6: Chạy chương trình
 Gõ lệnh: java HelloWorld.class
42
4.1 Các bước cài đặt Java (2)
 Trong Windows
 JAVA_HOME = C:Program FilesJavajdk1.6
 PATH = …;% JAVA_HOME%bin;
 CLASSPATH = C:Program FilesJavajdk1.6lib;.; C:Program
FilesJavajdk1.6include
 Trong Linux
 JAVA_HOME=/usr/lib/jvm/java-7-sun
 PATH=$PATH:$JAVA_HOME/bin
43
4.2. Chương trình ví dụ
// HelloWorld.java
// Chuong trinh hien thi dong chu “Hello World”
public class HelloWorld {
public static void main(String args[]){
System.out.println( “Hello World!" );
}
}
44
4.2. Chương trình ví dụ (2)
import javax.swing.JOptionPane;
public class FirstDialog{
public static void main(String[] args){
JOptionPane.showMessageDialog(null,
”Xin chao ban!”);
System.exit(0);
}
}
45
4.2. Chương trình ví dụ (3)
import javax.swing.JOptionPane;
public class HelloNameDialog{
public static void main(String[] args){
String result;
result = JOptionPane.showInputDialog(“Hay nhap
ten ban:”);
JOptionPane.showMessageDialog(null,
”Xin chao “+ result + “!”);
System.exit(0);
}
}
46
Bài tập
Bài 1. Cài đặt Java.
Bài 2. Cài đặt một trình IDE nào đó .
Bài 3. Chạy lại 3 ví dụ trong phần 4.
47

More Related Content

What's hot

Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Đông Lương
 
Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileNhuận Lê Văn
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_javaLam Man
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcmHong Phuoc Nguyen
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngNguyễn Quang Thiện
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngTráng Hà Viết
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcmHong Phuoc Nguyen
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbDũng Đinh
 
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpTráng Hà Viết
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thuaTuan Do
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaTráng Hà Viết
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 

What's hot (20)

Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
Lập Trình Hướng Đối Tượng trong Java ( Vietnamese )
 
Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaile
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
 
Ky thuat l.trinh_java
Ky thuat l.trinh_javaKy thuat l.trinh_java
Ky thuat l.trinh_java
 
Java Tieng Viet
Java Tieng VietJava Tieng Viet
Java Tieng Viet
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 
OOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối TượngOOP Review - Ôn tập Hướng Đối Tượng
OOP Review - Ôn tập Hướng Đối Tượng
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
Oop 0
Oop 0Oop 0
Oop 0
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
[Cntt] all java
[Cntt] all java[Cntt] all java
[Cntt] all java
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Oop 2
Oop 2Oop 2
Oop 2
 
Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
Oop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớpOop unit 03 xây dựng lớp
Oop unit 03 xây dựng lớp
 
Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Oop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừaOop unit 07 các kỹ thuật kế thừa
Oop unit 07 các kỹ thuật kế thừa
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 

Similar to Bai01 oop overview

Print_to_OOP.pdf
Print_to_OOP.pdfPrint_to_OOP.pdf
Print_to_OOP.pdfcLong52
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06xcode_esvn
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGTrường Phạm
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxdong92356
 
07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.pptssuser7627f6
 
Chuong 06
Chuong 06Chuong 06
Chuong 06volll
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oopHThu104
 
Lớp học lập trình android tại hà đông
Lớp học lập trình android tại hà đôngLớp học lập trình android tại hà đông
Lớp học lập trình android tại hà đôngEnter Focus
 

Similar to Bai01 oop overview (20)

Print_to_OOP.pdf
Print_to_OOP.pdfPrint_to_OOP.pdf
Print_to_OOP.pdf
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06Lap trinh huong_doi_tuong_cpp_dhct_lesson06
Lap trinh huong_doi_tuong_cpp_dhct_lesson06
 
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGBÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
 
Bai1
Bai1Bai1
Bai1
 
Bai1
Bai1Bai1
Bai1
 
Chapter1
Chapter1Chapter1
Chapter1
 
Lesson06
Lesson06Lesson06
Lesson06
 
lopvadoituong.pdf
lopvadoituong.pdflopvadoituong.pdf
lopvadoituong.pdf
 
Lesson06
Lesson06Lesson06
Lesson06
 
Các phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptxCác phương pháp phân tích thiết kế phần.pptx
Các phương pháp phân tích thiết kế phần.pptx
 
07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt07-ch14-OO design-sefdwaststratsrea8.ppt
07-ch14-OO design-sefdwaststratsrea8.ppt
 
bai tap oop
bai tap oopbai tap oop
bai tap oop
 
Oose design
Oose designOose design
Oose design
 
Chuong 06
Chuong 06Chuong 06
Chuong 06
 
2 introduction to oop
2 introduction to oop2 introduction to oop
2 introduction to oop
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Lớp học lập trình android tại hà đông
Lớp học lập trình android tại hà đôngLớp học lập trình android tại hà đông
Lớp học lập trình android tại hà đông
 
1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx1.OOP Introduction (1).pptx
1.OOP Introduction (1).pptx
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 

Recently uploaded

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 

Recently uploaded (20)

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 

Bai01 oop overview

  • 1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 01. Tổng quan về OOP 1 Mã HP: IT3100
  • 2. Mục tiêu bài học  Tìm hiểu tổng quan về Công nghệ lập trình hướng đối tượng  Khái niệm, Ưu điểm, vai trò, ứng dụng, Sự phát triển các ngôn ngữ lập trình  Tìm hiểu về Đối tượng và lớp  Đối tượng, trạng thái, hành vi  Lớp, thuộc tính, phương thức  Tương tác giữa các đối tượng (thông điệp, giao diện)  Tìm hiểu Ngôn ngữ lập trình Java  Giới thiệu về Java, Nền tảng Java, Mô hình dịch Java  Tính năng và ứng dụng của Java  Cài đặt môi trường lập trình 2
  • 3. Nội dung 1. Công nghệ hướng đối tượng (HĐT) 2. Đối tượng và lớp 3. Ngôn ngữ lập trình Java 4. Cài đặt môi trường lập trình 3
  • 5. 1.1. Kỹ thuật lập trình  Kỹ thuật lập trình: Kỹ thuật thực thi một giải pháp phần mềm (cấu trúc dữ liệu + giải thuật) dựa trên nền tảng một phương pháp luận (methodology) và một hoặc nhiều ngôn ngữ lập trình phù hợp với yêu cầu đặc thù của ứng dụng  Ngôn ngữ lập trình  Là ngôn ngữ được chuẩn hóa  Cả con người và máy tính có thể đọc và hiểu được  Sử dụng chương trình dịch tương ứng để biên dịch toàn bộ chương trình nguồn thành mã máy trước khi thực hiện 5
  • 6. 1.2. Sự phát triển của ngôn ngữ lập trình 6 Ngôn ngữ máy Lập trình tuần tự Hướng cấu trúc/thủ tục Hướng đối tượng Assembly language
  • 7. Hướng cấu trúc vs. Hướng ĐT  Hướng cấu trúc/thủ tục: data structures + algorithms = Program (cấu trúc dữ liệu + giải thuật = Chương trình)  Hướng đối tượng: objects + messages = Program (đối tượng + thông điệp = Chương trình) 7
  • 8. 1.3. Lập trình hướng đối tượng  Thể hiện các thành phần của bài toán là các “đối tượng” (object).  Hướng đối tượng là một kỹ thuật để mô hình hóa hệ thống thành nhiều đối tượng tương tác với nhau 8 "Tất cả mọi thứ đều là đối tượng" -Alan Kay Object-oriented modeling House Tom Car Flower House Tom Car Flower lives in drives Model Reality gets
  • 9. 1.4 Công nghệ đối tượng (OOT)  Công nghệ đối tượng là một tập các quy tắc (trừu tượng hóa, đóng gói, đa hình), các hướng dẫn để xây dựng phần mềm, cùng với ngôn ngữ, cơ sở dữ liệu và các công cụ khác hỗ trợ các quy tắc này.  Các mốc chính của công nghệ đối tượng 9 (Object Technology - A Manager’s Guide, Taylor, 1997) Simula 1967 C ++ Late 1980s Smalltalk 1972 Java 1991 The UML 1996 UML 2 2004
  • 10. 1.4.1 OOT được sử dụng ở đâu?  Các hệ thống Client/Server và phát triển Web  Hệ nhúng (embedded system)  Hệ thống thời gian thực (real- time)  Hệ thống phần mềm nói chung… 10
  • 11. 1.5. Các nguyên lý cơ bản của OOT 11 Trừu tượng hóa Đa hình Hướng đối tượng Đóng gói Thừa kế
  • 12. 1.5.1 Trừu tượng hóa (Abstraction)  Là quá trình loại bỏ đi các thông tin/tính chất cụ thể và giữ lại những thông tin/tính chất chung.  Tập trung vào các đặc điểm cơ bản của thực thể, các đặc điểm phân biệt nó với các loại thực thể khác.  Phụ thuộc vào góc nhìn  Quan trọng trong ngữ cảnh này nhưng lại không có ý nghĩa nhiều trong ngữ cảnh khác. 12
  • 13. Ví dụ: Trừu tượng hóa 13 Phụ thuộc vào góc nhìn
  • 14. 1.5.2 Đóng gói (Encapsulation)  Che giấu, ẩn đi chi tiết thực hiện bên trong  Cung cấp cho thế giới bên ngoài một giao diện • Việc sử dụng không ảnh hưởng bởi chi tiết bên trong. 14
  • 15. 1.5.3. Thừa kế (Inheritance)  Xếp hạng hay xếp thứ tự các mức trừu tượng vào một cấu trúc cây  Các phần tử ở cùng cấp trong sơ đồ phân cấp thì có cùng mức trừu tượng hóa 15 Giảm mức độ trừu tượng hóa Gia tăng mức độ trừu tượng hóa Vehicle Automobile Motorcycle Bus Sedan Sports Car School Bus Luxury Bus
  • 16. 1.5.4. Đa hình (polymorphism)  Đa hình: “one name, many forms”  Nạp chồng phương thức: phương thức cùng tên, nhưng hoạt động khác nhau Add(int x, int y) Add(float x, float y) Add(float x, float y, float z)  Ghi đè phương thức (Method Overriding) Một Intern (thực tập sinh) là một Intern, đồng thời cũng có thể được xem là một Staff (nhân viên) Phương thức quẹt thẻ của Intern khác với phương thức quẹt thẻ của Staff 16
  • 17. 2/ ĐỐI TƯỢNG VÀ LỚP 17
  • 18. 2.1 Đặc tính của LT HĐT  Alan Kay đã tổng hợp các đặc tính của LT HĐT: 1. Tất cả đều là đối tượng 2. Mỗi đối tượng đều có dạng đặc trưng của lớp các đối tượng đó 3. Tất cả các đối tượng thuộc về cùng một lớp đều có các hành vi giống nhau 4. Chương trình phần mềm có thể coi là một tập hợp các đối tượng tương tác với nhau thông qua hành vi đối tượng 5. Mỗi đối tượng trong chương trình có các dữ liệu độc lập của mình và chiếm bộ nhớ riêng của mình. 18
  • 19. 2.2 Đối tượng là gì?  Đối tượng trong thế giới thực, là một thực thể cụ thể mà thông thường chúng ta có thể sờ, nhìn thấy hay cảm nhận được.  Tất cả có trạng thái (state) và hành vi (behaviour) 19
  • 20. 2.2.1 Trạng thái và hành vi  Hành vi quyết định đối tượng đó hành động và đáp trả như thế nào đối với bên ngoài.  Hành vi nhìn thấy được của một đối tượng được mô hình thành một tập các thông điệp nó có thể đáp trả (các thao tác mà đối tượng đó thực hiện). 20 Trạng thái của một đối tượng là một trong các điều kiện tại đó mà đối tượng tồn tại. Trạng thái của một đối tượng có thể thay đổi theo thời gian.
  • 21. 2.3 Đối tượng phần mềm  Các đối tượng phần mềm được dùng để biểu diễn các đối tượng thế giới thực.  Cũng có trạng thái và hành vi  Trạng thái: thuộc tính (attribute; property)  Hành vi: phương thức (method) 21
  • 22. Ví dụ đối tượng phần mềm 22 Đối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính và các phương thức liên quan. Đối tượng phần mềm Đối tượng phần mềm Xe Đạp Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc tính thể hiện. Một đối tượng cụ thể được gọi là một thể hiện.
  • 23. 2.4 Lớp đối tượng  Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu  VD: lớp XeDap là một thiết kế chung cho nhiều đối tượng xe đạp được tạo ra  Lớp định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó  Một đối tượng là một thể hiện cụ thể của một lớp.  VD: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap  Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau  VD: một xe đạp có thể đang ở bánh răng thứ 5 trong khi một xe khác có thể là đang ở bánh răng thứ 3. 23
  • 24. Ví dụ Lớp Xe đạp 24 Khai báo cho lớp XeDap Các đối tượng của lớp XeDap
  • 25. 2.5 Tương tác giữa các đối tượng  Sự giao tiếp giữa các đối tượng trong thế giới thực:  Các đối tượng và sự tương tác giữa chúng trong lập trình  Các đối tượng giao tiếp với nhau bằng cách gửi thông điệp (message) 25
  • 26. Gọi hàm vs. Gửi thông điệp  Gọi hàm (Call function) Chỉ ra chính xác đoạn mã nào sẽ được thực hiện. Chỉ có duy nhất một sự thực thi của một hàm với một tên nào đó. Không có hai hàm trùng tên.  Gửi thông điệp Yêu cầu một dịch vụ từ một đối tượng và đối tượng sẽ quyết định cần phải làm gì. Các đối tượng khác nhau sẽ có các cách thực thi các thông điệp theo cách khác nhau. 26
  • 27. Thông điệp vs. Phương thức Thông điệp  Được gửi từ đối tượng này đến đối tượng kia, không bao gồm đoạn mã thực sự sẽ được thực thi. Phương thức  Thủ tục/hàm trong ngôn ngữ lập trình cấu trúc.  Là sự thực thi dịch vụ được yêu cầu bởi thông điệp.  Là đoạn mã sẽ được thực thi để đáp ứng thông điệp được gửi đến cho đối tượng. 27
  • 29. 3.1. Java là gì?  Java là một ngôn ngữ lập trình HĐT được phát triển bởi Sun Microsystems, nay thuộc sở hữu của Oracle. • Ban đầu được sử dụng để xây dựng ứng dụng điều khiển các bộ xử lý bên trong các thiết bị điện tử dân dụng như máy điện thoại cầm tay, lò vi sóng…  Java = 1 ngôn ngữ lập trình = 1 công nghệ = 1 nền tảng phát triển 29 Green Team and James Gosling (the leader)
  • 30. 3.2 Nền tảng Java Mỗi sản phầm Java gồm:  Bộ công cụ phát triển: J2SDK, JDK hay SDK (development kit) • JDK = JRE + tools tiện ích (*.exe) + tài liệu + thư viện  Môi trường chạy JRE (runtime environment): môi trường thực thi • JRE = JVM + Java runtime library (trên desktop) • Server JRE: JRE trên server  Máy ảo java JVM (virtual machine)  Các đặc tả chi tiết kỹ thuật, Ngôn ngữ lập trình, Các công nghệ đi kèm Java hỗ trợ các platform  Sun Solaris, Linux, Mac OS, FreeBSD & Microsoft Windows. 30
  • 31. Ví dụ các thành phần trong Java SE 31
  • 32. 3.3 Mô hình dịch của Java  Mô hình biên dịch truyền thống  Mã nguồn được biên dịch thành mã nhị phân/mã máy  trên các platform khác nhau, mã máy là khác nhau 32 Src: guru99.com
  • 33. 3.3 Mô hình dịch của Java (2)  Mô hình dịch của Java  Tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA))  Mã nguồn được biên dịch thành bytecode rồi được thông dịch bởi JVM 33 Src: guru99.com
  • 34. 3.3 Mô hình dịch của Java (3)  Máy ảo Java (Java Virtual Machine):  Máy ảo Java là trái tim của ngôn ngữ Java  Tạo ra môi trường bên trong để thực thi lệnh: • Nạp các file .class • Quản lý bộ nhớ • Dọn “rác”  Trình thông dịch “Just In Time - JIT” • Chuyển tập lệnh bytecode thành mã máy cụ thể cho từng loại CPU. 34
  • 35. 3.4. Tính năng của Java  Đơn giản, hướng đối tượng và quen thuộc.  Mạnh mẽ và an toàn.  Kiến trúc trung lập và di động.  Thực thi với hiệu suất cao.  Thông dịch, đa luồng và động.  Dễ sử dụng cho người dùng Java. 35
  • 36. 3.4. Tính năng của Java (2)  Đơn giản  Từ khóa • Java có 50 từ khóa • So với Cobol hay VB có tới hàng trăm từ khóa • Có ý nghĩa đặc biệt trong ngôn ngữ • Được sử dụng để viết các câu lệnh  Hướng đối tượng  Java hỗ trợ phát triển phần mềm bằng cách sử dụng khái niệm “đối tượng”  Phần mềm được phát triển sử dụng Java bao gồm các lớp và các đối tượng 36
  • 37. 3.4. Tính năng của Java (3)  Mạnh mẽ  Thư viện lớp: Hàng trăm lớp được viết trước với nhiều các phương thức tiện ích.  Java sử dụng mô hình con trỏ không cho phép truy cập trực tiếp vào bộ nhớ; bộ nhớ không thể ghi đè.  An toàn  Java authentication dựa vào các phương pháp mã hóa khóa công khai  Mô hình con trỏ Java bảo vệ dữ liệu riêng tư trong các đối tượng và ngăn các ứng dụng chưa được authorized không được phép truy cập cấu trúc dữ liệu 37
  • 38. 3.4. Tính năng của Java (4)  Kiến trúc trung lập, di động  Hỗ trợ nhiều platform, "Write Once, Run Anywhere"  Network capable  Hỗ trợ phát triển các ứng dụng trong môi trường mạng  Java hỗ trợ phát triển các ứng dụng phân tán  Lý tưởng cho các ứng dụng Web  Thực thi với hiệu suất cao 38
  • 39. 3.4. Tính năng của Java (5)  Thông dịch  Chương trình nguồn *.java được biên dịch thành *.class và sau đó sẽ được thông dịch thành mã máy  Đa luồng (Multi-threaded)  Cho phép chương trình của bạn chạy nhiều hơn một tác vụ tại cùng một thời điểm.  Khả chuyển (Portable)  Các chương trình có thể viết và biên dịch một lần, rồi chạy trên các nền tảng khác  Nhờ mô hình biên dịch/thông dịch (WORE – Write Once, Run Everywhere) 39
  • 40. 3.5. Các ứng dụng của Java 40 ƯD trên thẻ thông minh, thẻ SIM ƯD trên Clound ƯD quy mô doanh nghiệp ƯD trên thiết bị nhúng ƯD trên thiết bị nhúng giới hạn tài nguyên ƯD trên Windows sử dụng thiết bị nhúng Phiên bản chuẩn, dành cho mọi ứng dụng Phiên bản chuẩn, dành cho ứng dụng nhúng ƯD trên TV thông minh
  • 41. 4/ CÀI ĐẶT MÔI TRƯỜNG LT 41
  • 42. 4.1 Các bước cài đặt Java  Bước 1: Cài đặt JDK  Bước 2: Cài đặt các biến môi trường (nếu dùng cmd)  Bước 3: Cài trình soạn thảo hoặc IDE (Integrated Development Environment )  TextPad/JCreator/NetBean/Eclipse…  Bước 4: Lập trình/Viết mã nguồn (HelloWorld.java)  Bước 5: Dịch  Gõ lệnh: javac HelloWorld.java  Bước 6: Chạy chương trình  Gõ lệnh: java HelloWorld.class 42
  • 43. 4.1 Các bước cài đặt Java (2)  Trong Windows  JAVA_HOME = C:Program FilesJavajdk1.6  PATH = …;% JAVA_HOME%bin;  CLASSPATH = C:Program FilesJavajdk1.6lib;.; C:Program FilesJavajdk1.6include  Trong Linux  JAVA_HOME=/usr/lib/jvm/java-7-sun  PATH=$PATH:$JAVA_HOME/bin 43
  • 44. 4.2. Chương trình ví dụ // HelloWorld.java // Chuong trinh hien thi dong chu “Hello World” public class HelloWorld { public static void main(String args[]){ System.out.println( “Hello World!" ); } } 44
  • 45. 4.2. Chương trình ví dụ (2) import javax.swing.JOptionPane; public class FirstDialog{ public static void main(String[] args){ JOptionPane.showMessageDialog(null, ”Xin chao ban!”); System.exit(0); } } 45
  • 46. 4.2. Chương trình ví dụ (3) import javax.swing.JOptionPane; public class HelloNameDialog{ public static void main(String[] args){ String result; result = JOptionPane.showInputDialog(“Hay nhap ten ban:”); JOptionPane.showMessageDialog(null, ”Xin chao “+ result + “!”); System.exit(0); } } 46
  • 47. Bài tập Bài 1. Cài đặt Java. Bài 2. Cài đặt một trình IDE nào đó . Bài 3. Chạy lại 3 ví dụ trong phần 4. 47