You are on page 1of 42

Bi tp Java By Example

Sch bi tp Java by Example Ti liu lu hnh ni b


Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 1 of 42
35/115 Ph inh Cng - Hong Mai
Sch bi tp Java by Example Ti liu lu hnh ni b
Li gii thiu
Sch bi tp do tp th gio vin AiTi-Aptech thit k v uoc s dung nhu mt phn khng th
tch ri khi gio trnh ang hoc ca Aptech n vi cc hoc vin ang theo hoc ti Trung tm.
Tp sch bi tp ny l ti liu luu hnh ni b, ch dnh cho cc hoc vin theo hoc ti Trung tm
o to Lp trnh vin Quc t AiTi-Aptech. Moi hnh thc sao chp li ni dung ca sch l vi phm
bn quyn v khng tun th Lut S hu tr tu ca Nh nuc Vit Nam.
AiTi-Aptech lun mong mi to dung mt mi trung hoc tp tt cho cc bn hoc vin theo hoc ti
trung tm. Moi kin ng gp v xy dung Sch bi tp, ci tin h thng xin gi mail v
contact.aiti@gmail.com hoc ung dy nng (04) 6 64 8848. Chng ti s ghi nhn v ci
tin c th cung cp cho cc bn mt mi trung hoc tp ngy mt tt hon.
"Su nghip tuong lai ca cc bn l thnh cng ca chng ti
i thit k Sch bi tp
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 3 of 42
35/115 Ph inh Cng - Hong Mai
Vit Nam lun thiu Lp trnh vin ng cp Quc t
Contents
L i gi i thi u ............................................................................................................................................................. 3
B.Tham kh o ......................................................................................................................................................... 5
Session 2: Variables and !erators ........................................................................................................................... "
Session 4: #ntrodu$ing %lasses ................................................................................................................................ 1&
'.T(m t t l) thu* t ................................................................................................................................................. 1&
1. L u tr m ng $+$ , i t ng th-ng .ua tham $hi u
............................................................................................................................................................................ 1&
2. / .u* trong 0a1a ........................................................................................................................................... 1&
3. 2i u 3numerate trong 0a1a ............................................................................................................................. 11
4. Thu h i b nh 1 i ti n tr4nh 5arbage %olle$tion
............................................................................................................................................................................ 15
%. B6# T P ........................................................................................................................................................... 1"
Session 5: 'rra*s ..................................................................................................................................................... 17
'.T(m t t l) thu* t ................................................................................................................................................. 17
1. 5i i thi u m ng trong 0a1a ............................................................................................................................. 17
2. 8 l) String trong 0a1a .................................................................................................................................... 2&
3. L9m 1i $ 1 i l ! StringBuilder ........................................................................................................................ 22
B. Tham kh o ...................................................................................................................................................... 22
%. B6# T P ........................................................................................................................................................... 24
Session ": Pa$kages and '$$ess S!e$ifiers .............................................................................................................. 25
'.T(m t t l) thu* t ............................................................................................................................................. 25
:;=> ?@ ?A@BCDEFGF@H IJ?A AK> ..................................................................................................................... 25
L;MGFNOP@KCQ> ?@RSFNTJUVJWSNXYFFZHH[\ZF>]ZTH ......................................................................................... 25
3. ^ield and _ethod _odifier ............................................................................................................................. 2"
Session 7: #nheritan$e and #nterfa$es .................................................................................................................... 27
'.T(m t t l) thu* t ................................................................................................................................................. 27
:;`aSN@OC ........................................................................................................................................................... 27
L;`>a J NTC DaO@>a\b> aS?cMdDCT>C?NeZNJT?fU\ZHg ........................................................................................... 27
Sch bi tp Java by Example Ti liu lu hnh ni b
h;i@?AN@SFDEN@Jj F Nk?@W? ............................................................................................................................. 2l
m;nDZTodCIXpC \F@ jO?A ................................................................................................................................... 2q
r;s?NZTtCFZHXu>CdI>a ? .................................................................................................................................... 3&
B.Tham 2h o .......................................................................................................................................................... 3&
%.B9i t ! ................................................................................................................................................................. 31
Session l: _ore n %lasses ................................................................................................................................... 32
'.T(m t t l) thu* t ................................................................................................................................................. 32
1. Ph m 1i $ a bi n vS$o!ew: .............................................................................................................................. 32
2. Bi n ngu*xn th *: ........................................................................................................................................... 32
3. Bi n tham $hi u: ............................................................................................................................................ 34
4. T kh(a Stati$: Bi n 19 Ph ng th $. ............................................................................................................ 34
5. u ,i m 19 nh $ ,i m $ a !h ng th $ #nstan$e: .................................................................................... 35
Session q: ygo i l z 3{$e!tions ............................................................................................................................. 37
'.T(m t t l) thu* t ................................................................................................................................................. 37
1. 5i i thi u: ....................................................................................................................................................... 37
2. _ $ ,|$h $ a 1i $ { l) ngo i l : .................................................................................................................. 37
3. _- h4nh { l) ngo i l : ................................................................................................................................... 37
4. %+$ ngo i l , $ , nh ngh}a 1 i l nh ~thro 19 ~thros: ........................................................................... 3q
5. 'ssertionz8+$ nh n: ........................................................................................................................................ 4&
B.Tham kh o ........................................................................................................................................................... 41
%.B9i t ! ................................................................................................................................................................. 41
Session 1: Introduction to Java
A.Tm tt l thuyt
1.Lp trnh hng !i tng
Hung i tuong (object orientation) cung cp mt kiu mi xy dung phn mm. Trong kiu
mi ny, cc i tuong (object) v cc lp (class) l nhng khi xy dung trong khi cc phuong
thc (method), thng ip (message), v su tha k (inheritance) cung cp cc co ch ch yu.
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 5 of 42
35/115 Ph inh Cng - Hong Mai
".Lp v# $i tng
a.i tng
Khi chng ta vit mt chuong trnh hung i tuong cng c nghia l chng ta ang xy dung mt
m hnh ca mt vi b phn trong th gii thuc. Tuy nhin cc i tuong ny c th uoc biu
din hay m hnh trn my tnh.
Mt i tuong th gii thuc l mt thuc th cu th m thng thung bn c th s, nhn thy hay
cm nhn uoc. Tt c cc i tuong trong th gii thuc u c trng thi (state) v hnh ng
(behaviour).
b.Lp
Trong th gii thuc thng thung c nhiu loi i tuong cng loi. Chng hn chic xe p ca bn
ch l mt trong hng t chic xe p trn th gii. Tuong tu, trong mt chuong trnh hung i
tuong c th c nhiu i tuong cng loi v chia s nhng c im chung. S dung thut ng
hung i tuong, chng ta c th ni rng chic xe p ca bn l mt th hin ca lp xe p.
Cc xe p c mt vi trng thi chung (bnh rng hin ti, s vng quay hin ti, hai bnh xe) v
cc hnh ng (chuyn bnh rng, gim tc). Tuy nhin, trng thi ca mi xe p l c lp v c
th khc vi cc trng thi ca cc xe p khc. Truc khi to ra cc xe p, cc nh sn xut
thung thit lp mt bng thit k (blueprint) m t cc c im v cc yu t co bn ca xe p.
Sau hng lot xe p s uoc to ra t bn thit k ny. Khng hiu qu nu nhu to ra mt
bn thit k mi cho mi xe p uoc sn xut.
Sch bi tp Java by Example Ti liu lu hnh ni b
Trong phn mm hung i tuong cng c th c nhiu i tuong cng loi chia s nhng c im
chung nhu l: cc hnh ch nht, cc mu tin nhn vin, cc on phim, . Ging nhu l cc nh
sn xut xe p, bn c th to ra mt bng thit k cho cc i tuong ny. Mt bng thit k
phn mm cho cc i tuong uoc goi l lp (class).
3.Lp trnh hng di tng vi Java
Cc c im ca Java
on gin
hung i tuong
phn tn
thng dich
mnh m
bo mt
kin trc trung tnh
kh chuyn
hiu qu cao
a tuyn
linh ng
Ngui ta dng java lp trnh ra hu ht cc loi ng dung :
ng dung cho in thoi di ng , my tnh siu nh
ng dung cho my tinh bn
ng dung web
ng dung co s d liu
ng dung phn tn
.....
Th mnh ca java l c th chy trn cc h nn , cc kiu phn cng khc nhau .
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 7 of 42
35/115 Ph inh Cng - Hong Mai
Sch bi tp Java by Example Ti liu lu hnh ni b
_- h4nh so n th o d $h 19 $h * m t $h ng tr4nh a1a
%.Tham &ho
1.http://www.eecs.utoledo.edu/~ledgard/oop/page2b.html
2.http://vi.wikipedia.org/wiki/Lp_trnh_hung_i_tuong
3.http://java.sun.com/docs/books/tutorial/index.html
C.%#i tp
1.Ci t Java 6 trn my , cu hnh JDK_HOME,PATH, Vit chuong trnh Hello World
Tham kho http://java.sun.com/docs/books/tutorial/getStarted/cupojava/win32.html
2.Lm bi tp trong link sau http://java.sun.com/docs/books/tutorial/java/concepts/QandE/
questions.html
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page q of 42
35/115 Ph inh Cng - Hong Mai
Sch bi tp Java by Example Ti liu lu hnh ni b
Session ": 'aria(les and )perators
A.Tm tt l thuyt
1.%in v# &iu d liu
a.Tn hay d|nh danh cho bin
Mt tn l mt chui cc k tu gm cc ch, s, du gch dui (_), v du dollar ($).
Mt tn phi bt u bi mt ch, du gch dui (_), hoc du dollar ($). N khng th bt
u bi mt s.
Mt tn khng th l mt t kha.
Mt tn khng th l true, false, hoc null.
Mt tn c th c di bt ky.
b.Khai bo bin
Cng thc: datatype variableName;
V du:
int x; // Khai bo x l mt // bin nguyn (integer);
double bankinh
char a;
Java l ngn ng inh kiu mnh m (strongly-typed) , bao gm cc kiu nguyn thu:
byte
short
int
long
float
double
char
boolean
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 11 of 42
35/115 Ph inh Cng - Hong Mai
Cc lp uoc xy dung trn cc kiu nguyn thy ny (hoc mng ca cc kiu nguyn thy)
Ngoi cc kiu nguyn thy, Java h tro rt nhiu cc kiu d liu phc tp , l cc lp uoc xy
dung t cc kiu nguyn thy.
Nhu String biu din chui k tu , ArrayList biu din mng ng ...
".*ut nhp trong +ava
Java c th dng lp trnh nhiu kiu ng dung . Vi mi kiu ng dung s c thu vin h tro
xut nhp ring .
Trong cc ng dung dng lnh chng ta cn thao tc vi hai dng xut nhp chun l System.in
v System.out
a.S dng di tng xut System.out
i tuong System.out h tro rt nhiu phuong thc c th xut d liu ra thit bi xut (thung l
mn hnh dng lnh). S dung ch yu l phong thc print v printf
v du :
System.out.print("Hello");
System.out.print(123);
Dng printf khi mun s dung chui inh dng (tuong tu hm printf trong ANS C).
System.out.printf("The number is d",123);
b.S dng di tng nhp System.in
nhp d liu vo truong trnh Java qua System.in ta c th se dung ngay cc phuong thc c
sn trong System.in nhu phuong thc read.
Tuy nhin cc phuong thc ny ch h tro nhp d liu dng th (m ASC ca k tu g vo). Nu
mun xut nhp c mt chui, hay cc kiu d liu khc char, s kh phc tp. Tuy nhin t phin
bn java 1.5 chng ta c mt lp mi lm vic ny Scanner ( trong gi java.util);
V du nhp mt s int t bn phm :
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Sch bi tp Java by Example Ti liu lu hnh ni b
c.S dng tham s truyn vo hm main
truyn tham s vo hm main ta thuc hin truyn trong khi thuc hin cu lnh java chy
chuong trnh
v du : lp MyClass
1. public class MyClass
2.
3. public static void main(String args)
.
5. System.out.println(args);
6.
.
.
java MyClass Hello
s in ra Hello
%.Tham &ho
1.http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html
2.http://java.sun.com/j2se/1.5./docs/api/java/util/Scanner.html
C.%#i tp
1.Vit chuong trnh cng hai s nguyn uoc nhp t bn phm
2.Lm bi tp ti link http://java.sun.com/docs/books/tutorial/java/data/QandE/numbers-
questions.html
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 13 of 42
35/115 Ph inh Cng - Hong Mai
Session ,: -ecision./a&ing and Iterations
A.Tm tt l thuyt
Trong java cc cu trc iu khin uoc tha k hon ton t C , bao gm
- Cu trc r nhnh if-else
- Cu trc lp for, while , do-while
%.Tham &ho
1.http://java.sun.com/docs/books/tutorial/java/nutsandbolts/flow.html
C.%#i tp
1. Vit chuong trnh yu cu ngui dng nhp vo mt s tu nhin . Thuc hin kim tra s
nhp vo l chn hay l .
2.Lm bi tp ti link
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/QandE/questions_flow.html
3.Vit truong trnh in ra dy fibonacci
Sch bi tp Java by Example Ti liu lu hnh ni b
Session 0: Introducing Classes
A.Tm tt l thuyt
1. Lu tr mng c1c !i tng th2ng 3ua tham chiu
- Trong Java, mt mng cc i tuong ch luu cc tham chiu (references) ti cc i tuong
.
- C th khi to mng cc i tuong theo cch sau
Employee staff new Employee3;
- S dung vng lp khi to i tuong
for(int i; istaff.length(); i)

staffi new Employee();

Khi to i tuong ca mng vi tham s cho hm khi to


staff new Employee("Peter,3,12 oad);
staff1 new Employee("Peter,3,12 oad);
staff2 new Employee("Peter,3,12 oad);
". $ 3uy trong Java
- Khi nim quy : Nu li gii ca bi ton P uoc gii quyt bng bi ton P c dng
ging nhu P th li gii goi l li gii quy. Gii thut tuong ng vi li gii nhu vy goi
l gii thut quy.
- inh nghia phuong thc quy : phuong thc quy l phuong thc thuc hin goi chnh n
trong thn phuong thc. Mt phuong thc quy uoc inh nghia bi 2 phn :
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 15 of 42
35/115 Ph inh Cng - Hong Mai
o Phn neo (anchor) : Phn ny uoc thuc hin khi cng vic qu on gin, c th tr li kt
qu truc tip ch khng cn mt phuong thc con no c.
o Phn quy : Trong trung hop phuong thc chua th gii bng phn neo, cn xc inh
cc phuong thc con v goi quy gii cc phuong thc con . Khi c kt qu tr v
ca nhng phuong thc con th phi hop kt qu ca chng li tr li kt qu ca
phuong thc goi ban u.
- V du phuong thc quy (Tnh giai tha)
public class actorial
public static long factorial(long x)
if (x ) throw new llegalArgumentException("x phai ");
if (x 1) return 1; //Phan neo
else return x factorial(x-1); //Phan de quy

Minh hoa
- Cc c im ca phuong thc quy :
o S ln goi cc phuong thc l chiu su quy.
o Phuong thc quy c th dn ti trn vng nh Stack
o Moi phuong thc quy phi c iu kin kt thc quy
o Pha Winding bt u khi phuong thc quy uoc goi v kt thc khi iu kin neo uoc
thuc hin - pha ny tuong ng vi push vo stack mt block b nh bng gi tri tr v
ca phuong thc quy
o Pha nwinding xy ra ngay sau pha winding, kt thc khi kt qu ln goi u tin ca
hm uoc tr v - pha ny tuong uong vi pop ra tng block trong stack.
,. 4iu 5numerate trong Java
- Mt kiu enumerate l kiu d liu to bi tp c inh cc hng (constants).
- Mt s v du v kiu enum
Sch bi tp Java by Example Ti liu lu hnh ni b
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 17 of 42
35/115 Ph inh Cng - Hong Mai
public enum Day
SNDA, MONDA, TESDA, WEDNESDA, THSDA, DA, SATDA
;
public enum Sie
SMALL, MEDM, LAGE, ETA
;
- Trong Java 5.. Kiu enum uoc inh nghia theo cch trn thuc su l mt class, class Day
c hm i tuong, class Sie c i tuong. C th inh nghia mt kiu Enum phc tp
hon bng cch thm hm khi to, cc trung, phuong thc nhu v du sau:
public enum Sie
SMALL("S"), MEDM("M"), LAGE("L"), ETA ("L");
private Sie(String abbreviation) this.abbreviation abbreviation;

public String getAbbreviation()


return abbreviation;

private String abbreviation;

- Tt c cc lp thuc kiu enum inh nghia trn u k tha lp java.lang.Enum ca Java,


do vy s k tha cc phuong thc ca lp ny (tra AP)
- V du v cch lm vic vi kiu enum :
public class EnumTest
Sch bi tp Java by Example Ti liu lu hnh ni b
public static void main(String args)
Scanner in new Scanner(System.in);
System.out.print("Enter a sie: (SMALL, MEDM, LAGE, ETA) ");
String input in.next().topperCase();
Sie sie Enum.valueOf(Sie.class, input);
System.out.println("sie" sie);
System.out.println("abbreviation" sie.getAbbreviation());
if (sie Sie.ETA)
System.out.println("Good job--you paid attention to the _.");

- u im khi s dung kiu enum :


o Khi cn s dung mt tp c inh cc hng.
o D nh, d oc code, d s dung v tn t resources b nh chnh.
o Kiu uoc kim tra ti thi im bin dich (type-safe)
o Hiu nng uoc so snh gn tuong uong khi thuc hin vi hng s int
- Nhuoc im :
o Kh s dung vi ngui mi lm quen lp trnh
0. Thu hi ( nh vi tin trnh 6ar(age Collection
- Tin trnh Garbage Collection uoc thuc hin bi Garbage Collector trong Java c nhim vu
"ti s dung b nh - hay memory recycling
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 1q of 42
35/115 Ph inh Cng - Hong Mai
- Garbage Collector thuc hin cc nhim vu sau :
o Thu thp cc i tuong (obj) khng cn tham chiu v tin hnh lp lich loi b chng
khi vng Heap do JVM qun l
o Chng phn mnh vng nh Heap
- u im ca Garbage Collection :
o Gip lp trnh vin khng phi x l gii phng b nh khi lp trnh (vn gy ra li trn
cc ngn ng khng s dung Garbage Collector), gim thiu Memory leaks.
o o m tnh ton vn ca chuong trnh Java, GC cng l mt phn quan trong trong
kh nng bo mt v tnh an ton ca JVM
- Nhuoc im ca Garbage Collection :
o nh hung ti hiu nng chuong trnh do JVM phi theo di cc i tuong khi ang uoc
tham chiu trong qu trnh thuc thi m, sau phi finalie v gii phng cc i tuong
khng cn tham chiu truc tip.
%.Tham &ho
- Java by Example ACCP.i.
- Core Java
th
Edition by Cay Horstman.
- eginning Java 5.
- Giai Thuat va Lap Trinh by Le Minh Hoang
- Web - java.sun.com/docs/
C. %7I T8
//i tp t CD Java y Example
//i tp thm
i 1 : Mt dy ibonacci c dng nhu sau : ,1,1,2,3,5,,13,21., dy trn bt u bi 2
s v 1, cc s sau bng tng ca 2 s truc lin k.
a. Vit phuong thc quy tnh s th n ca dy ibonacci : v du fibo() 2;
b. Tuong tu cu a nhung khng s dung quy
i 2 : Vit chuong trnh gii bi ton Thap Hanoi s dung phuong php quy v phuong
php lp
Sch bi tp Java by Example Ti liu lu hnh ni b
i 3 : Vit chuong trnh sau s dung phuong php quy : Tnh ly tha power(base,
exponent) s tr li baseexponent, v du power(3,) 3333. Gi tri base v
exponent nhp vo t bn phm, kim tra exponent phi ln hon hoc bng 1.
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 21 of 42
35/115 Ph inh Cng - Hong Mai
Session 9: Arrays
A.Tm tt l thuyt
1. 6ii thiu mng trong Java
- inh nghia mng : Mt mng trong Java l i tuong cha mt tp cc bin uoc t tn
v c cng kiu. Mi bin trong mng goi l mt thnh phn ca mng (array element).
tham chiu n mt thnh phn ca mng phi s dung ch muc (index) ca thnh phn .
- Khai bo v khi to mng
int primes;
int primes;
primes new int1; //dinh nghia mang 1 so
int primes new int1;
primes; //thanh phan thu 1 cua mang
int primes 2,3,5,; //khoi tao dinh san
//khoi tao su dung vong lap
double data new double5;
for(int i ; i data.length; i)
datai 1.;

//khoi tao su dung java.util.Arrays


Sch bi tp Java by Example Ti liu lu hnh ni b
double data new double5;
Arrays.fill(data,1.);
- Mng ca mng hay mng nhiu chiu
float temp new float1365;
float samples;
samples new float5;
long beans new long123;
- Mng cc k tu
char message new char5;
java.util.Arrays.fill(message,_);
char vowels a,e,o,u,i;
char names new char55;
- Sp xp mt mng :
//ubble Sorting
int array 2,,,13,5,6;
for(int i1; iarray.length; i)
for(int j; jarray.length-i;j)
if(arrayjarrayj1)
int temparrayj; arrayjarrayj1;
arrayj1 temp;

Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 23 of 42


35/115 Ph inh Cng - Hong Mai
- Tm kim mng
//Tim kiem tuyen tinh - linear search
int array 2,,,15,3,1;
int key 2;
for(int i ; iarray.length; i)
if(arrayikey)
System.out.println("esult arrayi);
break;

//Tim kiem nhi phan tren mang da sap xep search


//return -1 neu khong tim thay
public int binarySearch(int array, int key)
int low ; // low element index
int high array.length - 1; // high element
int middle; // middle element index
// lap cho den khi low high index
while ( low high )
middle ( low high ) / 2;
if ( key array middle )
return middle;
else if ( key array middle )
high middle - 1;
else
low middle 1;

Sch bi tp Java by Example Ti liu lu hnh ni b


return -1;

". * l String trong Java


Tm tt phong thc ca java.lang.String
char
charAt(int index)
Tr l i gi+ tr $har t i inde{ $ho tr $
int
codePointAt(int index)
Tr l i k) t vuni$ode $ode !ointw t i inde{ $ho tr $
int
codePointBefore(int index)
Tr l i k) t vuni$ode $ode !ointw tr $ inde{ $ho tr $
int
codePointCount(int beginIndex, int endIndex)
Tr l i s $+$ uni$ode $ode !oint trong m t kho ng
int
compareTo(String anotherString)
So s+nh 2 {u
boolean
endsWith(String suffix)
2i m tra {em {u $( k t th$ 1 i m t h u t kh-ng
boolean
equalsIgnoreCase(String anotherString)
So s+nh 2 {u b .ua $h hoa $h th ng
boolean
startsWith(String prefix)
2i m tra {em {u $( b t , u 1 i m t ti n t kh-ng
char[
toCharArray()
%hu* n m t {u t i m t m ng k) t
String
toLowerCase()
%hu* n t t $ k) t th9nh $h th ng
String
toUpperCase()
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 25 of 42
35/115 Ph inh Cng - Hong Mai
%hu* n t t $ k) t th9nh $h hoa

,. L#m vic vi lp String%uilder
Tm tt phong thc ca java.lang.StringBuilder
String!uilder
appendCodePoint(int code"oint)
Thxm 19o $u i {u d ng string $ a $ode Point
String!uilder
delete(int start, int end)
8(a k) t trong substring
String!uilder
deleteCharAt(int index)
8(a k) t t i inde{
#oid
getChars(int src!egin, int src$nd, char[ dst, int dst!egin)
%o!* $+$ k) t , n m t {u ,|$h
String!uilder
replace(int start, int end, String str)
Tha* th $+$ k) t trong {u b i m t {u kh+$
#oid
setCharAt(int index, char ch)
2) t t i 1 tr| inde{ , $ tha* , i t i $h
#oid
setLength(int new%ength)
Thi t , t $hi u d9i $ a {u !
String
substring(int start, int end)
Tr l i m t {u $on
%. Tham &ho
- Java by Example ACCP.i.
- Core Java
th
Edition by Cay Horstman.
- eginning Java 5.
- Giai Thuat va Lap Trinh by Le Minh Hoang
- Web - java.sun.com/docs/
Sch bi tp Java by Example Ti liu lu hnh ni b
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 27 of 42
35/115 Ph inh Cng - Hong Mai
C. %7I T8
//i tp t CD Java y Example
//i tp thm :
i 1 : Vit mt chuong trnh oc vo mt bin kiu String on text cho truc, trch rt
cc t (words) trong on text v sp xp chng theo th tu bng ch ci. Hin thi
danh sch sp xp ln mn hnh. Gii thut sp xp ty chon.
i 2 : inh nghia mt mng ca 1 xu kiu String bt ky sao cho mi xu c inh dng
"day/month/year, v du "21/12/2. Phn tch cc thnh phn trong xu sau ua ra
mn hnh 1 xu dui dng nhu sau 21 December 2.
i 3 : Vit mt chuong trnh o nguoc trt tu cc k tu trong tng t ca mt xu (nhp
vo t bn phm). V du "To e Or Not To e s tr thnh "oT e rO toN oT e
i : Vit mt chuong trnh s dung cc s ngu nhin to cu. Ci t mng cc
string l "article, "noun, "verb, "preposition. To cc cu bng cch lua chon ngu
nhin mi t t mt mng theo trt tu sau : article-noun-verb-preposition-article. Cc t
trong cu cch nhau bng 1 du cch. n ra 1 cu ngu nhin trn mn hnh. Cc mng
c th nhu sau
Article : the, an, a, one, some, any
Noun : boy, girl, man, dog, car, town
Verb : drove, jumped, ridden, walked, kicked, hit
Preposition : to, from, over, on, under
i 5 : Vit mt chuong trnh oc vo mt chui, sau tokenie chui s dung
StringTokenier v ua ra cc token theo th tu nguoc li.
i 6 : Vit mt chuong trnh oc vo chui s bt ky : vd 113222323, sau in ra mn
hnh dui dng : 1,132,22,323
i : Vit mt chuong trnh oc vo chui k tu bt ky, sau m s ln xy ra mi t
trong chui k tu v in ra mn hnh theo inh dng : word - number of words
Sch bi tp Java by Example Ti liu lu hnh ni b
Session :: 8ac&ages and Access Speci;iers
A.Tm tt l thuyt
1. $ii <=<?=@ABCDED=F duu ng?GH
-MtgitrongJavaduoccoinhumtthumuc,lnoitchccclpvccgiaodin.Mtgic
thchaccgicon.
-Mucdchsdunggi:
+Chophptchccclpthnhccdonvinhhon,cthddngxcdinhvitr
+Trnhvicdttnbixungdtkhicqunhiulp
-Cchtaovsdunggi
+xcdinhmtlphocmtgiaodinlthnhphntronggi,dngdutinca
lpphisdungkhaibosau:
package <packagename>;
+ Tngoibaogi!"ng#$%!b&'#()b*ng!+,'+$ng-./+0ng!o/+o1ng'2&ng
+345678nggoi'2ong9:';<=>5678ng'?/+oaimpo@t nAB sau
i9=o2'=a!/agCna9CD!;a55EFGG5678ng9:';<='+):!goi#o
i9=o2'=a!/agCna9CDHGG5678ng'o.nb:goi
IJ);Kn+i9=o2'=+1i#$%!#L'5a)!J);Kn+/+aibMogoi-.'2$<!#Nn+ng+Oa;<=
". IEDJKL=GAMHi nh mNDJOPQRPSNJTUDDVFFWXVDHYHVOF
-Cctkhadinhmctruyxutdngdchdinhquyntruycptilpvccthnhphnca
lp
-Bngtmttquyntruycpnhusau:
public protected No modifier private
Class es es es es
Packages es es es No
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 2q of 42
35/115 Ph inh Cng - Hong Mai
Subclass es es es No
Different package es No No No
,. Zield and /ethod /odi;ier
i. Lnhngtkhabtrochovicchdinhnhngthuctnh(field)vphuongthc
(method)dngchovicdiukhincctruyxutdnnguidng
ii. CthduocdngcngviaccessspecifiernhupuPQichocp@otecteR.
SoQatiQe:chsdungchothuctnh(field),chophpmtthuctnhduocdng
bkhixldalung,cnghialnugitricathuctnhthaydi,ttccclung
truyxutdnthuctnhddusnhnthy.
natiSe:chsdungchophuongthc(method),chobitsuthuchindydca
phuongthcdduocdtbnngoilp.inhnhlccphuongthcduocthuchin
bnngoiJVMvduocdttrongccthuvinkhngvitbngJava
t@ansient:dngdkhaibonhngthuctnh(field)khngduocluutrnhumt
phncadituong,phucvuchovictitkimbnh
Sch bi tp Java by Example Ti liu lu hnh ni b
Session [: Inheritance and Inter;aces
A.Tm tt l thuyt
1. 4\NJ=KA
-Lmtkhinimchophpsdunglaiccdoancodecsn.Trongtrunghopnguilptrnh
muntaomtlp,trongkhidcsnmtlpkhcvinhngdoancodecthsdunglai,khid
chvicthaklailpcsn.
-Mtlpthaklailpcsnduocgoillpcon(sub-class),lpduocthakgoillpcha(
super-class).
-TtccclptrongJavaduocngmdinhllpconcalpObject.
-Mtlpconchcththaktduynhtmtlpcha
-DngtkhaeTtenRsdbiudinsuthak
class Mammal {}
class hale e!"en#s Mammal {}
-Mtlpconskthattcccthuctnh,phuongthcvcnhnglpduoclngtronglp
cha ( nested-class). KhngkthaConstructor.
-Lpconskthattcccthnhphnduockhaibop@otecteR hocpuPQic calpcha,
khngphuthucviclpconthucgino.
2.Kiu tra vhi pbin(CovariantReturnTypes)
-LmttnhnngmitrongJ2SE5.0,chophpkhioverridemtmethodtronglpchacthtr
vmtkiudliumkiudliudlsub-classcakiutrvtronglpcha
-Vdu:
class $"u#en" {
public %umber &e"Mar's () {
*+,-*..+01-23+*45677,*89:2;,<=>,?@.A,B-;CDEF1-23+*
}
}
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 31 of 42
35/115 Ph inh Cng - Hong Mai
class G!chan&e$"u#en" e!"en#s $"u#en" {
public Hn"e&er &e"Mar's() {
*+,-*..+0I.,+A+*45677,*89:2;,<=>,?@.A,B-;CDEFI.,+A+*
}
}
Trongvdutrn,vlpIntegerlsub-classcalpNumber,nndcsungmdinhcavicp
kiutNumbervInteger
,. 8hng thNDBCJ=P] DJ^<h _ n
-Phuongthcn
Bnchtcavicoverridemtmethodduqckhaibostaticlndimethodd.
Vdu:
class JKK {
public s"a"ic vKi# me"hK#() {
$Ls"emMKu"Mprin"ln(Nin JKKN)O
}
}
class Par e!"en#s JKK {
public s"a"ic vKi# me"hK#() {
$Ls"emMKu"Mprin"ln(Nin ParN)O
}
}
Bn chtcadoancode trnkhng phi l mt v du v overridemtmethodduockhai bo
static.oancodetrnvduchovicmethodcalpconndimethodcalpcha.
-Thuctnhntrongmtlp:Mtthuctnhcalpconsndithuctnhcngtncalp
cha,ngayctrongtrunghopnccngkiudliu.Tronglpcon,chungtatruyxutdnthuc
tnhcalpchabngtkhasuper
0. )verload ` aaa XD=]K<?
Trongmtclasscthkhaibohaihaynhiuphuongthcccngtn,cngkiutrvnhungc
sluongthamsduvokhcnhau
Sch bi tp Java by Example Ti liu lu hnh ni b
-Vdu:
class QabKra"KrL {
public CKmpKun# ma'eCKmpKun#(Chemical aR Chemical b) {
SS TK sKme"hin&
}
public CKmpKun# ma'eCKmpKun#(Chemical aR Chemical bR Chemical c ) {
SS TK sKme"hin&
}
}
Nhuvyvicthucthiphuongthcsphuthucvoccthamstruynvotrongqutrnhgoi
OverloadingcthpdungviConstructor
9. Inter;aces ` 6iao dib n
-Thamchiuinterfacecthduocsdungdchanhngthucthcalpthucthi
interfaced
-Ccbinduockhaibotronginterfaceduocngmdinhlfinalvstatic
-Interfacecthduocthak
%.Tham 4ho
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 33 of 42
35/115 Ph inh Cng - Hong Mai
C.%#i tp
(Bitpchochuong6,7)
1. Taomtinterfacevsdungndhinthibnhphuongvluytha3camts
2. Taomtpackagecchamtclasschmtrvgiaithacadistruynvo.
Goidnhmdtmtclasstrongpackagekhc
3. Taomtclasstrongdccchmduocoverloaddtnhchuvihnhvung,tam
gic,chnht.Nutruynmtthamsstrvchuvihnhvung,2thamss
trvchuvihnhchnht,3thamsstrvchuvihnhtamgic
4. Lmtuongtubi3vicchmtnhdintch
Sch bi tp Java by Example Ti liu lu hnh ni b
Session c: /ore O !"#$$e$
A.Tm tt l thuyt
1. 8h%m vi c&a (in dScopee:
C hai kiu bin trong java:
in nguyn thy ( Primitive variable)
in tham chiu ( eference variable)
". %in nguybn th&y:
c s dng lu tr gi tr! t"u#c $iu d li%u nguy&n t"'y() c c"ia lm "ai l*+i(
,nstance )aria-les
.*cal )aria-les
,nstance )aria-le
Bi/n l*+i ny c $"ai -* -&n tr*ng l0p n"ng n1m ng*i t2t c3 cc met"*d( ,nstance )aria-les
l n"ng tr4ng c'a l0p m c"5 c $"6i gn duy n"2t $"i m#t l0p c $"6i t+*( 7c -i/n ny
t8n t+i $"i m#t instance class c"a -! "'y( 7c -i/n ny c9 t" c truy xu2t n/u l0p "*:c class
9 t8n t+i(
.*cal )aria-les;
Bi/n ny c $"ai -* -&n tr*ng m#t p"<ng t"=c v c"5 c truy xu2t -&n tr*ng p"<ng t"=c
9( Bi/n ny c"5 c $"6i t+* $"i p"<ng t"=c 9 c g>i( 7c -i/n ny s? -! "'y $"i p"<ng
t"=c 9 t"@c "i%n x*ng(
V d;
public class Vehicle{
private int horsepower; // Instance Variable
public void getEngineType(){
int numberO!ylinders; // "ocal Variable
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 35 of 42
35/115 Ph inh Cng - Hong Mai
horsepower # $%%%; // !an be accessed
&
public void getVehicleType(){
// !annot access this variable rom this menthod
numberO!ylinder # ';
&
&
Sch bi tp Java by Example Ti liu lu hnh ni b
,. %in tham chiu:
Bi/n t"am c"i/u c dAng lu tr cc Bi tngC cDng g8m "ai l*+i;
,nstance )aria-les(
.*cal )aria-les(
V d:
pu-lic class EixelE*intF
Eixel pixG HH ,nstance IeJerence )aria-le
pu-lic v*id s"*KEixelLMF
Eixel neKEixelG HH .*cal reJerence varia-le
N
pu-lic v*id setEixelLEixel pixM
F
t"is(pix O pixG
N
N
0. T' &ha Static: %in v# 8hng th(c.
Bi/n static c g>i l -i/n l0pC n9 t8n t+i 6 t2t c3 cc instance c'a l0p( P2t c3 cc instance c'a l0p
Qu c9 m#t -3n c*py c'a -i/n static 9(
E"<ng t"=c cDng c9 t" static(R#t p"<ng t"=c c9 t" Sn n"ng $"Tng t" g"i U( E"<ng t"=c ny
c truy xu2t tr@c ti/p -6i t&n class( E"<ng t"=c ny c"5 truy xu2t c cc -i/n l*calC cc t"u#c
tVn" static v cc Bi sB c'a p"<ng t"=c 9(
u im ca phng thc static;
E"<ng t"=c static c9 t" tri%u g>i tr@c ti/p -6i t&n class(
E"<ng t"=c static t"@c "i%n $"Tng 3n" "<ng /n tr+ng t"i c'a cc instance(
E"<ng t"=c static c9 t" !n" ng"Wa l+i tr*ng mXi instance class(
Y dng t*n t Z([ truy xu2t cc p"<ng t"=c tWn" t\ t&n class( L 7lass(met"*dLM MG
Nhc im ca phng thc static;
E"<ng t"=c static c g>i m $"Tng c]n p"3i $"6i gn m#t Bi tng( 7*mpiler c"5
$im tra $iu c'a Bi tng n<i m c"=a p"<ng t"=c static c g>i(
E"<ng t"=c static $"Tng t" g"i UC m:c dA n9 c9 t" Sn(
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 37 of 42
35/115 Ph inh Cng - Hong Mai
7c t"u#c tVn" $"Tng p"3i static s? $"Tng t" truy xu2t c -&n tr*ng p"<ng t"=c
static(
7c p"<ng t"=c $"Tng p"3i static c'a l0p "*:c cc instance c'a l0p $"Tng t" truy
xu2t cc p"<ng t"=c static(
)* +u !im v# nhc !im c&a phng th(c Instance:
u im;
o E"<ng t"=c instance c9 t" g"i U "*:c n+p c"8ng(
o E"<ng t"=c g"i U c9 t" tr3 vQ m#t $iu $"c(
o 7c p"<ng t"=c ny c"5 c truy xu2t t"Tng ^ua m#t instance c'a l0p s dng
t*n t Z([
Nhc im;
o E"<ng t"=c static $"Tng t" g>i cc p"<ng t"=c instance(
o E"<ng t"=c c9 m=c truy xu2t private t"_ $"Tng t" $/ t"\a v cDng $"Tng t" g"i
U(
o E"<ng t"=c instance tr*ng `ava c"5 tr3 l+i m#t Bi sB duy n"2t( Bi sB 9 c9 t" l
$iu d li%u nguy&n t"'y "*:c m#t *-`ect(
Sch bi tp Java by Example Ti liu lu hnh ni b
Session f: ago%i l. 5gceptions
A.Tm tt l thuyt
1. 6ii thiu:
Exception l mt loi li c bit. Li ny xut hin vo lc thuc thi chuong trnh. Cc trng thi
khng bnh thung xy ra trong khi thi hnh chuong trnh to ra cc exception. Nhng trng
thi ny khng uoc bit truc trong khi ta ang xy dung chuong trnh. Nu bn khng x l
cc trng thi ny th chuong trnh c th bi kt thc t ngt.
". /,c !hch c&a vic g l ngo%i l:
Mt chuong trnh nn c co ch x l ngoi l thch hop. Nu khng, chuong trnh s bi ngt khi
mt ngoi l xy ra. Trong trung hop , tt c cc ngun ti nguyn m h thng cp
khng uoc gii phng. iu ny gy lng ph ti nguyn. trnh trung hop ny, tt c cc
ngun ti nguyn m h thng cp nn uoc thu hi li. Tin trnh ny i hi co ch x l
ngoi l thch hop.
,. /2 hnh g l ngo%i l:
Trong Java, m hnh x l ngoi l gim st vic thuc thi m pht hin ngoi l. M hnh x
l ngoi l ca Java uoc goi l catch and throw. Trong m hnh ny, khi mt ngoi l xy ra,
ngoi l s bi chn v chuong trnh chuyn n mt khi x l ngoi l. Ngui lp trnh phi x
l cc ngoi l khc nhau c th pht sinh trong chuong trnh. Cc ngoi l phi uoc x l,
hoc thot khi chuong trnh khi n xy ra.
Ngn ng Java cung cp 5 t kho sau x l cc ngoi l:
try
catch
throw
throws
finally
Dui y l cu trc ca m hnh x l ngoi l:
try

// on m c kh nng gy ra ngoi l

catch(Exception e1)

Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 3q of 42


35/115 Ph inh Cng - Hong Mai
// Nu cc lnh trong khi try to ra ngoi l c loi e1, th thuc hin //x l
ngoi l nu khng chuyn xung khi 'catch' tip theo

catch(Exception e2)

// Nu cc lnh trong khi try to ra ngoi l c loi e2, th thuc hin //x l
ngoi l nu khng chuyn xung khi 'catch' tip theo

catch(Exception eN)

// Nu cc lnh trong khi try to ra ngoi l c loi eN, th thuc hin //x l
ngoi l nu khng chuyn xung khi 'catch' tip theo

finally

// khi lnh nay lun uoc thuc hin cho d ngoi l c xy ra hay khng.

Khi try v catch: Khi try cha mt tp lnh c th thi hnh uoc v Cc ngoi l
c th bi chn khi thi hnh tp lnh ny. Lc khi lnh trong catch uoc goi x
l cc ngoi l . Mi mt ngoi l xy ra c th uoc x l bi mt catch xc inh.
Khi finally: Khi ny lun uoc thuc hin cho d khng hay c ngoi l xy ra.
Khi finally thung thuc hin cc cng vic sau:
o ng tp tin.
o ng esultSet (uoc s dung trong chuong trnh co s d liu).
o ng li cc kt ni uoc to trong co s d liu.
0. C1c ngo%i l !c !-nh nghia vi lnh jthrokl v# jthroksl:
Cc ngoi l c th uoc to ra bng cch s dung t kho throw. T kha throw ch ra mt
ngoi l va xy ra. Ton hng ca throw l mt i tuong thuc lp uoc tha k t
Throwable.
on lnh sau ch ra cch s dung ca lnh throw:
"rL
{
iU (Ula&VW)
{
"hrKX neX MLG!cep"iKn()O SS user-#eUine#
}
}
on m sau minh hoa cch s dung ca t kho throws to nhiu ngoi l:
public class Example

Sch bi tp Java by Example Ti liu lu hnh ni b


// Cc ngoi l cch nhau bi du phy
public void exceptionExample() throws ExException, LookupException

try

// cc lnh

catch(ExException exmp)

catch(LookupException lkpex)

Trong v du trn, phuong thc exceptionExample c t kho throws. T kho ny uoc theo
sau bi danh sch cc ngoi l m phuong thc ny c th to ra - Trong trung hop ny l
ExException v LookupException. Hm x l ngoi l cho cc phuong thc ny nn khai bo
cc khi catch c th x l tt c cc ngoi l m cc phuong c th gy ra.
9. Assertion.*1c nhn:
Mt xc nhn l mt lnh trong Java cho php ngui pht trin kim tra mt gi inh trong ng
dung. Lnh assert kim tra biu thc boolean trong qu trnh thuc hin. iu thc uoc tin
tung l true nhung n s ua ra AssertionError nu biu thc l false.
C hai cch vit lnh assert:
Ysser" bKKleanG!pressiKnO
Ysser" bKKleanG!pressiKnO
Cch th nht thuc hin biu thc boolean v tr li kt qu l true hay false. Lnh th hai
cng ging nhu lnh th nht. Thm vo nu biu thc boolean l false th biu thc hai
uoc tr li nhu l mt thng tin chi tit v AssertionError.
%.Tham &ho
C.%#i tp
Trung tm o to Lp trnh vin Quc t AiTi-Aptech Page 41 of 42
35/115 Ph inh Cng - Hong Mai
BI 1. Vit chuong trnh gy ra ngoi l khi ngui s dung khng nhp tham s no vo t
dng lnh. Chuong trnh phi hin thi s tham s nu c tham s uoc nhp vo t dng
lnh. u ra ca chuong trnh nhu sau:
BI 2. Vit chuong trnh gy ra ngoi l, nu khng c s no uoc nhp vo t dng lnh.
Nguoc li, chuong trnh hin thi gi tri lp phuong ca s nhp vo nhu hnh dui y:
BI 3. Vit chuong trnh gy ra ngoi l nu nhu lp khng th truy nhp.

You might also like