L P TRÌNH JAVA 1
BÀI 4: L P VÀ
IT
NG
M C TIÊU
K t thúc bài h c này b n có kh n ng
Hi u rõ khái ni m i t ng và l p
Mô hình hóa l p và i t ng
nh ngh a
c l p và t o i t ng
nh ngh a các tr ng, ph ng th c
nh ngh a và s d ng hàm t o
Hi u và s package
S d ng thành th o các c t truy xu t
Hi u
c tính che d u (encapsulation)
KHÁI NI M V
IT
NG
Bi u di n i t ng trong th gi i th c
M i i t ng
c c tr ng b i các thu c tính
và các hành vi riêng c a nó
C
c i m
Hãng s n xu t
Model
N m
Màu
Hành vi (Ô tô có th làm gì?)
Kh i ng
D ng
Phanh
B t c n g t n
c
I M VÀ HÀNH VI
CLASS LÀ GÌ?
Nhóm các Xe ô-tô
Nhóm các
ng v t
NH NGH A L P
L p là m t khuôn m u
c s d ng
mô t
các i t ng cùng lo i.
L p bao g m các thu c tính (tr ng d li u) và
các ph ng th c (hàm thành viên)
THU C TÍNH & PH
Thu c tính (field)
Ph
Danh
Hãng s n xu t
Model
N m
Màu
ng th c (method)
Đ
Kh i ng()
D ng()
Phanh()
B t c n g t n
c()
NG TH C
MÔ HÌNH L P VÀ
IT
Ô tô
Ô tô c a D ng
Thu c tính
• N m = 2010
• Nhà SX=Honda
• Model = Accord
• Màu = Xanh
Ph ng th c
• Kh i đ ng
• D ng
• Phanh
Thu c tính
• N m
• Nhà s n xu t
• Model
• Màu
Ph ng th c
• Kh i đ ng
• D ng
• Phanh
Ô tô c a Mai
Thu c tính
• N m = 2012
• Nhà SX=BMW
• Model = CS30
• Màu = B c
Ph ng th c
• Kh i đ ng
• D ng
• Phanh
NG
TÍNH TR U T
NG
(ABSTRACTION)
Abstraction là công vi c l a ch n các thu c tính
và hành vi c a th c th v a
mô t th c th
ó trong m t b i c nh c th mà không ph i li t
kê t t c các thu c tính, hành vi c a th c th có.
Ví d : Mô t m t sinh viên ngành CNTT có r t
nhi u thu c tính và hành vi.
ây chúng ta ch
s d ng mã, h và tên, i m, ngành mà thôi,
không c n thi t ph i mô t cao, n ng, hát, c i,
nh y cò cò…
NH NGH A CLASS
class <<ClassName>>
{
<<type>> <<field1>>;
…
<<type>> <<fieldN>>;
}
Khai báo các
Khai báo các
<<type>> <<method1>>([parameters]) {
// body of method
}
…
<<type>> <<methodN>>([parameters]) {
// body of method
}
VÍ D
NH NGH A L P
T
P
L
Employee có 2
tính là fullname và salary và 2
là input() và output()
T O
IT
NG
o n mã sau s d ng l p Employee
t om t
nhân viên sau ó g i các ph ng th c c a l p.
Chú ý:
Toán t new
c s d ng
t o i t ng
Bi n emp ch a tham chi u t i i t ng
S d ng d u ch m (.)
truy xu t các thành viên c a
l p (tr ng và ph ng th c).
DEMO
T
tên,
mô sinh viên bao
và các
và
,
NH NGH A PH
NG TH C
Ph ng th c là m t mô- un mã th c hi n m t
công vi c c th nào ó
Trong l p Employee có 2 ph
output()
ng th c là input() và
Ph ng th c có th có m t ho c nhi u tham s
Ph ng th c có th có ki u tr v ho c void
(không tr v gì c )
Cú pháp
<<
{
>> <
// thân
}
>> ([danh sách tham
])
VÍ D PH
K
NG TH C
là void nên thân
không
return giá
K
là double nên thân
return
MÔ HÌNH PH
Mô hình
P
{Tham
}
{K
(
}
)
Ví d
{a, b}
Math.min()
{min}
{fullname, salary}
setInfo()
{}
{}
incomeTax()
{T
}
NG TH C
N P CH NG PH
NG TH C (OVERLOADING)
Trong m t l p có th có nhi u ph ng th c
cùng tên nh ng khác nhau v tham s (ki u, s
l ng và th t )
public class MyClass{
void method(){…}
void method(int x){…}
void method
{…}
void method(int x, double y){…}
}
Trong l p MyClass có 4 ph ng th c cùng tên là
method nh ng khác nhau v tham s
VÍ D N P CH NG PH
Xét tr
NG TH C
ng h p overload sau
class MayTinh{
int tong(int
int tong(int
}
int b){return a + b;}
int b, int {return a + b + c;}
V i l p trên, b n có th s d ng
ho c 3 s nguyên.
MayTinh mt = new MayTinh();
int t1 =
(5, 7);
int t2 =
(5, 7, 9);
tính t ng 2
HÀM T O (CONSTRUCTOR)
Hàm t o là m t ph ng th c
d ng
t o i t ng.
c i m c a hàm t o
c bi t
cs
Tên trùng v i tên l p
Không tr l i giá tr
Ví d
L
public class ChuNhat{
double dai,
;
C N (double dai, double
){
this.dai = dai;
Đ
=
;
}
ChuNhat cn1 = new ChuNhat(20, 15);
}
ChuNhat cn2 = new ChuNhat(50, 25);
HÀM T O (CONSTRUCTOR)
Trong m t l p có th
nh ngh a nhi u hàm t o
khác tham s , m i hàm t o cung c p 1 cách t o
i t ng.
N u không khai báo hàm t o thì Java t
ng
cung c p hàm t o m c nh (không tham s )
public class ChuNhat{
double dai,
;
C N (double dai, double
){
this.dai = dai;
=
;
}
C N (double canh){
this.dai = canh;
= canh;
ChuNhat cn = new ChuNhat(20, 15);
}
ChuNhat vu= new ChuNhat(30);
}
T KHÓA THIS
this
c s d ng
i di n cho i t ng
hi n t i.
this
c s d ng trong l p
tham chi u t i
các thành viên c a l p (field và method)
S d ng this.field
phân bi t field v i các bi n
c c b ho c tham s c a ph ng th c
public class MyClass{
int field;
void method(int field){
this.field = field;
}
T
Tham
}
SinhVien
+ hoTen S
+ diemTB: double
+ xepLoai S
+ xuat(): void
+ nhap(): void
+ SinhVien()
+ SinhVien(hoTen, diemTB)
DEMO
Xây
mô sinh viên
mô hình trên.
T
nhap() cho phép
tên và
bàn phím; xuat() cho phép
tên,
và
ra màn hình; xepLoai()
vào
S
2 hàm
2
sinh viên
PACKAGE
Package
c s d ng
chia các class và
interface thành t ng gói khác nhau.
Vi c làm này t ng t qu n lý file trên
class (file) và package (folder)
a trong ó
Ví d sau t o l p MyClass thu c gói com.poly
com.poly;
public class MyClass{…}
Trong Java có r t nhi u gói
n ng
c phân theo ch c
java.util: ch a các l p ti n ích
java.io: ch a các l p vào/ra d li u
java.lang: ch a các l p th ng dùng…
IMPORT PACKAGE
L nh import
c s d ng
ch ra l p ã
c
nh ngh a trong m t package
Các l p trong gói java.lang và các l p cùng nh
ngh a trong cùng m t gói v i l p s d ng s
c import ng m nh
com.polyhcm;
import com.poly.MyClass;
import java.util.Scanner;
public class HelloWorld{
M C
S
}
}
S
){
obj = new MyClass();
scanner = new Scanner(System.in);
CT
TRUY XU T
c t truy xu t
c s d ng
nh ngh a kh
n ng cho phép truy xu t n các thành viên c a
l p. Trong java có 4 c t khác nhau:
private: ch
c phép s d ng n i b trong class
public: công khai hoàn toàn
{default}:
Là public i v i các l p truy xu t cùng gói
Là private v i các l p truy xu t khác gói.
protected: t ng t {default} nh ng cho phép k
th a dù l p con và cha khác gói.
M c
che d u t ng d n theo chi u m i tên