Tải bản đầy đủ (.pdf) (32 trang)

GIÁO TRÌNH LẬP TRÌNH JAVA 1 (LỚP VÀ ĐỐI TƯỢNG)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.16 MB, 32 trang )

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


,


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,

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



×