Professional Documents
Culture Documents
Ti liu lu hnh ni b
Bi tp Java By Example
Page 1 of 42
Ti liu lu hnh ni b
Li gii thiu
i thit k Sch bi tp
Page 3 of 42
Ti liu lu hnh ni b
Page 5 of 42
2.Lp v i tng
a.i tng
Khi chng ta vit mt chng trnh hng i tng cng c ngha l chng ta ang xy dng mt
m hnh ca mt vi b phn trong th gii thc. Tuy nhin cc i tng ny c th c biu
din hay m hnh trn my tnh.
Mt i tng th gii thc l mt thc th c th m thng thng bn c th s, nhn thy hay
cm nhn c. Tt c cc i tng trong th gii thc u c trng thi (state) v hnh ng
(behaviour).
b.Lp
Trong th gii thc thng thng c nhiu loi i tng cng loi. Chng hn chic xe p ca bn
ch l mt trong hng t chic xe p trn th gii. Tng t, trong mt chng trnh hng i
tng c th c nhiu i tng cng loi v chia s nhng c im chung. S dng thut ng
hng i tng, 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. Trc khi to ra cc xe p, cc nh sn xut
thng thit lp mt bng thit k (blueprint) m t cc c im v cc yu t c bn ca xe p.
Sau hng lot xe p s c to ra t bn thit k ny. Khng hiu qu nu nh to ra mt
bn thit k mi cho mi xe p c sn xut.
Ti liu lu hnh ni b
Trong phn mm hng i tng cng c th c nhiu i tng cng loi chia s nhng c im
chung nh l: cc hnh ch nht, cc mu tin nhn vin, cc on phim, Ging nh l cc nh
sn xut xe p, bn c th to ra mt bng thit k cho cc i tng ny. Mt bng thit k
phn mm cho cc i tng c gi l lp (class).
3.Lp trnh hng i tng vi Java
Cc c im ca Java
n gin
hng i tng
kh chuyn
phn tn
hiu qu cao
thng dch
a tuyn
mnh m
linh ng
bo mt
ng dng web
ng dng c s d liu
ng dng phn tn
.....
Th mnh ca java l c th chy trn cc h nn , cc kiu phn cng khc nhau .
Page 7 of 42
Ti liu lu hnh ni b
B.Tham kho
1.http://www.eecs.utoledo.edu/~ledgard/oop/page2b.html
2.http://vi.wikipedia.org/wiki/Lp_trnh_hng_i_tng
3.http://java.sun.com/docs/books/tutorial/index.html
C.Bi tp
1.Ci t Java 6 trn my , cu hnh JDK_HOME,PATH, Vit chng 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
Page 9 of 42
Ti liu lu hnh ni b
Mt tn khng th l mt t kha.
Mt tn c th c di bt k.
b.Khai bo bin
Cng thc:
datatype variableName;
V d:
int x;
// Khai bo x l mt
double bankinh
char a;
Java l ngn ng nh kiu mnh m (strongly-typed) , bao gm cc kiu nguyn thu:
byte
float
short
double
int
char
long
boolean
Page 11 of 42
Cc lp c xy dng trn cc kiu nguyn thy ny (hoc mng ca cc kiu nguyn thy)
Ngoi cc kiu nguyn thy, Java h tr rt nhiu cc kiu d liu phc tp , l cc lp c xy
dng t cc kiu nguyn thy.
Nh String biu din chui k t , ArrayList biu din mng ng ...
Ti liu lu hnh ni b
4.
5.
System.out.println(args[0]);
6.
7. }
8.
java MyClass Hello
s in ra Hello
B.Tham kho
1.http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html
2.http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html
C.Bi tp
1.Vit chng trnh cng hai s nguyn c nhp t bn phm
2.Lm bi tp ti link http://java.sun.com/docs/books/tutorial/java/data/QandE/numbersquestions.html
Page 13 of 42
B.Tham kho
1.http://java.sun.com/docs/books/tutorial/java/nutsandbolts/flow.html
C.Bi tp
1. Vit chng trnh yu cu ngi dng nhp vo mt s t nhin . Thc 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 trng trnh in ra dy fibonacci
Ti liu lu hnh ni b
Khi nim quy : Nu li gii ca bi ton P c gii quyt bng bi ton P c dng
ging nh P th li gii gi l li gii quy. Gii thut tng ng vi li gii nh vy gi
l gii thut quy.
nh ngha phng thc quy : phng thc quy l phng thc thc hin gi chnh n
trong thn phng thc. Mt phng thc quy c nh ngha bi 2 phn :
Page 15 of 42
o Phn neo (anchor) : Phn ny c thc hin khi cng vic qu n gin, c th tr li kt
qu trc tip ch khng cn mt phng thc con no c.
o Phn quy : Trong trng hp phng thc cha th gii bng phn neo, cn xc nh
cc phng thc con v gi quy gii cc phng thc con . Khi c kt qu tr v
ca nhng phng thc con th phi hp kt qu ca chng li tr li kt qu ca
phng thc gi ban u.
-
Mt s v d v kiu enum
Ti liu lu hnh ni b
Page 17 of 42
Trong Java 5.0. Kiu enum c nh ngha theo cch trn thc s l mt class, class Day
c 7 hm i tng, class Size c 4 i tng. C th nh ngha mt kiu Enum phc tp
hn bng cch thm hm khi to, cc trng, phng thc nh v d sau:
public enum Size {
this.abbreviation = abbreviation;
Ti liu lu hnh ni b
System.out.println("abbreviation=" + size.getAbbreviation());
if (size == Size.EXTRA)
System.out.println("Good job--you paid attention to the _.");
}
}
o
o
o
o
-
Nhc im :
Tin trnh Garbage Collection c thc hin bi Garbage Collector trong Java c nhim v
ti s dng b nh - hay memory recycling
Page 19 of 42
o
o
-
u im ca Garbage Collection :
o
o
-
Thu thp cc i tng (obj) khng cn tham chiu v tin hnh lp lch loi b chng
khi vng Heap do JVM qun l
Chng phn mnh vng nh Heap
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 dng Garbage Collector), gim thiu Memory leaks.
Bo m tnh ton vn ca chng trnh Java, GC cng l mt phn quan trng trong
kh nng bo mt v tnh an ton ca JVM
nh hng ti hiu nng chng trnh do JVM phi theo di cc i tng khi ang c
tham chiu trong qu trnh thc thi m, sau phi finalize v gii phng cc i tng
khng cn tham chiu trc tip.
B.Tham kho
-
C. BI TP
//Bi tp t CD Java By Example
//Bi tp thm
Bi 1 : Mt dy Fibonacci c dng nh sau : 0,1,1,2,3,5,8,13,21, dy trn bt u bi 2
s 0 v 1, cc s sau bng tng ca 2 s trc lin k.
a. Vit phng thc quy tnh s th n ca dy Fibonacci : v d fibo(4) = 2;
b. Tng t cu a nhng khng s dng quy
Bi 2 : Vit chng trnh gii bi ton Thap Hanoi s dng phng php quy v phng
php lp
Ti liu lu hnh ni b
Bi 3 : Vit chng trnh sau s dng phng php quy : Tnh ly tha power(base,
exponent) s tr li base^exponent, v d power(3,4) = 3*3*3*3. Gi tr base v
exponent nhp vo t bn phm, kim tra exponent phi ln hn hoc bng 1.
Page 21 of 42
Session 5: Arrays
A.Tm tt l thuyt
1. Gii thiu mng trong Java
-
Ti liu lu hnh ni b
Mng cc k t
char [] message = new char[50];
java.util.Arrays.fill(message,_);
char [] vowels = {a,e,o,u,i};
char[][] names = new char[5][50];
Sp xp mt mng :
//Bubble Sorting
int [] array = {2,7,4,13,5,6};
for(int i=1; i<array.length; i++) {
for(int j=0; j<array.length-i;j++) {
if(array[j]>array[j+1]) {
int temp=array[j]; array[j]=array[j+1];
array[j+1] = temp;
}
}
}
Page 23 of 42
Tm kim mng
//Tim kiem tuyen tinh linear search
int [] array = {2,7,4,15,3,1};
int key = 2;
for(int i = 0; i<array.length; i++) {
if(array[i]==key) {
System.out.println(Result = + array[i]);
break;
}
}
//Tim kiem nhi phan tren mang da sap xep Bsearch
//return -1 neu khong tim thay
public int binarySearch(int array[], int key) {
Ti liu lu hnh ni b
return -1;
}
So snh 2 xu
boolean endsWith(String suffix)
Chuyn mt xu ti mt mng k t
String toLowerCase()
Page 25 of 42
3. Lm vic vi lp StringBuilder
Xa k t trong substring
StringBuilder deleteCharAt(int index)
Xa k t ti index
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copy cc k t n mt xu ch
StringBuilder replace(int start, int end, String str)
K t ti v tr index c thay i ti ch
void setLength(int newLength)
Thit t chiu di ca xu
String substring(int start, int end)
Tr li mt xu con
B. Tham kho
-
Ti liu lu hnh ni b
Page 27 of 42
C. BI TP
//Bi tp t CD Java By Example
//Bi tp thm :
Bi 1 : Vit mt chng trnh c vo mt bin kiu String on text cho trc, trch rt
cc t (words) trong on text v sp xp chng theo th t bng ch ci. Hin th
danh sch sp xp ln mn hnh. Gii thut sp xp ty chn.
Bi 2 : nh ngha mt mng ca 10 xu kiu String bt k sao cho mi xu c nh dng
day/month/year, v d 21/12/2000. Phn tch cc thnh phn trong xu sau a ra
mn hnh 10 xu di dng nh sau 21 December 2000.
Bi 3 : Vit mt chng trnh o ngc trt t cc k t trong tng t ca mt xu (nhp
vo t bn phm). V d To Be Or Not To Be s tr thnh oT eB rO toN oT eB
Bi 4 : Vit mt chng trnh s dng cc s ngu nhin to cu. Ci t 4 mng cc
string l article, noun, verb, preposition. To cc cu bng cch la chn ngu
nhin mi t t mt mng theo trt t sau : article-noun-verb-preposition-article. Cc t
trong cu cch nhau bng 1 du cch. In ra 10 cu ngu nhin trn mn hnh. Cc mng
c th nh 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
Bi 5 : Vit mt chng trnh c vo mt chui, sau tokenize chui s dng
StringTokenizer v a ra cc token theo th t ngc li.
Bi 6 : Vit mt chng trnh c vo chui s bt k : vd 1132422323, sau in ra mn
hnh di dng : 1,132,422,323
Bi 7 : Vit mt chng trnh c vo chui k t bt k, sau m s ln xy ra mi t
trong chui k t v in ra mn hnh theo nh dng : word number of words
Ti liu lu hnh ni b
A.Tm tt l thuyt
1. ii nh nghia va cach s duu ng goi
- Mt goi trong Java c coi nh mt th muc, la ni t chc cac lp va cac giao din. Mt goi co
th cha cac goi con.
- Muc ich s dung goi :
+ Cho phep t chc cac lp thanh cac n vi nho hn, co th d dang xac inh vi tri
+ Tranh vic t tn bi xung t khi co qua nhiu lp
- Cach tao va s dung goi
+ xac inh mt lp hoc mt giao din la thanh phn trong goi, dong u tin cua
lp phai s dung khai bao sau :
package <packagename>;
+ Tn goi bao gi cung c bt u bng ch thng va khng co khoang trng
+ s dung goi trong mt lp, s dung t khoa import nh sau
import packagename.class1; // s dung mt lp thuc goi o
import packagename.* // s dung toan b goi
Cu lnh import phai c t sau cu lnh khai bao goi va trc inh nghia lp
protected
No modifier
private
Class
Yes
Yes
Yes
Yes
Packages
Yes
Yes
Yes
No
Page 29 of 42
Subclass
Yes
Yes
Yes
No
Different package
Yes
No
No
No
La nhng t khoa b tr cho vic chi inh nhng thuc tinh (field) va phng thc
(method) dung cho vic iu khin cac truy xut n ngi dung
ii.
Ti liu lu hnh ni b
Page 31 of 42
Ti liu lu hnh ni b
- Vi du :
class Laboratory {
public Compound makeCompound(Chemical a, Chemical b) {
// Do something
}
Nh vy vic thc thi phng thc se phu thuc vao cac tham s truyn vao trong qua trinh goi
5. Interfaces Giao di n
- Tham chiu interface co th c s dung cha nhng thc th cua lp thc thi
interface o
- Cac bin c khai bao trong interface c ngm inh la final va static
- Interface co th c tha k
B.Tham Kho
Page 33 of 42
C.Bi tp
(Bai tp cho chng 6,7)
1. Tao mt interface va s dung no hin thi binh phng va luy tha 3 cua mt s
2. Tao mt package co cha mt class co ham tra v giai tha cua i s truyn vao.
Goi n ham o t mt class trong package khac
3. Tao mt class trong o co cac ham c overload tinh chu vi hinh vung, tam
giac, ch nht. Nu truyn mt tham s se tra v chu vi hinh vung, 2 tham s se
tra v chu vi hinh ch nht, 3 tham s se tra v chu vi hinh tam giac
4. Lam tng t bai 3 vi cac ham tinh din tich
Ti liu lu hnh ni b
Instance Variable
Bin loi ny c khai bo bn trong lp nhng nm ngoi tt c cc method. Instance Variables
l nhng trng ca lp m ch c khi gn duy nht khi mt lp c khi to. Cc bin ny
tn ti khi mt instance class cha b hy. Cc bin ny c th c truy xut nu lp hoc class
tn ti.
Local Variables:
Bin ny c khai bo bn trong mt phng thc v ch c truy xut bn trong phng thc
. Bin ny ch c khi to khi phng thc c gi. Cc bin ny s b hy khi phng
thc thc hin xong.
V d:
public class Vehicle{
private int horsepower;
// Instance Variable
// Local Variable
Page 35 of 42
horsepower = 1000;
// Can be accessed
}
public void getVehicleType(){
// Cannot access this variable from this menthod
numberOfCylinder = 8;
}
}
Ti liu lu hnh ni b
Phng thc static thc hin khng nh hng n trng thi ca cc instance.
Page 37 of 42
Cc thuc tnh khng phi static s khng th truy xut c bn trong phng thc
static.
Nhc im:
o
Phng thc c mc truy xut private th khng th k tha v cng khng th ghi
.
Ti liu lu hnh ni b
2. Mc ch ca vic x l ngoi l:
Mt chng trnh nn c c ch x l ngoi l thch hp. Nu khng, chng trnh s b ngt khi
mt ngoi l xy ra. Trong trng hp , tt c cc ngun ti nguyn m h thng cp
khng c gii phng. iu ny gy lng ph ti nguyn. trnh trng hp ny, tt c cc
ngun ti nguyn m h thng cp nn c thu hi li. Tin trnh ny i hi c ch x l
ngoi l thch hp.
3. M hnh x l ngoi l:
Trong Java, m hnh x l ngoi l gim st vic thc thi m pht hin ngoi l. M hnh x
l ngoi l ca Java c gi l catch and throw. Trong m hnh ny, khi mt ngoi l xy ra,
ngoi l s b chn v chng trnh chuyn n mt khi x l ngoi l. Ngi lp trnh phi x
l cc ngoi l khc nhau c th pht sinh trong chng trnh. Cc ngoi l phi c x l,
hoc thot khi chng trnh khi n xy ra.
Ngn ng Java cung cp 5 t kho sau x l cc ngoi l:
try
catch
throw
throws
finally
Di 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
35/115 Ph nh Cng Hong Mai
Page 39 of 42
// Nu cc lnh trong khi try to ra ngoi l c loi e1, th thc 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 thc 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 thc hin //x l
ngoi l nu khng chuyn xung khi 'catch' tip theo
}
finally
{
// khi lnh nay lun c thc hin cho d ngoi l c xy ra hay khng.
}
Khi try v catch: Khi try cha mt tp lnh c th thi hnh c v Cc ngoi l
c th b chn khi thi hnh tp lnh ny. Lc khi lnh trong catch c gi x
l cc ngoi l . Mi mt ngoi l xy ra c th c x l bi mt catch xc nh.
Khi finally: Khi ny lun c thc hin cho d khng hay c ngoi l xy ra.
Khi finally thng thc hin cc cng vic sau:
o
o
o
ng tp tin.
ng ResultSet (c s dng trong chng trnh c s d liu).
ng li cc kt ni c to trong c s d liu.
if (flag<0)
{
throw new MyException(); // user-defined
}
}
on m sau minh ha cch s dng ca t kho throws to nhiu ngoi l:
public class Example
{
Ti liu lu hnh ni b
5. Assertion-Xc nhn:
Mt xc nhn l mt lnh trong Java cho php ngi pht trin kim tra mt gi nh trong ng
dng. Lnh assert kim tra biu thc boolean trong qu trnh thc hin. Biu thc c tin
tng l true nhng n s a ra AssertionError nu biu thc l false.
C hai cch vit lnh assert:
Assert booleanExpression;
Assert booleanExpression;
Cch th nht thc hin biu thc boolean v tr li kt qu l true hay false. Lnh th hai
cng ging nh lnh th nht. Thm vo nu biu thc boolean l false th biu thc hai
c tr li nh l mt thng tin chi tit v AssertionError.
B.Tham kho
C.Bi tp
Page 41 of 42
BI 1.
Vit chng trnh gy ra ngoi l khi ngi s dng khng nhp tham s no vo t
dng lnh. Chng trnh phi hin th s tham s nu c tham s c nhp vo t dng
lnh. u ra ca chng trnh nh sau:
BI 2.
BI 3.