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

Tài liệu BÀI 2 À XÂY DỰNG LỚP VÀ ĐÀO TẠO ĐỐI TƯỢNG JAVA pot

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 (897.83 KB, 48 trang )

À
B
À
I 2
XÂY DỰNG LỚPVÀĐÀO TẠO
XÂY

DỰNG

LỚP



ĐÀO

TẠO

ĐỐI TƯỢNG JAVA
GIẢNG VIÊN TRẦNTHỊ VÂN
GIẢNG

VIÊN
:
TRẦN

THỊ

VÂN
v1.0011107228
1
TÌNH HUỐNG DẪN NHẬP


Bài
toán
:
M
ô
phỏng
sự
hoạt
động
Bài
toán
:
M
ô
phỏng
sự
hoạt
động
củamộtchiếc đèn pin.
Lâm là sinh viên, anh đang xây dựng
è
chương trình nghiên cứuvề s

hoạt
động củachiếc đèn pin thường dùng.
Qua
tìm
hiểu
Lâm
thấy


2
yếu
tố
liên
Pin (Battery)
Đ
è
n (FlashLamp)
Qua
tìm
hiểu
Lâm
thấy

2
yếu
tố
liên
quan đến đèn pin là: pin (battery) và
đèn (flashlamp).
Chứa năn
g


n
g
Sử dụng năng lượng
Pin mang trong mình thông tin về trạng
thái năng lượng củanó.Đèn sẽ sử dụng

p
in đ

cun
g
cấ
p
năn
g


n
g
cho ho

t
g ợ g
p
g
p
g
ợ g

động chiếusáng.Vậycósự tương tác và
trao đổi thông tin giữa đèn và pin.
Vậy theo Anh/chị để biểu diễn chi tiết thông tin cùng sự hoạt động của đèn-pin
và s

tươn
g

tác trao đổi năn
g


n
g

g
iữa đèn-
p
in
,
Lâm nên làm thế nào?

v1.0011107228
2
ự g g ợ gg
p,
MỤC TIÊU BÀI HỌC
Trình bày được khái niệm về lớp, thuộc tính của lớp, phương thức, đối tượng.
Mô tả cách tạo lớp, thuộc tính và phương thức củalớp, cách tạovà sử dụng
đốitượng trong Java
đối

tượng

trong

Java
.

Xây dựng được chương trình Java có sử dụng lớp với đầy đủ loại thuộc tính,
tạo đối tượng.
v1.0011107228
3
NỘI DUNG
1
Thuộctínhvàcáchthứcmôtả thuộctínhcủa đốitượng trong lớp.
2
Phương thứcvàcáchthứcmôtả phương thứctronglớp.
3
Vấn đề giao tiếpgiữacácđốitượng.
v1.0011107228
4
2.1. THUỘC TÍNH CỦA ĐỐI TƯỢNG
Biến, kiểudữ liệu–Toántử và biểuthức.
1.1
1
Khai báo thuộctínhcủa đốitượng.
1.1
2
Cá h

à
á


h ộ
íh



c
h
truy xu

tv
à
oc
á
cg

tr

t
h
u

ct
í
n
h
c

a
đốitượng.
1.1
3
v1.0011107228
5
2.1.1. BIẾN VÀ KIỂU DỮ LIỆU
• Biến:

 Khái niệmdùngđể đạidiệnchomộtvị trí nào đó trong vùng nhớ,nơichứacác
giá trị có thể truy xuất được thông qua tên biến;

Biến
cần
phải
được
khai
báo
trước
khi
sử
dụng
;

Biến
cần
phải
được
khai
báo
trước
khi
sử
dụng
;
 Cú pháp khai báo biến:
<kiểudữ liệu> <tên biến>;
 Ví dụ biến energy (năng lượng củapin)có kiểusố nguyên:
int energy;

• Quy tắc đặttênbiến:


biế
hỉ
đượ

d
á
hữ
ái
à
hữ


hiệ
à

hiệ
$


n
biế
nc
hỉ
đượ
cs

d

ụng c
á
cc
hữ
c
ái
v
à
c
hữ
s

,

hiệ
u
_
v
à

hiệ
u
$
;
 Tên biếnkhôngđượcbắt đầubằng chữ số;

T
ên biếnkhôn
g
đư


ctrùn
g
vớit

khóa ho

ccácđ

nh danh đãdùn
g
tron
g
Java
;
g

g


g
g
;
 Java là ngôn ngữ phân biệtchữ hoa, chữ thường.
• Những quy ước nên tuân theo khi đặttênbiến:

T
ên biếnnêncóýnghĩarõràng;
 Tên biếnnênbắt đầubằng chữ cái thường, khi trong tên có nhiềuhơnmộttừ
thì

