Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
502,45 KB
Nội dung
BÀI 3
TÍNH BAO GÓI
TÍNH
BAO
GÓI
TRONG L
Ậ
P TR
Ì
NH JAV
A
Ậ
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
:
Hệ
thống
quản
lý
chuột
máy
tính
Bài
toán
:
Hệ
thống
quản
lý
chuột
máy
tính
Chủ cửa hàng Nam Việt chuyên cung cấpcácloạichuộtmáytínhmuốnxâydựng một
phầnmềm để tiệnchoviệcquảnlý.Quatìmhiểutathấycó2loạichuộtcơ bảnlàchuột
không dây và chuột có dây chúng thuộcloạichuột quang hoặcchuộtlaser.
Mộtyêucầukháclàchủ cửahàngmuốn sau khi xây dựng phầnmềmnàycóthể tái sử
dụng lạimộtsố lớp đốitượng để mình tự viếtmộtsố chương trình khác.
Vậy theo Anh Chị làm thế nào để có thể phân loại để quảnlýđượcthôngtin
ể
ể
về các loạichuột?
V
àlàmsaođ
ể
có th
ể
tái s
ử
dụng lạimộtsố chương trình
đã đượcxâydựng?
v1.0011107228
2
MỤC TIÊU BÀI HỌC
Trình bày về tínhbaogói trong lậptrình hướng đối tượng.
Mô tả cách tổ chức lớp sử dụng package và cách thức kiểm soát truy xuất
vào các thành phầncủa đốitượng th
ô
ng qua các từ khóa (private public
vào
các
thành
phần
của
đối
tượng
th
ô
ng
qua
các
từ
khóa
(private
,
public
,
protected, default).
Xây dựng chương trình gồmcáclớpvới các thành phầnsử dụng các từ khóa
ấ
đ
ổ
hứ
k
truy xu
ấ
t
đ
ượct
ổ
c
hứ
ctrongpac
k
age.
v1.0011107228
3
NỘI DUNG
1
Giới
thiệu
về
tính
bao
gói
trong
lập
trình
hướng
đối
tượng
.
Giới
thiệu
về
tính
bao
gói
trong
lập
trình
hướng
đối
tượng
.
2
Cách thứctổ chứclớpsử dụng Package.
3
Cách
thức
kiểm
soát
truy
xuất
vào
các
thành
phần
của
đối
tượng
3
Cách
thức
kiểm
soát
truy
xuất
vào
các
thành
phần
của
đối
tượng
.
v1.0011107228
4
3.1. TÍNHBAOGÓI TRONG LẬPTRÌNH HƯỚNG ĐỐI TƯỢNG
Khả năng truy xuất vào các thành phầncủamột đốitượng trong khi vẫn đảmbảocác
thôngtinriêngtư bên trong đốitượng đượcgọilàtínhchegiấu thông tin (hay còn gọi
là
tính
bao
gói)
là
tính
bao
gói)
.
Chương trình quảnlýchuột được
đóng góitrong đĩaCD.
Người
sử
dụng
có
thể
sử
dụng
dữ
Người
sử
dụng
có
thể
sử
dụng
dữ
liệu được đóng gói.
v1.0011107228
5
3.2. TỔ CHỨC LỚP TRONG CÁC PACKAGE
Package và cách thứctổ chứccáclớptrongJava.
1.1
1
Truy
xuất
vào
các
lớp
trong
package
11
2
Truy
xuất
vào
các
lớp
trong
package
.
1
.
1
2
v1.0011107228
6
3.2.1. PACKAGE VÀ CÁCH THỨC TỔ CHỨC LỚP VÀO PACKAGE
•Khisố lượng lớpcótrongmột ứng dụng
tăng lên có thể nảysinhcácvấn đề:
Tìm
kiếm
;
Tìm
kiếm
;
Tên lớpdài;
Vấn
đề
lớp
trùng
tên
;
Vấn
đề
lớp
trùng
tên
;
Chia sẻ,táisử dụng và tích hợp.
•Javachophéptổ chứccáclớpvàocác
package. Package là cơ chế tổ chứclớp
giống như tổ chứccâythư mụctrong
máy
tính
.
máy
tính
.
Với bài tập tình huống có thể tổ
chứcquảnlýloạichuộtnhư trên
chức
quản
lý
loại
chuột
như
trên
v1.0011107228
7
Sử
dụng
từ
khóa
package
ở
dòng
đầu
tiên
của
file
mã
nguồn
java
theo
sau
là
tên
3.2.1. PACKAGE V
À
C
Á
CH TH
Ứ
C T
Ổ
CH
Ứ
C L
Ớ
P V
À
O PACKAGE (tiếp
theo)
Sử
dụng
từ
khóa
package
ở
dòng
đầu
tiên
của
file
mã
nguồn
java
,
theo
sau
là
tên
package.
GeniusMouse.java
package ChuotDay.ChuotLaser;
public class GeniusMouse{}
RazerNageMouse.java
package ChuotDay.ChuotQuang;
public class RazerNageMouse{}
public
class
RazerNageMouse{}
GeniusMouse.java
package ChuotKhongDay ChuotLaser;
package
ChuotKhongDay
.
ChuotLaser;
public class GeniusMouse{}
RazerNagaMouse java
RazerNagaMouse
.
java
package ChuotKhongDay.ChuotQuang;
public class RazerNagaMouse{}
v1.0011107228
8
Tổ chức file trong thư mụcTổ chức lớp trong package
3.2.2. TRUY XUẤT VÀO CÁC LỚP TRONG PACKAGE
•
Sử
dụng
từ
khóa
import
:
•
Sử
dụng
từ
khóa
import
:
package demo;
import ChuotDay.ChuotLaser.GeniusMouse;
public class PackageDemo{
public
class
PackageDemo{
public void runDemo {
G
eniusMouse
s
=new
G
eniusMouse
();
();
ChuotKhongDay.ChuotLaser.GeniusMouse gen
= new ChuotKhongDay.ChuotLaser.GeniusMouse();
}
}
•Sử dụng tên đầy đủ của một lớp khi có sự xung đột về tên lớp.
v1.0011107228
9
3.2.3. CÁC PACKAGE XÂY DỰNG SẴN
•Nềntảng java cung cấpcholậptrìnhviênmộttậpcácJavaAPIcơ bản để lậptrình
ứng dụng.
á
ó
ả
•C
á
cg
ó
icơ b
ả
n:
java: chứacácgóithư việnchuẩncủajava.
j
l
á
lớ
th
iệ
ặ
đị h
đ
it
t
h
tì h
j
j
ava.
l
ang: c
á
c
lớ
p
thư
v
iệ
nm
ặ
c
đị
n
h
đ
ược
i
mpor
t
t
rong c
h
ương
t
r
ì
n
h
j
ava.
java.util: các lớptiệních.Vídụ lớp Scanner giớithiệutrongbài1.
j
hứ
á
ói
thư
iệ
h ẩ
ở
ộ
j
avax: c
hứ
ac
á
cg
ói
thư
v
iệ
nc
h
u
ẩ
nm
ở
r
ộ
ng
•Cácgóinàyđượcnénvàotrongfilejarđặttrongthư mụclibcủaJDK.Khisử dụng
cần
cung
cấp
CLASSPATH
dẫn
tới
cần
cung
cấp
CLASSPATH
dẫn
tới
.
Sử dụng công cụ jar củaJavangườidùngcóthể tự nén các lớptrongchương trình
thành
một
file
jar
duy
nhất
tiện
cho
việc
chia
sẻ
và
cài
đặt
.
thành
một
file
jar
duy
nhất
tiện
cho
việc
chia
sẻ
và
cài
đặt
.
v1.0011107228
10
[...]... time At any time Unlimited times TÓM LƯỢC CUỐI BÀI Sau khi học xong bài này chúng ta đã nắm được các kiến thức sau: • • Sử dụng được gói đã tạo và các gói được cung cấp sẵn ử ó à á ó ấ ẵ • Hiểu cách sử dụng các bổ từ truy xuất: private, public, private public protected, default • v1.0011107228 Hiểu được cách tạo gói Xây dựng ứng dụng phân chia trong các gói khác nhau 22 PROPERTIES On passing 'Finish'... không • Java cung cấp các mức truy xuất tương ứng với các từ khóa sau: public p private : không chỉ định từ khóa truy xuất v1.0011107228 12 3. 3.1 SỬ DỤNG TỪ KHÓA PUBLIC • Từ khóa public tạo ra mức độ truy xuất lớn nhất • Từ khóa public được áp dụng cho lớp, interface, trường, hàm tạo và phương thức Áp dụng cho lớp hoặc interface: Có thể truy xuất vào lớp, interface này từ các gói khác... String toString() { return "Name: " + this.name; } } v1.0011107228 13 3 .3. 2 SỬ DỤNG TỪ KHÓA PRIVATE • Từ khóa tạo ra mức độ truy xuất hẹp nhất • Từ khóa private có thể áp dụng cho lớp, interface, trường, hà tạo và phương thức f ờ hàm à h hứ Áp dụng cho lớp và interface: Không thể truy xuất vào các lớ hô hể ấ à á lớp, interface này từ các gói khác Áp dụng cho trường hàm tạo và trường, phương thức: Không.. .3. 2 .3 CÁC PACKAGE XÂY DỰNG SẴN (tiếp theo) / /** * Write a description of class Client here * Client .java */ import java. util.Scanner; import ChuotDay.ChuotLaser.GeniusMouse; public class Client { p public void inputMouse() { p Scanner scan = new Scanner(System.in);... publisher; this.description = description; } @Override public String toString() { return "Name: " + this.name; } } v1.0011107228 14 3. 3.2 SỬ DỤNG CHỈ THỊ TRUY XUẤT MẶC ĐỊNH pac age ouse package mouse.wiredmouse; ed ouse; • Khi không chỉ định từ khóa truy xuất thì java sẽ áp dụng chỉ thị truy xuất mặc định default • Chỉ thị truy xuất mặc định có thể áp dụng cho lớp, interface, trường, hàm tạo... mouse: " + gen.toString()); } } Đáp án tham khảo v1.0011107228 11 3.3 KIỂM SOÁT TRUY XUẤT Các từ khóa truy xuất: • Sử dụng từ khóa truy xuất private • Sử dụng từ khóa truy xuất public • Sử dụng từ khóa truy xuất • ả g tổ g ết Bảng tổng kết • Các từ khóa truy xuất được dùng để điều khiển cách thức truy cập vào các thành phần trong một lớp • Các từ khóa truy xuất cũng quyết định xem một thành... System.out.println(“publisher: " + objCD.publisher); } } speed: 10 d Exception in thread "main" java. lang.RuntimeException: Uncompilable source code - publisher has private access in CD at Client.main(Client .java: 5) Java Result: 1 v1.0011107228 16 CÂU HỎI THẢO LUẬN Bổ từ public và protected có gì khá nhau bli à t t d ó ì khác h 17 CASE STUDY Mô phỏng sự hoạt động của đồng hồ điện tử: Lớp các đối tượng đồng hồ... description of class Client here * Client .java * @author (your name) * @version (a version number or a date) */ public class Client { public static void demoStudent() { CD objCD = new CD("MAXELL", "DVD-R", 10); CD( MAXELL , DVD R , System.out.println("speed: " + objCD.speed); System.out.println(“publisher: " + objCD.publisher); } } speed: 10 d Exception in thread "main" java. lang.RuntimeException: Uncompilable... khả năng hiển thị giờ, phút, giây theo định dạng: hh:mm:ss • Có khả năng thay đổi trạng thái giờ phút giấy sau mỗi lần chạy giờ, phút, chạy • Một đối tượng đầu cuối sẽ sử dụng đối tượng đồng hồ và chạy trong khoảng 1000s v1.0011107228 18 BẢNG TÓM TẮT Elements Visible in Access modifier Subclass Outside Class Package public yes yes yes yes protected yes yes yes no private yes no no no no modifier yes... trường, hàm tạo và phương thức Áp dụng cho lớp interface: Chỉ lớp, truy xuất được các lớp, interface này khi cùng một package Áp dụng cho trường, hàm tạo, phương thức: Chỉ truy xuất được từ các lớp trong cùng một package v1.0011107228 public class GeniusMouse { public String name; private St i i t String publisher; bli h String description; public GeniusMouse() {} public GeniusMouse(String name, . DUNG
1
Giới
thiệu
về
tính
bao
gói
trong
lập
trình
hướng
đối
tượng
.
Giới
thiệu
về
tính
bao
gói
trong
lập
trình
hướng
đối
tượng
.
2
Cách thứctổ chứclớpsử dụng Package.
3
Cách
thức
kiểm
soát
truy
xuất
vào
các
thành
phần
của
đối
tượng
3
Cách
thức
kiểm
soát
truy
xuất
vào
các
thành
phần
của
đối
tượng
.
v1.0011107228
4
3. 1 đốitượng trong khi vẫn đảmbảocác
thôngtinriêngtư bên trong đốitượng đượcgọilàtínhchegiấu thông tin (hay còn gọi
là
tính
bao
gói)
là
tính
bao
gói)
.
Chương trình