Uploaded by Hi Hi

ThucHanh HuongDoiTuong 2023

advertisement
T
Biên
www.hutech.edu.vn
*1.2021.CMP368*
tailieuhoctap@hutech.edu.vn
:
I
...................................................................................................................I
NG D N ......................................................................................................... III
...................................................................... 1
.......................................................................................... 1
....................................................................... 1
.......................................................................... 2
.................................................................... 3
1.1.4 Các phép toán ................................................................................................ 3
................................................................................ 3
.................................................................. 5
.................................................................................................. 6
.................................................................................................. 6
.......................................................................................... 7
NÂNG CAO .................................................................................... 14
.................................................................... 15
........................................................................................ 15
........................................................ 15
................................................................. 15
.......................................................................................... 16
........................................................................................ 16
.................................................................................... 24
..................................................................................... 26
........................................................................................ 26
........................................................................... 26
............................................................................. 26
3.
........................................................................................ 27
.................................................................................... 32
..................................................................................... 33
........................................................................................ 33
........................................................................................ 33
H NÂNG CAO .................................................................................... 35
BÀI 5: L P TR
NG ......................................................................................... 36
........................................................................................ 36
........................................................................................ 36
HÀNH NÂNG CAO .................................................................................... 39
BÀI 6: INTERFACE, PACKAGE .................................................................................... 41
II
........................................................................................ 41
6.1.1 Interface .......................................................................................................41
6.1.2 Package ........................................................................................................41
........................................................................................ 42
............................................................................................ 46
III
NG D N
-
-
-
-
B i 1: LÀM QUEN V I NGÔN NG
-
B i 2: XÂY
-
B
-
B i 4: K
-
B i 5: L P TR
-
B i 6: INTERFACE
JAVA.
T
TH A VÀ BAO G P
NG
PACKAGE
-
C
duy t t v logic v
ki n th c to n h
n.
IV
v y, yêu c u
nhà, nghiên c u t i li
c t i li u
1.
2.
nl
n l p và ghi chú nh ng v
i.
không hi u khi
BÀI 1:
BÀI 1:
JAVA
-
Hi u c
nc am
-
Hi
th c thi c a Java;
-
Hi
biên d ch và ch
-
Hi u c
nc am
-
Bi t các cách nh p xu t d
li
n.
1.1 TÓM T T LÝ THUY T
1.1.1 Quá trình d
1
2
BÀI 1:
1.1.2 C
// Filename: NewApp.java
package packagename;
// Ph n 2: (0 ho c nhi
import packagename;
// Ph n 3: (0 ho c nhi
public class NewApp{ ... }
class C1 { ... }
interface I { ... }
class Cn { ... }
-
i tên c a m t
main()
uôi là .java.
-
public static void main (String args [] ) {
// N i dung c n th c hi n c
trình
ng d ng
}
-
N i dung c
c main()
.class
3
BÀI 1:
1.1.3 Các ki u d
li
n trong Java
byte
0
1
-128...127
short
0
2
-32768...32767
int
0
4
long
0
8
float
0.0
4
+/- 1.45 E-45 .. +/-3.4 E+38,
+/- infinity, +/-0, NAN
double
0.0
8
+/- 1.79E-324 .. +/-3.4
E+308, +/- infinity, +/-0, NAN
char
\u0000
2
\u0000 ... \uFFFF
boolean
False
1 bit
false, true
(Not A Number)
1.1.4 Các phép toán
-
-, *, /, %, ++, -Phép toán so sánh: <, <=, ==. >=, >, !=
-
Phép toán trên bit: ~, &, |, ^ (xor), >>, <<, &=, |=, ^=, >>=, <<=
-
Phép gán: = , +=, -=, *=, /=, %=
-
Condition ? TrueExp : FalseExp
instanceof
true
1.1.5 Nh p, xu t d
-
Gói
c l i là false
li
n
4
BÀI 1:
System.out.p
các
phím gõ c n gi
s
l i trong b
mà gõ phím ch
m (buffer), có th
c n ki m tra phím gõ (Vd: nh p
sai).
import java.util.Scanner ;
Scanner sc = new Scanner (System.in) ;
import java.io.*;
import java.util.Scanner;
class Vd_Scanner {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int a;
float b;
String s;
System.out.print ("Nhap 1 so nguyen:");
a = sc.nextInt();
System.out.print ("Nhap 1 so thuc: ");
BÀI 1:
b = sc.nextFloat();
System.out.print ("Nhap 1 chuoi: ");
sc.nextLine();
s = sc.nextLine();
System.out.println ("Xem thu nhe!!!");
System.out.println ("So nguyen: " + a);
System.out.println ("So thuc: " + b);
System.out.println ("Chuoi: " + s);
}
}
1.1.6 C
if
u khi n r
else
if (Condition) {
Statements;
}
else {
Statement;
}
switch-case
switch (Expression)
{
case Cons1: Statements; break;
case Cons2: Statements; break;
...
default : Statements;
}
while
while (condition) {
Statements;
}
nhánh và l p
5
6
BÀI 1:
do-while
do {
Statements;
} while (condition);
for
for ( varInit ; Condition ; GroupStatements2) {
Statements1;
}
1.1.7 M ng (Array)
-
char ch[] = new char [5];
-
-line initialization):
int [] a = { 1,4,2,7,8};
ch[0]
ch[1]
ch[2]
ch[3]
ch[4]
1.1.8 Xây d ng l p
Cú pháp khai báo class trong Java:
[Modifier] class CLASSNAME extends FATHERCLASSNAME
{
[Modifier] DataType1
Property1 [=Value];
[Modifier] DataType2
Property2 [=Value];
{ <code> }
}
Khi không có modifier:
7
BÀI 1:
1.2 TH
B N
Bài 1: Vi
t ra màn hình các thông tin sau.
Bài 2: Nh p các thông tin c a 1 sinh viên g m mã sinh viên, h
tên, tu
m trung bình. Xu t các thông tin ra màn hình.
Bài 3: Nh p 1 m ng các s
nguyên t
bàn phím. Tìm ph n t
Bài 4: T o m t ma tr n g m m dòng và n c
m t giá tr
l n nh t trong m ng.
i ph n t
c a ma tr n là
c sinh ng u nhiên trong ph m vi [0, 50]. Xu t ma tr n ra màn
hình. Tính t ng giá tr các ph n t
c a ma tr n.
Bài 5: Xây d ng l p h c sinh, bi t r ng m i h c sinh có:
c: set(), get(), input(), output(), rank() - x p lo i cho h c sinh theo dtb.
Vi t l p Demo1 ch
c main():
Bài 6: Xây d ng l p M ng g m có các thành ph n d
-
Thành ph n d
li u: S
ph n t
c a m ng, m ng ch a các s
c a m ng
-
li u:
c: set(), get(), input(), output() và
c
8
BÀI 1:
Vi t l p Demo2 ch
c main():
ng d n:
Bài 1: Vi
t ra màn hình các thông tin sau.
ng d n:
-
Làm quen v i các ki u d
li u và cách khai báo bi n:
-
Làm quen v i câu l nh xu t d
-
Tham kh
li u:
9
BÀI 1:
Bài 2: Nh p các thông tin c a 1 sinh viên g m mã sinh viên, h
tên, tu
m trung bình. Xu t các thông tin ra màn hình.
ng d n:
ý: Ch
c phù h p v i ki u d
Bài 3: Nh p 1 m ng các s
nguyên t
ng d n:
-
Khai báo m ng:
-
C p phát b nh
cho m ng:
li u c n nh p.
bàn phím. Tìm ph n t
l n nh t trong m ng.
10
BÀI 1:
Bài 4: T o m t ma tr n g m m dòng và n c
m t giá tr
i ph n t
c a ma tr n là
c sinh ng u nhiên trong ph m vi [0, 50]. Xu t ma tr n ra màn
hình. Tính t ng giá tr các ph n t
c a ma tr n.
ng d n:
-
M ng 2 chi
ng m t chi u.
-
Khai báo bi n m ng, khai báo bi n s
-
Nh p s
dòng, s
dòng, bi n s
c t cho ma tr n. C p phát b
c t.
nh cho m ng v i s
ng. Ví d : ma tr n m g m 5 dòng, 7 c t:
-
cho ma tr n n dòng, m c t.
-
Sinh giá tr ng u nhiên cho t ng ph n t
-
Hàm random()
vì sao nhé!
-
Xu t ma tr n
trong ma tr n m x n:
dòng, s
c t
BÀI 1:
-
Tính t ng các ph n t
c a ma tr n: t
11
làm.
Bài 5: Xây d ng l p h c sinh, bi t r ng m i h c sinh có:
-
c: set(), get(), input(), output(), rank() - x p lo i cho h c sinh theo dtb.
Vi t l p Demo1 ch
c main():
ng d n:
1.
-
-
-
private
Cú pháp:
code) cho các
12
BÀI 1:
-
-
Sau khi vi t các thu
c, vào menu View
13
BÀI 1:
1.
-
Bài 6: Xây d ng l p Mang g m có các Thành ph n d
-
Thành ph n d
li u: S
ph n t
c a m ng, m ng ch a các s
c a m ng
-
c: set(), get(), input(), output() và
Vi t l p Demo2 ch
ng d n:
1.
li u:
c main():
nguyên
c
14
BÀI 1:
2. Xây d ng l p Demo2 ch
c main():
-
1.3 TH C HÀNH NÂNG CAO
Bài 7: Vi
t b ng c
Bài 8: Vi
o 1 m ng s
n 9.
int d ng in-line 10 ph n t , xu t m ng
n.
Bài 9: Nh p m t ma tr n b t k t
bàn phím. Tính t ng hàng th
k c a ma tr n.
Bài 10: Xây d ng l p phân s , bi t r ng m i phân s có:
-
c: set(), get(), input(), output(), rút g n phân s , c ng 2 phân s .
Vi t l p Demo1 ch
-
c main():
15
BÀI 2:
BÀI 2: XÂ
-
Bi t cách vi
c kh i t o;
-
2.1 TÓM T T LÝ THUY T
2.1.1 B
c tính truy xu t c a các modifier:
Modifier
private
friendly
protected
public
Cùng class
YES
YES
YES
YES
Cùng gói, khác class
NO
YES
YES
YES
NO
YES
YES
YES
NO
NO
NO
YES
NO
NO
YES
YES
nhìn tên
-
2.1.2
-
c kh i t o (constructor)
16
-
BÀI 2:
Cú pháp constructor:
[Modifier] ClassName ( Parameters) {
<code>
}
2.1.3 Thành ph n static
(1)
ClassName.StaticMember
(2)
ClassName obj= new ClassName();
obj. StaticMember
2.2 TH
N
Bài 1: Xây d ng l p Danh sách h c sinh g
-
In danh sách
Vi t l p Demo3 ch
Bài 2: T o l p phân s bao g m:
c:
-
c kh i t o chu n
c main():
c:
17
BÀI 2:
-
c kh i t o 2 tham s .
-
cs
chung l n nh t
Bài 3: Xây d ng l p COODINATE: t
c
m trong không gian hai chi u.
c g m:
-
c kh i t o chu n: x = 0, y = 0
-
c kh i t o 2 tham s .
Bài 4: Xây d ng l p Nhân Viên g m: mã s , h
n, h s
nhân viên; các constructor chu n, có tham s
mã s , h
tên, h s
c: nh p d
xu
ng
c: set/get cho
li u cho nhân viên t
ng nhân viên.
Xây d ng l p Demo ch
c main() th c hi n các vi c sau:
-
In ra thông tin c a nhân viên có h
s
t trong 3 nhân viên
bàn phím,
18
BÀI 2:
-
Nh p danh sách nhân viên và xu t ra màn hình cùng v
-
In s
a m i nhân viên
ng nhân viên trong danh sách.
ng d n:
Bài 1: Xây d ng l p Danh sách h c sinh g
-
In danh sách
Vi t l p Demo3 ch
ng d n:
c main():
c:
19
BÀI 2:
Vi t l p DEMO3 ch
c main():
Bài 2: T o l p phân s
ng d n:
1. Xây d ng l p PHANSO g m các thu c t
(menu View Class View)
-
Cách vi
c kh i t o (Constructor):
c kh i t o phân s
giá tr
ng cho t
t o ra m t phân s có t
m us
khi bi t t
và m u, tham s
truy n vào là hai
và m u. Khi g
s
b ng giá tr c a tham s
b ng giá tr c a tham s
th
hai truy n vào.
th
nh t truy n vào và
20
BÀI 2:
Khi g
b ng t
-
Vi
t o ra m t phân s
có t
c a phân s truy n vào, có m u b ng m u c a phân s truy n vào.
c nh p và xu t phân s
-
nguyên a và b
Trong
-b
-a
UCLN =a;
21
BÀI 2:
-
Vi
c rút g n hai phân s
-
c 1: tìm m u s
chung, m u s
c 3: rút g n phân s
k t qu
c a phân s k t qu b ng m u s
và tr
ho c cho k t qu sai thì m i tham kh
-
(B n hãy t
c main() th c hi n:
p1
nhapPS()
p1 và
làm, khi nào b l i
ng d n sau nhé! )
c
2. Xây d ng l p DEMO ch
-
v
chung
22
BÀI 2:
-
p2= 4/16
a màn hình, quan
PHANSO p2=new PHANSO(4, 16);
p2.xuatPS();
-
int t, m;
theo
PHANSO p3=new PHANSO(t, m);
p3.xuatPS();
-
p1
-
p3
p4
Nhân p4
p2
Bài 3: Xây d ng l p COODINATE: t
ng d n:
bài 2
Bài 4: Xây d ng l p Nhân Viên
ng d n:
c
m trong không gian hai chi u.
23
BÀI 2:
-
T
xây d
c: các constructor chu n, có tham s , sao chép; các
c: set/get cho mã s , h
li u cho nhân viên t
tên, h
c: nh p d
bàn phím.
-
s
vi t
c in s
c static
-
In ra thông tin c a nhân viên có h
s
t trong 3 nhân viên
24
BÀI 2:
Nh p danh sách nhân viên và xu t ra màn hình cùng v
a m i nhân
viên
In s
ng nhân viên trong danh sách.
2.3 TH C HÀNH NÂNG CAO
Bài 5: Xây d ng l p Tam giác g m các thành ph n d
dài c nh th
-
Vi
dài c nh th
li
dài c nh th
ba c a tam giác.
c kh i t o (constructor) v i 3 tham s
ki u in
c a tam giác.
-
-
Bài 6: T o l p PhuongTrinhBacNhat có 2 bi n a và b là 2 s
-
-
-
UML class diagram:
nh
nguyên.
ng là 3 c nh
BÀI 2:
25
26
BÀI 3:
BÀI 3:
-
3.1 TÓM T T LÝ THUY T
3.1.1 Hi n th c l p con trong Java
Cú pháp hi n th c l p con trong ngôn ng
class CLASSNAME extends FATHERCLASSNAME
{
DataType1
Property1 [=Value];
DataType2
Property1 [=Value];
// constructor
}
-
3.1.2 K thu t phân c p th a k
-
BÀI 3:
27
-
Hình 3.1:
3.2 TH
N
Bài 1: Phân tích phân c p k th a cho các l p:
Bài 2: S
d ng bài 1, ti p t c xây d ng l p DSHANGHOA (danh sách ch a nhi u m t
hàng,v
-
ng d n:
Bài 1:
1.
n máy v a có hàng th c ph m). Xây d ng hàm main sao cho
28
BÀI 3:
(Mã hàng, tên hàng, giá
Mã hàng, tên hàng, giá
-
#
protected
con)
+
public
-
private
HANGHOA
#mahang
#tenhang
#dongia
+HANGHOA()
+HANGHOA(String,String, long)
+nhap()
HANGDM
- thoigianbh
- dienap
- congsuat
+HANGDM()
+HANGDM(String,String,long)
+nhap()
+xuat()
HANGTP
- ngaysx
-ngayhh
+HANGTP()
+HANGTP(int, int, int)
+nhap()
+xuat()
BÀI 3:
2.
protected
-
HANGDM
)
class
-
Vi
extends <tên
c kh i t o cho HANGDM.
M t m
n máy có bao nhiêu thu c tính (properties)?
mahang, tenhang, dongia
tính (thoigianbh, dienap, congsuat
ó.
29
30
BÀI 3:
HANGDM
cha
super(mh,
th, dg)
-
Vi
c nh p cho HANGDM (b n t
Nh p giá tr cho các thu c tính k
Cú pháp g
code)
th a, g
c c a l p cha:
super.tenPhuongThuc(
);
Nh p giá tr cho các thu c tính c a riêng nó (nh
-
Vi
th c nh p c a l p cha.
c xu t cho HANGDM (b n t
ng).
code)
Xu t giá tr c a các thu c tính k th a, g
c xu t c a l p cha
BÀI 3:
-
(hàng th c ph m) k
th a l
31
p
HANGDM.
-
hàng này.
VD:
HANGHOA h;
h =new HANGDM();
Bài 2: S
d ng bài 1, ti p t c xây d ng l p DSHANGHOA
1.
Áp d
t o m t hàng c
liên k t mu n ta khai báo ki u c a m ng là ki u HANGHOA. Khi
th
cho t ng ph n t
c a m ng ta m i kh i t o theo lo i m t hàng
mong mu n.
2. Xây d ng l p DSHANGHOA có thu c tính: s
hàng
ng m t hàng, danh sách các m t
c:
-
public void themMH(HANGHOA h){...}
public void xuatDSTheoLoai(byte loai){...}
32
BÀI 3:
H
3.
byte chon, loai;
Scanner doc=new Scanner(System.in);
DSHANGHOA dshh=new DSHH();
HANGHOA h;
do{
System.out.println("1: Them mot mat hang vao dang sach");
System.out.println("2: Xuat mat hang theo loai");
System.out.println("0: Thoat");
System.out.println("Chon chuc nang:"); chon=doc.nextByte();
switch(chon){
case 1:
System.out.println("1: hang dien may, 2: hang thuc pham. Hay
chon loai mat hang:");
loai=doc.nextByte();
if (loai==1) h=new HANGDM();
else
h=new HANGTP();
h.nhap();
dshh.themMH(h);
break;
case 2:
System.out.println("Xuat danh sach mat hang nao (DM/TP):");
loaimh=doc.nextByte();
dshh.xuatDSTheoLoai(loaimh);
break;
default: chon=0; break;
}
}while (chon!=0);
3.3 TH C HÀNH NÂNG CAO
Bài 3: Hãy xây d ng l
ki u d
li u m
ng ArrayList.
c tính danh sách không s
p (ví d : HANGHOA ds[]) mà s
d ng ki u d
li u l
d ng
i
BÀI 4:
BÀI 4:
-
P
-
4.1 TÓM T T LÝ THUY T
-
4.2 TH
N
Bài 1: Vi
a thi t k
giao di
5.Thoát
sau:
33
34
BÀI 4:
NHÂN VIÊN
3
PHÒNG BAN KHOA
Mã PBK
Tên PBK
Pbk
ng d n
1. Xây d ng l
I
2. Xây d ng l p H C VIÊN k
th a l
i
3.
4.
và
và
c
ng
phòng ban khoa
Pbk=new PHONGBANKHOA();
Pbk.nhap
Bài 2. Vi
a thi t k
bài 1:
BÀI 4:
5.Thoát
4.3 TH C HÀNH NÂNG CAO
Vi
1.
2.
3.
4.
5.
6.
a thi t k sau:
35
36
BÀI 5:
BÀI 5: L P TR
NG
-
5.1 TÓM T T LÝ THUY T
Cú pháp khai báo l p tr
ng:
abstract class ClassName {
[Modifier] DataType1
Property1 [=Value];
[Modifier] DataType2
Property2 [=Value];
<code>
}
abstract [modifier] Type MethodName (Args) ;
}
abstract
5.2 TH
Bài 1: Qu
-
-
N
ng trong m t h c vi n:
37
BÀI 5:
-
Bài 2: Xây d ng l p HOCVIEN (h c vi
vi n. Tính t
qu n lý danh sách nhân viên c a h c
a t t c nhân viên có trong h c vi n.
ng d n
Bài 1:
1.
cc al
c tr
-
-
Tùy thu c vào t ng lo i nhân viên c
th
ng l p con)
ng?
38
BÀI 5:
NV
- manv
-tennv
-trinhdo
-luongcb
+ void Nhap()
+ void Xuat()
+ long TinhLuong()
NVQL
- chuyenmon
- phucapcv
+ void Nhap()
+ void Xuat()
NVNC
- chuyenmon
- phucapdh
NVPV
+ void Nhap()
+ void Xuat()
+ long TinhLuong()
+ void Nhap()
+ void Xuat()
+ long TinhLuong()
+longTinhLuong()
2.
L p NV là l p tr
ng
-
c Nhap(), g
các thu c tính chuyên môn, ph
c nh p c a l p cha và nh p cho
c p ch c v
BÀI 5:
c TinhLuong(): vi
39
n +
ph c p ch c v
-
nh nào khác so
Ch vi t l
c TinhLuong(), vi
n
3.
cho các nhân viên
5.3 TH C HÀNH NÂNG CAO
Bài 3: Vi
1.
2.
a thi t k sau:
40
3.
4.
5.
6.
7. Thoát.
BÀI 5:
BÀI 6: INTE RFACE, PACKAGE
BÀI 6: INTERFACE, PACKAGE
-
Gi
-
6.1 TÓM T T LÝ THUY T
6.1.1 Interface
Cú pháp:
[modifier] interface InterfaceName
{ [modifier] <final data>
[modifier] DataType Method (args);
}
-
Modifier trong interface NÊN
6.1.2 Package
package,
41
42
BÀI 6: INTE RFACE, PACKAGE
Cú pháp:
/* Comment */
package PackageCha[.PackageCon];
[import OtherPackageName ;]
class ClassName
{ .......
}
class
6.2 TH
Bài 1:
N
phân c
i. Yêu c u:
polymorphism)
HINH
+ pi=3.14
+ void Nhap()
+ void Xuat()
+ float DienTich()
HINHVUONG
- canh
+ void Nhap()
+ void Xuat()
+ float DienTich()
HINHCN
- dai
- rong
HINHTRON
- bankinh
+ void Nhap()
+ void Xuat()
+ float DienTich()
+ void Nhap()
+ void Xuat()
+ float DienTich()
BÀI 6: INTE RFACE, PACKAGE
Bài 2:
ng d n
Bài 1:
1.
-
public float pi=3.14;
-
2. Xây d ng l p th
nghi m ch
c main():
-
-
Vi
d ng 2 l p trong 2 gói này
43
44
Bài 2: T
BÀI 6: INTE RFACE, PACKAGE
c BTCh3.
T
c BTCh3.
package MyPackage;
y khi biên d ch s
t o ra file Calculate.class n
c
MyPackage.
-
package MyPackage.Shape;
y, khi biên d ch s
c con c
-
Vi
t o ra file Circle.class n
c MyPackage.
d ng 2 l p trong 2 gói này
c Shape
BÀI 6: INTE RFACE, PACKAGE
45
46
1. Brain W. Kernighan & Dennis Ritchie, The C Programming Language, Prentice Hall
Ban (2005
2.
3.
4. Deitel & Deitel (2012). Java How to program. Prentice
5. Kathy Sierra, Bert Bates (2008). Head First Java
Hall.
Download