các
từ
sau
đó
nên
viết
hoa
;
v1.0011107228
6
thì
các
từ
sau
đó
nên
viết
hoa
;
 Ví dụ: oddNumber, evenNumber, theBestStudent.
Căn
cứ
vào
vị
trí
khai
báo
biến
ta


:
2.1.1. BIẾN VÀ KIỂU DỮ LIỆU (tiếp theo)
Căn
cứ
vào
vị
trí
khai
báo
biến
ta

:
•Biếnkhaibáongaytronglớp: thường gọilàcác
trường
.Từđây sẽ là khuôn
mẫutạoracác
biế
n
thuộ
c
đố
i
tượn
g
dùn
g
đ

lưutr


các
g
iá trị thuộctínhcủa
g
g
g
đốitượng.
•Biến khai báo bên trong phương thứcvàcáckhốilệnh trong đó: thường gọilà
biến
địa
phương
Biến
địa
phương
sẽ
hết
giá
trị
sử
dụng
khi
ra
khỏi
khối
lệnh
biến
địa
phương
.

Biến
địa
phương
sẽ
hết
giá
trị
sử
dụng
khi
ra
khỏi
khối
lệnh
.
•Biếnkhaibáobêntrongvùngdanhsáchcácthamsố củaphương thứchoặc
h
à
m
tạo
:
t
h
ườ
n
g
gọ
il
à
t

h
am
số
hìn
h
t
h
ức
.
à
tạo
t ườ g
gọ
à
ta
số
t ức
v1.0011107228
7
Trong Java, có 2 nhóm kiểudữ liệumàbiếncóthể lưutrữ hoặctruyxuất:
2.1.1. BIẾN VÀ KIỂU DỮ LIỆU (tiếp theo)
Kiểu dữ liệu
Kiểu dữ liệu cơ sở
(Primitive data types)
Kiểu dữ liệu tham chiếu
(Reference data types)
Kiểudữ liệuMô tả
byte
8
-

bit
số
nguyên

dấu
Kiểudữ liệuMôtả
Array
Tập
các
phần
tử
thuộc
cùng
byte
8
-
bit
,
số
nguyên

dấu
short 16-bit, số nguyên có
dấu
Array
Tập
các
phần
tử
thuộc

cùng
mộtkiểudữ liệu
Class Tậpcácđốitượng có cùng
long 64-bit, số nguyên có
dấu
thuộc tính và hành vi
Interface
int 32-bit, số nguyên có
dấu
float
32
bit
số
thực
v1.0011107228
8
float
32
-
bit
,
số
thực
boolean Lưutrữ giá trịđúng/sai
char
16
-
bit

tự

2.1.2. CÁC PHÉP TOÁN VÀ BIỂU THỨC
•Javachophépsử dụng biếnvớicácgiátrị như là các toán hạng kếthợpvớicác
toán tửđểxây dựng biểuthức.
• Các toán tử cơ bảntrongJavagồm:
 Toán tử gán: =, +=, -=, *=, %=
 Toán tử số học: +, -, *, /, %
 Toán tử quan hệ: <, >, <=, >=, ==, !=

T
oán t

logic: &&, ||, !
 Toán tử bitwise: ^, >>, <<

T
oán t

lượng giá: ?:
v1.0011107228
9
2.1.3. MÔ TẢ THUỘC TÍNH CỦA ĐỐI TƯỢNG TRONG LỚP

Thuộc
tính

những
đặc
điểm
đặc
trưng

của
đối
tượng
thể
hiện
thông
qua

Thuộc
tính

những
đặc
điểm
đặc
trưng
của
đối
tượng
,
thể
hiện
thông
qua
những giá trị cụ thể.
•S

dụn
g
các trườn

g
đ

lưutr

g
iá trị thuộctínhcủa đốitượn
g
.Cúphápkhai
g
g
g
g
báo trường:
<bổ_từ_truy_xuất> <kiểu_dữ_liệu> <tên_biến>;
private int energy;
private

int

energy;
Thuộc tính energy của
đốitượng battery
đối

tượng

battery
v1.0011107228
10

2.1.4. ĐẶC ĐIỂM CỦA BIẾN THUỘC ĐỐI TƯỢNG
(INSTANCE VARIABLE)
•Vídụ khai báo các trường name và
energy trong lớp Battery như sau:
•Cáctrường có phạmvihoạt động bên
trong class.




•M

im

t đ

itượng khi đượctạoras

có một biếnname,và biếnenergy
riên
g,
do v
ậy,
mỗi đốitư

n
g
p
in man
g

