Академический Документы
Профессиональный Документы
Культура Документы
Bi 3. Thao tc to Project, to tp tin java, bin dch tp tin dng Jcreator 5.0 hoc Eclipse.
S dng Eclipse IDE
A. Khi ng Eclipse
1.Khi ng Eclipse JSE
2. Vit code:
To lp mi bng cch nhn phi chut ln package cn thm lp vo, chn New Class
Hoc nhn F11 chy tp tin hin ti, cn Ctrl+F11 bin dch v chy ton b project.
Mt vi vn thng gp:
1. Eclipse s t ng bin dch code v bo li.
Nu bn c li hay warning th bn tri ca dng li. V d nh sau:
Kt qu v gii thch?
Pht sinh ngu nhin s s dng lp Random. Lp Random nm trong gi java.util.* c 1 s phng
thc:
Method Produces
boolean
A true or false value
nextBoolean();
int nextInt() An integral value between Integer.MIN_VALUE andInteger.MAX_VALUE
long nextLong() A long integral value between Long.MIN_VALUEand Long.MAX_VALUE
float nextFloat() A decimal number between 0.0 (included) and 1.0 (excluded)
double
A decimal number between 0.0 (included) and 1.0 (excluded)
nextDouble()
Bi 10. Vit chng trnh in ra tng ca 10 s chn u tin (s dng vng lp for hoc while)
Bi 13. Vit chng trnh in ra tng 1+2+3.+n vi n c nhp t tham s command line
Bi 16. Vit chng trnh gii phng trnh bc 1 vi h s a, b c nhp vo bi user t tham s
command line.
Bi 22. Vit chng trnh kim tra s nhp vo c phi l s nguyn t hay khng
Bi 28. Vit chng trnh in ra nhng hnh sau: (mi hnh s dng nhng vng lp khc nhau)
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
* * * * * * * * *
Bi 29. Vit chng trnh nhp vo M v N, xut ra cc hnh sau: (dng cu trc lp)
a.
*
**
***
****
*****
******
******* *****
b
*******
*******
*******
*******
*******
*******
*******
c.
d.
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
Kiu d
Bit Phm vi biu din gi tr M t
liu
Kiu d liu M t
Giao din
L mt lp tru tng
(Interface)
public +
private -
protected #
package ~
Bi 2. Vit chng trnh OOP qun l sinh vin n gin: Nhp, xut thng tin, tnh im TB.
- Vit lp Sinh vin nh sau:
Attributes (private):
M sinh vin l s nguyn.
H tn: chui k t.
im LT, im TH : float
Constructor:
Constructor mc nh ( khi to i tng vi cc thng tin kiu s l 0, kiu chui l
chui rng).
Constructor th hai nhn y thng tin khi to gi tr cho tt c cc bin instance.
Methods:
Cc getter v setter cho mi thuc tnh.
Tnh im trung bnh.
Phng thc toString din t i tng dng chui.
Bi tp Mn: Lp trnh hng i tng - Trang 29
- Xy dng class cha hm main: to 3 i tng sinh vin sv1, sv2, sv3, trong :
sv1 cha thng tin ca chnh mnh (to bng constructor thng s, thng tin bit ri
khi nhp t bn phm).
sv2 l thng tin ngi bn thn nht ca em (to bng constructor thng s, thng tin
bit ri khi nhp t bn phm).
sv3 to bng constructor mc nh. Nhp cc thng tin cho sv3 t bn phm ri sau
dng cc setter gn vo cho cc thuc tnh tng ng.
In bng danh sch sinh vin gm 4 ct l MSSV, h tn, im LT, im TH, im TB
(bng c 3 dng cho 3 sinh vin).
HD: phng thc xut ca i tng sinh vin in thng tin trn mt dng c nh dng. S dng
System.out.printf(chui nh dng, i s 1, i s 2, .); Trong chui nh dng ging
c++, v d:
%-30s: chui, chim 30 k t, du tr canh l tri.
%5.2f : s thc, chim 5 k t, bao gm 2 k s l.
K t nh dng:
s : chui
d: s nguyn (byte, short, int, long)
f: s thc (float, double)
b: boolean
Bi 6. Vit lp HangThucPham m t mt hng ha l hng thc phm trong kho ca mt siu th, c
cc thuc tnh: m hng (khng cho php sa, khng c rng), tn hng (khng c
rng), n gi (>0), ngy sn xut v ngy ht hn (ngy khng c rng, ngy ht hn phi
sau ngy sn xut).
Rng buc cht ch cc rng buc trn cc trng d liu. Nu d liu khng hp l th gn gi tr
mc nh cho php tng ng ca trng .
- To 1 constructor c y tham s, 1 constructor c tham s l m hng.
- Vit cc phng thc setters/getters.
- Vit phng thc kim tra mt hng thc phm ht hn cha?
- Phng thc toString, tr v chui cha thng tin ca hng thc phm. Trong : nh dng
n gi c phn cch hng nghn. nh dng kiu ngy l dd/MM/yyyy.
Vit lp cho phn kim nghim.
Bi 7. a. Vit chng trnh xy dng i tng Sinh vin gm c cc thuc tnh sau:
o M sinh vin l s nguyn,
o H tn: chui k t,
o a ch: chui k t,
o S in thoi: l s bao gm 7 ch s
- Cc thuc tnh khai bo private, nh ngha cc phng thc get/set cho tng thuc tnh.
- Vit cc constructor khi to i tng (constructor mc nh, constructor c tham s).
- Override phng thc toString ca lp Object.
b. Xy dng lp cho php nhp vo N sinh vin (dng mng). Xut danh sch trn ra mn hnh
theo th t tng dn ca m sinh vin.
Bi 1. Cng ty du lch V qun l thng tin l cc chuyn xe. Thng tin ca 2 loi chuyn xe:
protected ChuyenXe()
{
this.Macx="";
this.NameTX="";
this.SoX="";
this.DoanhThu=0;
}
B2. Xy dng lp Chuyn xe Ngoi thnh tha k lp Chuyn xe bao gm thuc tnh: ni n, s
ngy.
import java.util.Scanner;
class NgoaiThanh extends ChuyenXe
{
private String NoiDen;
private int SoNgay;
Scanner in = new Scanner(System.in);
public NgoaiThanh()
{
super();
this.SoNgay=0;
this.NoiDen="";
}
public NgoaiThanh(String ma, String name, String sx, double dt, String nd,
int sn)
{
super(ma, name, sx, dt);
this.SoNgay=sn;
this.NoiDen=nd;
}
B3. Xy dng lp Chuyn xe Ni thnh tha k lp Chuyn xe bao gm thuc tnh: s km, s tuyn.
import java.util.Scanner;
class NoiThanh extends ChuyenXe
{
private double SoKm;
private String SoTuyen;
Scanner in = new Scanner(System.in);
public NoiThanh()
{
super();
this.SoTuyen="";
this.SoKm=0;
}
public NoiThanh(String ma, String name, String sx, double dt, String st,
double skm)
{
super(ma, name, sx, dt);
this.SoTuyen=st;
this.SoKm=skm;
}
B5. Xy dng lp qun l thng tin cho php nhp xut v tnh doanh thu cho tng xe.
import java.util.Scanner;
public class QLChuyenXe
{
public static void main(String[] args)
{
int x;
Scanner a = new Scanner(System.in);
Sch gio khoa: M sch, ngy nhp (ngy, thng, nm), n gi, s lng, nh xut bn, tnh
trng (mi, c).
Nu tnh trng sch l mi th: thnh tin = s lng * n gi.
Nu tnh trng sch l c th: thnh tin = s lng * n gi * 50%
Sch tham kho: M sch, ngy nhp (ngy, thng, nm), n gi, s lng, nh xut bn, thu.
Thnh tin = s lng * n gi +thu
Thc hin cc yu cu sau:
Xy dng cc lp vi chc nng tha k.
Nhp xut danh sch cc loi sch.
Tnh tng thnh tin cho tng loi.
Tnh trung bnh cng n gi ca cc sch tham kho.
Xut ra cc sch gio khoa ca nh xut bn X.
Bi 3. Xy dng chng trnh qun l danh sch cc giao dch. H thng qun l 2 loi giao dch:
Giao dch vng: M giao dch, ngy giao dch (ngy, thng, nm), n gi, s lng, loi vng.
Thnh tin c tnh nh sau:
thnh tin = s lng * n gi.
Giao dch tin t: M giao dch, ngy giao dch (ngy, thng, nm), n gi, s lng, t gi,
loi tin t c 3 loi: tin Vit Nam, tin USD, tin Euro. Thnh tin c tnh nh sau:
- Nu l tin USD hoc Euro th: thnh tin = s lng * n gi* t gi
- Nu l tin VN th: thnh tin = s lng * n gi
Thc hin cc yu cu sau:
Xy dng cc lp vi chc nng tha k.
Nhp xut danh sch cc giao dch.
Tnh tng s lng cho tng loi.
Tnh trung bnh thnh tin ca giao dch tin t.
Xut ra cc giao dch c n gi > 1 t.
Hng dn:
B1. Xy dng lp Giao dch bao gm cc thuc tnh chung cho c giao dch vng v giao dch ngoi t:
m giao dch, s lng, ngy giao dch, n gi, thnh tin.
import java.util.Scanner;
protected GiaoDich()
{
this.MaGD=0;
this.NgayGD="";
this.DonGia=0;
this.SoLuong=0;
this.ThanhTien=0;
}
protected GiaoDich(int ma, int sl, String ngay, double dgia, double ttien)
{
this.MaGD=ma;
this.NgayGD=ngay;
this.DonGia=dgia;
this.SoLuong=sl;
this.ThanhTien=ttien;
}
B2. Xy dng lp Giao dch vng tha k lp Giao dch bao gm thuc tnh: loi vng.
class GiaoDichVang extends GiaoDich
{
private String LoaiVang;
public GiaoDichVang()
{
super();
this.LoaiVang="";
}
public GiaoDichVang(int ma, int sl, String ngay, double dgia, double ttien,
String lvang)
{
super(ma, sl, ngay, dgia, ttien);
this.LoaiVang=lvang;
}
B3. Xy dng lp Ngoi t tha k lp Giao dch bao gm thuc tnh: t gi v loi tin t (USD,
Euro, Vit Nam).
class GiaoDichTienTe extends GiaoDich
{
private float TiGia;
private int LoaiTienTe;
public GiaoDichTienTe()
{
super();
this.TiGia=0;
this.LoaiTienTe=0;
}
public GiaoDichTienTe(int ma, int sl, String ngay, double dgia, double
ttien, float tgia, int loai)
{
super(ma, sl, ngay, dgia, ttien);
this.TiGia=tgia;
this.LoaiTienTe=loai;
}
B4: Xy dng lp qun l danh sch cc giao dch (dng cu trc mng)
public class ListGD
{
GiaoDich gd[] = new GiaoDich[100];
private int CountGD, sum1=0, sum2=0, dem=0, sumtien=0;
public ListGD()
{
CountGD=0;
for(int i=0; i<100; i++)
gd[i] = new GiaoDich();
}
public void ThemGD(int temp)
{
if(CountGD>100)
System.out.println("Bo nho full, ko the them moi!");
else
{
if(temp==1)
{
gd[CountGD] = new GiaoDichVang();
GiaoDichVang gdv = new GiaoDichVang();
gdv.nhap();
gdv.ThanhTien=gdv.TTien();
gd[CountGD] = gdv;
sum1+=gdv.SoLuong;
}
else
Bi tp Mn: Lp trnh hng i tng - Trang 44
{
gd[CountGD] = new GiaoDichTienTe();
GiaoDichTienTe gdtt = new GiaoDichTienTe();
gdtt.nhap();
gdtt.ThanhTien=gdtt.TTien();
gd[CountGD] = gdtt;
sumtien+=gdtt.ThanhTien;
sum2+=gdtt.SoLuong;
dem++;
}
CountGD++;
}
}
public void HienThiDS()
{
for(int i=0; i<CountGD; i++)
{
System.out.println("\n----So TT: " + (i+1));
System.out.println(gd[i].toString());
}
}
// Tong so luong cua giao dich
public void TongSL()
{
System.out.println("|-> Tong So Luong cua Giao Dich Vang: " + sum1 +
" <-|");
System.out.println("|-> Tong So Luong cua Giao Dich Tien Te:" + sum2
+ " <-|");
}
Giao dch t: M giao dch, ngy giao dch (ngy, thng, nm), n gi, loi t (loi A, B, C),
din tch.
- Nu l loi B, C th: thnh tin = din tch * n gi.
- Nu l loi A th: thnh tin = din tch * n gi * 1.5
Giao dch nh: M giao dch, ngy giao dch (ngy, thng, nm), n gi, loi nh (cao cp,
thng), a ch, din tch.
- Nu l loi nh cao cp th: thnh tin = din tch * n gi.
- Nu l loi thng th: thnh tin = din tch * n gi * 90%
Thc hin cc yu cu sau:
Xy dng cc lp vi chc nng tha k.
Nhp xut danh sch cc giao dch.
Tnh tng s lng cho tng loi.
Tnh trung bnh thnh tin ca giao dch t.
Xut ra cc giao dch ca thng 9 nm 2013.
Bi 5. Xy dng chng trnh qun l danh sch ho n tin in ca khch hng. Thng tin bao
gm cc loi khch hng :
Khch hng Vit Nam: m khch hng, h tn, ngy ra ho n (ngy, thng, nm), i tng
khch hng (sinh hot, kinh doanh, sn xut): s lng (s KW tiu th), n gi, nh mc.
Thnh tin c tnh nh sau:
- Nu s lng <= nh mc th: thnh tin = s lng * n gi.
- Ngc li th: thnh tin = s lng * n gi * nh mc + s lng KW vt nh mc *
n gi * 2.5.
Khch hng nc ngoi: m khch hng, h tn, ngy ra ho n (ngy, thng, nm), quc tch,
s lng, n gi. Thnh tin c tnh = s lng * n gi.
Thc hin cc yu cu sau:
Xy dng cc lp vi chc nng tha k.
Nhp xut danh sch cc ha n khch hng.
Tnh tng s lng cho tng loi khch hng.
Tnh trung bnh thnh tin ca khch hng ngi nc ngoi.
Xut ra cc ho n trong thng 09 nm 2013 (ca c 2 loi khch hng).
protected KhachHang()
{
this.MaKH=0;
this.DonGia=0;
this.NgayHD="";
this.HoTenKH="";
this.SoLuong=0;
}
protected KhachHang(int ma, double dgia, String ngay, String hoten, int sl,
double ttien)
{
this.MaKH=ma;
this.DonGia=dgia;
this.NgayHD=ngay;
this.HoTenKH=hoten;
this.SoLuong=sl;
this.ThanhTien=ttien;
}
B2. Xy dng lp Khch hng nc ngoi tha k lp Khch hng bao gm thuc tnh: quc tch.
class KhachHangNuocNgoai extends KhachHang
{
private String QuocTich;
public KhachHangNuocNgoai()
{
super();
this.QuocTich="";
}
Bi tp Mn: Lp trnh hng i tng - Trang 49
public KhachHangNuocNgoai(int ma, double dgia, String ngay, String hoten,
int sl, double ttien, String qt)
{
super(ma, dgia, ngay, hoten, sl, ttien);
this.QuocTich=qt;
}
B3. Xy dng lp Khch hng Vit Nam tha k lp Khch hng bao gm thuc tnh: loi khch hng,
nh mc.
class KhachHangViet extends KhachHang
{
private int LoaiKH, DinhMuc;
public KhachHangViet()
{
super();
this.LoaiKH=0;
this.DinhMuc=0;
}
public KhachHangViet(int ma, double dgia, String ngay, String hoten, int sl,
double ttien, int loai, int dm)
{
super(ma, dgia, ngay, hoten, sl, ttien);
public KhachHangList()
{
CountKH=0;
for(int i=0; i<100; i++)
kh[i] = new KhachHang();
}
do
{
System.out.println("\n\t\t------------------------------------");
System.out.println("\t\t|0. Thoat ung dung\t\t\t\t |");
System.out.println("\t\t|1. Them Khach Hang Viet\t\t\t |");
System.out.println("\t\t|2. Them Khach Hang Nuoc Ngoai\t\t\t |");
System.out.println("\t\t|3. Hien Thi Danh Sach Khach Hang\t\t |");
System.out.println("\t\t|4. Xem Tong (KW)cua cac KH\t\t |");
System.out.println("\t\t|5. Xem TB Thanh Tien cua KH NN\t |");
System.out.println("\t\t--------------------------------------");
x=in.nextInt();
System.out.println("======>>");
switch(x)
{
case 1:
lkh.ThemKH(1);
break;
case 2:
lkh.ThemKH(2);
break;
case 3:
lkh.HienThiKH();
break;
case 4:
lkh.TongSL();
break;
case 5:
lkh.TrungBinh();
break;
}
}while(x!=0);
System.out.println("");
}
}
Bi 7. (Yu cu chung: c nh access modifier (private, protected, public) cho tng thuc tnh/
phng thc mi lp, ci t getter/setter, ci t constructor mc nh v constructor c thng s
y ).
Gi s cn xy dng chng trnh qun l dng cho mt hc vin nghin cu ging dy v ng dng.
i tng qun l bao gm cc sinh vin ang theo hc, cc nhn vin ang lm vic ti hc vin, cc
khch hng n giao dch mua bn sn phm ng dng. Da vo mt s t tnh ca tng i tng,
ngi qun l cn a ra cch thc nh gi khc nhau.
Vy hy xy dng cc lp sau:
- Lp Person: bao gm cc thuc tnh h tn, a ch, phng thc toString.
- Cc lp Student, Employee, Customer (m t di y) tha k lp Person.
o Lp Student: bao gm cc thuc tnh im mn hc 1, im mn hc 2, v cc phng
thc: tnh im TB, nh gi, overriding phng thc toString tr v bng im sinh vin
(gm thng tin thuc tnh v im TB).
Bi 8. Hng ha qun l trong kho ca mt siu th gm c hng thc phm, hng snh s v hng
in my.
Mi loi hng u c m hng (khng c sa, khng c trng), tn hng (khng c rng), s
lng tn (>=0), n gi (>0).
Hng thc phm th cn quan tm n thng tin ngy sn xut, ngy ht hn (ngy ht hn phi sau
hoc l ngy sn xut) v nh cung cp.
Hng in my cn bit thi gian bo hnh bao nhiu thng (>=0), cng sut bao nhiu KW (>0).
Hng snh s th cn bit thng tin v nh sn xut v ngy nhp kho.
Ngoi ra, ngi qun l cn quan tm n s lng tn kho v cc yu t khc ca tng loi hng ha
nh gi mc bn bun, tin VAT tng loi hng ha. Bit rng VAT ca hng in my v snh
s l 10%, VAT ca hng thc phm l 5%.
a) Da vo cc thng tin trn, hy xc nh:
- Cc lp c th c. Lp no l lp tru tng (abstract class), lp no l lp c th .
- Cc thuc tnh cho tng lp.
- Cc phng thc cho tng lp (phng thc no l phng thc tru tng (abstract method),
danh sch cc tham s c th c cho tng phng thc v kiu tr v ca phng thc).
- Thit k m hnh class (xy dng cy tha k, cc giao din nu c).
Bi tp Mn: Lp trnh hng i tng - Trang 55
b) Dng java IDE, to mt project. Thc hin ci t tng minh cho mi loi hng c th trn. Trong
, nh gi mc bn bun th:
o Hng in my, nu s lng tn kho <3 th c nh gi l bn c.
o Hng thc phm, nu vn cn tn kho v b ht hn th nh gi l kh bn.
o Hng snh s, nu s lng tn kho >50 v thi gian lu kho >10 ngy th nh gi l bn
chm.
o Cc trng hp cn li xem nh khng nh gi.
- Hy vit lp qun l danh sch hng ha. Dng Array lu tr danh sch hng ha.
o To constructor khi to danh sch.
o Vit phng thc thm mt hng ha vo danh sch (thm thnh cng nu khng b trng
m hng, th hin tnh a hnh polymorphism bng cch cho php la chn nhp thng
tin)
o Vit phng thc in ton b danh sch cc hng ha.
- To lp cho phn th nghim, vi menu la chn thc hin cc chc nng theo yu cu.
-
Bi 9. Vi 1 tp mini cc loi xe trong th gii thc cho bn di:
Yu cu qun l:
- Thng tin tng loi xe.
- Tnh tin thu cho tng chic xe da trn gi tr xe nh sau:
o Xe p: Khng ng thu.
o Xe my: VAT=10% v thu trc b 5%.
o Xe t khch: Thu tiu th c bit 30% (s ch >=5); 50% (s ch<5), thu VAT=10%,
thu trc b 20%.
Bi 11. qun l thng tin v sinh vin ca trng HCN, thng tin v sinh vin c t chc
nh sau:
Bi 12. To lp tru tng (abstract class) Shape vi 3 phng thc tru tng draw() , erase(
), and move(int x, int y ). To cc lp con nh lit k bng di y ng thi ghi (overriding)
cc phng thc tru tng, cc phng thc ny in cu thng bo ra console.
Bi 1. Cng ty TrueLove:
a) Cng ty TrueLove cn lu tn ca cc nhn vin ca mnh. Mi thng mt nhn vin s c chn
ngu nhin nhn mt qu tng. Hy dng tuyn tp vit chng trnh qun l danh sch nhn
vin.
b) Cng ty TrueLove cn t tn cho sn phm mi, tn sn phm c chn t tn ca nhn vin, v
vy tn khng c trng, tn ch c dng c 1 ln. Hy dng tuyn tp vit chng trnh
cung cp tn cho sn phm.
c) Cng ty TrueLove mun dng tn ph bin nht cho sn phm ca h, tn ph bin l tn ging
nhau nhiu nht. Hy dng tuyn tp vit chng trnh cung cp tn cho sn phm.
d) Cng ty TrueLove mun cho nhn vin i du lch, chnh sch c to ra l u tin cho nhng
ngi ng k trc. Hy dng tuyn tp vit chng trnh ng k du lch.
e) Cng ty TrueLove mun to danh sch cc khch hng theo th t tng dn theo doanh s. Hy
dng tuyn tp vit chng trnh qun l danh sch khch hng.
Bi 4. Vit chng trnh to 2 tp hp cc s nguyn (Set). Tnh giao, hi, hiu 2 tp trn, xut ra kt
qu tng dn.
Hng dn: - Dng TreeSet
Bi tp Mn: Lp trnh hng i tng - Trang 62
a.addAll(b) tp a hi tp b
a. retainAll(b) tp a giao tp b
a. removeAll(b) tp a tr tp b
Bi 5. S dng ArrayList biu din mt vi chc nng ca interface Collection . Chng trnh
thc hin s dng 2 mng Color trong ArrayLists v dng Iterator loi b cc phn t
trong mng th 2 ca tp hp ArrayList t mng th nht ca tp hp ArrayList.
Bi 7. Vit chng trnh tra cu danh b in thoi, s dng cu trc collection bt k cho ph hp
lu tr thng tin ca danh b v d dng thc hin cng vic:
- Tra cu theo a ch .
- Tra cu theo s in thoi, 1 a ch c th ng k nhiu s in thoi c nh.
To lp kim tra
// Khng cn p kiu
int v = iOb.getob();
System.out.println("gia tri: " + v);
To lp kim tra
public class TwoGenericsTest
{
public static void main(String args[])
{
TwoGenerics<Integer, String> tgObj =
new TwoGenerics<Integer, String>(88, "Generics");
tgObj.showTypes();
int v = tgObj.getob1();
System.out.println("gia tri: " + v);
Bi 3. Thao tc vi Generic lng nhau (nested generic type). To mt danh sch List lu tr danh sch
cc danh sch (chui).
Hng dn:
import java.util.ArrayList;
import java.util.List;
To lp kim tra.
public class PersonTest
{
public static void main(String[] args)
{
Person[] authors = {
new Person("D", "S"),
new Person("J", "G"),
new Person("T", "C"),
new Person("C", "S"),
new Person("P", "C"),
new Person("B", "B") };
Person[] people = {
new Person("C", "S"),
new Person("N", "K"),
new Person("T", "C"),
new Person("C", "D") };
int index = 0;
System.out.println("\nTim kiem:");
Bi 5. Thit k 1 lp hot ng nh mt l th vin cho cc loi Media sau: sch, video v bo ch.
Yu cu vit c 2 cch: thng thng v Generic.
Hng dn:
Cch vit thng thng
import java.util.List;
import java.util.ArrayList;
interface Media
{
}
Bi 6. Vit phng thc Generic tnh max, min trong mt tp hp. S dng cch vit c dng
wildcard.
Hng dn:
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
class ComparatorsEx
{
public static <T> T max(Collection<? extends T> coll,
Comparator<? super T> cmp)
Bi tp Mn: Lp trnh hng i tng - Trang 69
{
T candidate = coll.iterator().next();
for (T elt : coll)
{
if (cmp.compare(candidate, elt) < 0)
{
candidate = elt;
}
}
return candidate;
}
System.out.println(ComparatorsEx.max(strings));
System.out.println(ComparatorsEx.min(strings));
System.out.println(ComparatorsEx.max(strings,sizeOrder));
System.out.println(ComparatorsEx.min(strings,sizeOrder));
}
}
Bi 7. Vit phng thc Generic cho php in ra mng cc phn t, phng thc ny cho php in
phn t mng ca nhiu kiu d liu khc nhau.
Hng dn:
public class PrintArrayGeneric
{
// phng thc Generic
public static <E> void printArray(E[] inputArray)
{
// hin th cc phn t mng
for (E element : inputArray)
System.out.printf("%s ", element);
System.out.println();
}
System.out.println("Mang so nguyen:");
Bi tp Mn: Lp trnh hng i tng - Trang 71
printArray(integerArray); // tham s l mng s nguyn
System.out.println("\nMang doubleArray co noi dung:");
printArray(doubleArray); // tham s l mng Double
System.out.println("\nMang characterArray co noi dung:");
printArray(characterArray); // tham s l mng k t
}
}
Bi 8. S dng Generic tham s, dng k t i din wildcard ?. Vit phng thc Generic cho
php in ra mng cc phn t, phng thc s dng tham s Generic.
Hng dn:
import java.util.ArrayList;
import java.util.List;
list1.add ("Hello");
list1.add ("World");
printList (list1);
Bi 9. S dng bounded wildcard trong phng thc. Vit phng thc Generic cho php tnh
trung bnh cc gi tr trong mng.
Hng dn:
C php: GenericType<? extends upperBoundType>
import java.util.ArrayList;
import java.util.List;
Bi 10. S dng bounded type trong lp. Vit lp Generic cho php tnh trung bnh cc gi
tr trong mng s (s nguyn/s thc).
Hng dn:
class Stats<T extends Number>
{
T[] nums;
Stats(T[] o)
{
nums = o;
}
double average()
{
double sum = 0.0;
Bi 11. S dng bounded type trong lp v wildcard ?. Vit lp Generic cho php tnh
trung bnh cc gi tr trong mng v so snh gi tr trung bnh.
Hng dn:
Vit lp GenericStats dng bounded type v phng thc so snh 2 i tng thuc lp
GenericStats dng wildcard.
class GenericStats<T extends Number>
{
T[] nums;
GenericStats(T[] obj)
{
nums = obj;
}
double average()
{
double sum = 0.0;
for(int i=0; i < nums.length; i++)
{
sum += nums[i].doubleValue();
}
return sum / nums.length;
}
return false;
}
}
Vit lp kim tra
public class GenericStatsTest
{
Bi tp Mn: Lp trnh hng i tng - Trang 74
public static void main(String args[])
{
Integer inums[] = { 1, 2, 3, 4, 5 };
GenericStats<Integer> iob = new GenericStats<Integer>(inums);
double v = iob.average();
System.out.println("Trung binh cua iob " + v);
Bi 12. Vit phng thc override trong lp Generic. Xt trng hp lp B tha k lp A v vit
override phng thc trong lp A.
class Gen<T>
{
T ob;
Gen(T o)
{
ob = o;
}
T getObject()
{
Bi tp Mn: Lp trnh hng i tng - Trang 75
System.out.println("Gen's getObject(): " );
return ob;
}
}
Gen2(T o)
{
super(o);
}
T getObject()
{
System.out.println("Gen2's getObject(): ");
return ob;
}
}
intObject.getObject();
longObject.getObject();
}
Gen(T o)
{
ob = o;
}
T getObject()
{
return ob;
}
}
//longObject = (Gen2<Long>)intObject;
}
}
Bi 13. Thao tc vi Generic Interface. Vit Interface vi 2 phng thc max, min tnh max,
min trong mt tp hp. Lp thc thi interface phi nh ngha chi tit vic x l ca 2 phng thc
ny.
C php chung
1. type-param-list is a comma-separated list of type parameters.
2. When a generic interface is implemented, you must specify the type arguments
class class-name<type-param-list>
implements interface-name<type-param-list> {
T max();
}
MyClass(T[] o)
{
vals = o;
}
return v;
}
public T max()
{
T v = vals[0];
return v;
}
}
public EVWordClass()
{
this("","","","");
}
}
Bi tp Mn: Lp trnh hng i tng - Trang 79
public void setWord(String word) {
this.word = word;
}
// Tra tu
public EVWordClass lookup(String word)
{
return dic.get(word);
}
System.out.println(dic);
//Them tu
EVWordClass w = new EVWordClass("Word2", "", "Tu thu ", "");
if(!dic.addWord(w))
System.out.println("Khong them duoc!");
//Tra tu
EVWordClass l = dic.lookup("word2");
if(l != null)
System.out.println(l.toString());
}
Bi 15. Mt qun bi trong b bi gm hai thuc tnh loi bi (c, r, chun, bch) v th t qun
bi(2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A). Dng Generic.
Vit cc lp sau:
- Lp m t qun bi
- Lp to b bi 52 qun bi khng trng nhau vi phng thc l xo bi (dng
shuffle())
- Lp kim tra
Hng dn:
Lp m t qun bi
public class Card
{
private int face;
private int suit;
public Card()
{
Bi tp Mn: Lp trnh hng i tng - Trang 81
this.face = (int)(Math.random()*4);
this.suit = (int)(Math.random()*13);
}
public int getFace()
{
return face;
}
public void setFace(int face)
{
this.face = face;
}
public int getSuit()
{
return suit;
}
public void setSuit(int suit)
{
this.suit = suit;
}
Lp m t b bi
import java.util.ArrayList;
import java.util.Collections;
cp.shuffleCardPack();
System.out.println(cp);
}
Bi 1. Vit chng trnh nhp vo mt chui v in ra chui nghch o ca chui nhp (Dng
BufferedReader v InputStreamReader).
inFile.close();
outFile.close();
}
}
Bi 4. Dng DataOutputStream v DataInputStram ghi v c nhng kiu d liu khc nhau trn
file.
Bi 5. Lit k danh sch cc th mc con v tp tin ca 1 th mc. Nu th mc, hin th thm <DIR>
pha trc ca tn.
import java.io.*;
public class FileApp
{
public static void main(String args[])
{
Bi tp Mn: Lp trnh hng i tng - Trang 85
File curDir=new File("C:\\");
String[] dirs=curDir.list();
Bi 6. Truy cp ngu nhin trn file, vit chng trnh ghi 6 s kiu double xung file, ri c ln theo
th t ngu nhin
Bi 10. nh ngha lp lu tr thng tin ca sinh vin. Cho php nhp d liu sinh vin v lu
tr thnh file data.dat. c d liu t tp tin, a vo mng v hin th kt qu. Thng tin ca
SV bao gm m, h tn, a ch, s in thoi v im trung bnh ca nm hc va qua.