public class Battery {
/
**
g,
ậy,
ợ g
p
g
những giá trị thuộc tính khác nhau.
/
* Fields
*/
private String name;
private int energy;
/
Batter
/
**
* Constructor for objects
of class Battery
*/
public Battery(int energy) {
Batter
y
energy=80
e
nergy=30
public

Battery(int

_
energy)

{
name = "Con tho";
this.energy = _energy;
}
}
energy=50
v1.0011107228
11
energy=40
CÂU HỎI THẢO LUẬN
Vậy
qua
tìm
hiểu
phần
thứ
nhất
bạn
nào

thể
cho
tôi
biết
sự
Vậy
qua

tìm
hiểu
phần
thứ
nhất
,
bạn
nào

thể
cho
tôi
biết
sự
khác nhau giữabiến địaphương và biếnthuộc đốitượng?
v1.0011107228
12
2.1.5. KHỞI TẠO CÁC GIÁ TRỊ CHO THUỘC TÍNH
•Cácđốitư

n
g
khi đư

ct

oracần
p
hải đư


ckhởit

ocác
g
iá tr

ban đầu.
ợ g


p


g

• Các cách thứckhởitạogiátrị cho thuộc tính:
 Khởitạo ngay sau khai báo trường;
 KhởitạotrongHàmtạo;
 Khởitạotừ các giá trị truyềnvàotừ tham số củaphương thức.
public class Battery {
/
**
Trường energy sẽ có giá trị là -1 với
mọi đốitượng đượctạo
*
Fields
*/
private String name;
private int energy = -1;
/**

mọi

đối

tượng

được

tạo
Trường name sẽ có giá trị “con tho”
khi
khởi
t
từ

t
/**
* Constructor for objects
of class Battery
*/
pub
li
c
B
atte
r
y(
in
t


e
n
e
r
gy)

{
khi
khởi
t
ạo
từ

m
t
ạo.
T
rườn
g
name và ener
gy
có th

được
pub c atte y( t _e e gy) {
name = "Con tho";
this.energy = _energy;
}
}
g

gy
khởitạotừ các giá trị truyềnvàotừ
tham số củaphương thứchoặchàmtạo.
v1.0011107228
13
2.1.6. CÁCH THỨC TRUY XUẤT VÀO THUỘC TÍNH

Mặc
định
các
trường
với
chỉ
định
truy
xuất

private
sẽ
không
thể
đọc/ghi
được

Mặc
định
,
các
trường
với

chỉ
định
truy
xuất

private
sẽ
không
thể
đọc/ghi
được
trựctiếptừ các đốitượng bên ngoài.
• Để kiểm soát khả năng truy xuấtvàocácbiếnnàytasử dụng phương pháp gián tiếp
thông qua các cặpphương thức get/set (còn gọi là các getter/setter).
•Nếumộttrường có cả hai phương
public class Battery{
private int energy;
public Battery(){
energ 100
thức get/set thì đượccoilà
trường có đặctínhđọc/ghi.

Nếu
một
trường
chỉ

phương
energ
y=

100
;
}
public void setEnergy(int value) {
e
ner
gy
=value;

Nếu
một
trường
chỉ

phương
thứcgetthìcónghĩalàchỉđọc.
•Nếumộttrường chỉ có phương
gy
}
public int getEnergy() {
return energy;
}
thứcsetthìcónghĩalàchỉ ghi.
}
public void decreaseEnergy() {
energy ;
}
v1.0011107228
14
}

PROPERTIES
On passing
'
Finish
'
button:
Goes to Next Slide
On

passing
,
Finish

button:
Goes

to

Next

Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
2.2. PHƯƠNG THỨC
Mô tả phương thức.
1.1
1
Giá trị trả về củaphương thức.

1.1
2
Tham số truyềnvàochophương thức.
1.1
3
Các kiểutruyềnthamsố.
1.1
4
Overloading phương thức.
1.1
5
Các cấutrúclậptrìnhcơ bảnsử dụng trong phương thức.
1.1
6
v1.0011107228
16
2.2.1. MÔ TẢ PHƯƠNG THỨC CỦA ĐỐI TƯỢNG TRONG LỚP

•Phương thứclànhững mô tả cách thứcmàquađó đốitượng th

hiệns

hoạt động
hay chứcnăng của chúng.


pháp
khai
báo
phương

thức
:

pháp
khai
báo
phương
thức
:
Bổ_từ_truy_xuất kiểu_dữ_liệu tên_phương_thức (danh_sách_tham_số) {
//thân phương thức
//thân

phương

thức
}

d
hươ
thứ
t
lớ
public void decreaseEnergy() {


d
ụ p
hươ
ng

thứ
c
d
ecreaseEnergy()
t
rong
lớ
p Battery
energy ;
}
v1.0011107228
17
2.2.2. TRUY XUẤT VÀO PHƯƠNG THỨC CỦA ĐỐI TƯỢNG

Sử
dụng
đối
tượng
tham
chiếu
để
truy
xuất
sử
dụng
các
phương
thức

Sử

dụng
đối
tượng
tham
chiếu
để
truy
xuất
,
sử
dụng
các
phương
thức
đượcphéptruyxuất của đốitượng.
•Vídụ:
 Tạo đốitượng tham chiếu:
Battery b = new Battery();
 Truy xuấtvàophương thứccủa đốitượng:
b.getEnergy();
b
.
d
ecreaseEnergy();
v1.0011107228
18
2.2.3. GIÁ TRỊ TRẢ VỀ CỦA PHƯƠNG THỨC

•Phương thứccóth


có giá trị trả về.
•Cácđốitượng khác có thể nhận đượckếtquả trả về sau lờigọiphương thức.


dụ
:


dụ
:
public int getEnergy() {
r
eturn energy;
Thựchiệnlờigọivànhậngiátrị trả về:
}
int e;
e = b.
g
etEner
gy();

g gy();
v1.0011107228
19
2.2.4. THAM SỐ TRUYỀN VÀO CHO PHƯƠNG THỨC

Một
phương
thức


thể

các
tham
số
truyền
vào

Một
phương
thức

thể

các
tham
số
truyền
vào
.
•Cácthamsố truyềnvàochophương thứccungcấpchophương thức
thông tin mà nó cần trong quá trình xử lý.
•Vídụ:
public void setEnergy(int value) {
T ề
h

khi
h
hiệ

lời
i
e
nergy=value;
}
T
ruy

nt
h
am s

khi
t
h
ực
hiệ
n
lời
gọ
i
:
b.setEnergy(100);
v1.0011107228
20
2.2.5. CÁC KIỂU TRUYỀN THAM SỐ
Căncứ vào kiểudữ liệutruyềnvàochophương thứctacó2kiểutruyềnthamsố:

Truyền
tham

trị
:
Áp
dụng
cho
các
kiểu
dữ
liệu

sở
.
Truyền
tham
trị
:
Áp
dụng
cho
các
kiểu
dữ
liệu

sở
.
Phương thứcchỉ nhậnbảnsaocácgiátrị từ tham số.

Truyền
tham

biến
:
Áp
dụng
cho
các
kiểu
dữ
liệu
tham
chiếu
.
Truyền
tham
biến
:
Áp
dụng
cho
các
kiểu
dữ
liệu
tham
chiếu
.
Giá trị truyền vào chính là các đốitượng tham chiều, do vậy đốitượng có
thể bị thay đổibentrongphương thức.
v1.0011107228
21

2.2.5. TỪ KHÓA THIS
•Từ khóa this giúp tham chiếutới đốitượng hiệnthờitheongữ cảnh.
• Đượcsử dụng để thao tác trong quá trình mô tả lớp, giúp lập trình viên truy
xuất vào các thành phầncủa đốitượng
sẽđược
tạora.
•Vídụ:
public void setEnergy(int value) {
this energy=value;
this
.
energy=value;
}
v1.0011107228
22
CÂU HỎI THẢO LUẬN

Hãy nhìn đoạnmãnày,bạnnàocóth

cho tôi biếttanênsửa đoạnmã
sau thế nào (không được đổitênbiến) để phân biệt đâu là thuộctínhcủa
lớ
p
Batter
y
tron
g
p
hươn
g

thức setEner
gy
.
p
y
g
p g
gy
1: class Battery {
2: int energy;
3: void setEnergy(int energy){
4: energy = energy;
}
5:
}
6:}
v1.0011107228
23
2.2.6. OVERLOADING

Java
cho
phép
overloading
các
phương
thức
Tức

các

phương
thức

thể
trùng

Java
cho
phép
overloading
các
phương
thức
.
Tức

,
các
phương
thức

thể
trùng
tên nhưng phảikhácsố lượng tham số hoặckiểudữ liệutruyềncủathamsố.
•Việcoverloadingtránhđượchiệntượng có nhiềuphương thức có chung mộtngữ
nghĩanhưng lạiphải đặt tên khác nhau.
• Giúp cho ngườilậptrìnhdễ nhớ,dễ truy cậpvàocácphương thứchơn.


dụ

:


dụ
:
public boolean equals(int a, int b) {
return a==b;
}
public boolean equals(int a, int b, int c) {
t(b )
r
e
t
urn
(
a==
b
&& a==c
)
;
}
v1.0011107228
24
2.2.7. CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN DÙNG TRONG PHƯƠNG THỨC
•Cấutrúcrẽ nhánh.

i
f
 if else
 if…else if …else

 switch case
•Cấutrúclặp.
 for
 while
 do…while
•Lệnh nhảy
 break
 continue
v1.0011107228
25
 return

×