You are on page 1of 42

Sch bi tp Java by Example

Ti liu lu hnh ni b

Bi tp Java By Example

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 1 of 42

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 c s dng nh mt phn khng th


tch ri khi gio trnh ang hc ca Aptech n vi cc hc vin ang theo hc ti Trung tm.
Tp sch bi tp ny l ti liu lu hnh ni b, ch dnh cho cc hc vin theo hc ti Trung tm
o to Lp trnh vin Quc t AiTi-Aptech. Mi 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 nc Vit Nam.
AiTi-Aptech lun mong mi to dng mt mi trng hc tp tt cho cc bn hc vin theo hc ti
trung tm. Mi kin ng gp v xy dng Sch bi tp, ci tin h thng xin gi mail v
contact.aiti@gmail.com hoc ng dy nng (04) 6 64 8848. Chng ti s ghi nhn v ci
tin c th cung cp cho cc bn mt mi trng hc tp ngy mt tt hn.

S nghip tng 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


35/115 Ph nh Cng Hong Mai

Page 3 of 42

Vit Nam lun thiu Lp trnh vin ng cp Quc t


Contents
Li gii thiu.............................................................................................................................................................3
B.Tham kho.........................................................................................................................................................5
Session 2: Variables and Operators...........................................................................................................................6
Session 4: Introducing Classes................................................................................................................................10
A.Tm tt l thuyt.................................................................................................................................................10
1. Lu tr mng cc i tng thng qua tham chiu
............................................................................................................................................................................10
2. quy trong Java...........................................................................................................................................10
3. Kiu Enumerate trong Java.............................................................................................................................11
4. Thu hi b nh vi tin trnh Garbage Collection
............................................................................................................................................................................15
C. BI TP...........................................................................................................................................................16
Session 5: Arrays.....................................................................................................................................................17
A.Tm tt l thuyt.................................................................................................................................................17
1. Gii thiu mng trong Java.............................................................................................................................17
2. X l String trong Java....................................................................................................................................20
3. Lm vic vi lp StringBuilder........................................................................................................................22
B. Tham kho......................................................................................................................................................22
C. BI TP...........................................................................................................................................................24
Session 6: Packages and Access Specifiers..............................................................................................................25
A.Tm tt l thuyt.............................................................................................................................................25
1. i
nh nghia va cach s dung.....................................................................................................................
goi
25
2. Cac t khoa i nh m c truy xut Access Specifers .........................................................................................25
3. Field and Method Modifier.............................................................................................................................26
Session 7: Inheritance and Interfaces....................................................................................................................27
A.Tm tt l thuyt.................................................................................................................................................27
1. K tha ...........................................................................................................................................................27
2. Ki u tra v hip bi n (Covariant Return Types)...........................................................................................27

Sch bi tp Java by Example

Ti liu lu hnh ni b

3. Phng thc va thu c tinh n .............................................................................................................................28


4. Overload Na p ch ng...................................................................................................................................29
5. Interfaces Giao di n....................................................................................................................................30
B.Tham Kho..........................................................................................................................................................30
C.Bi tp.................................................................................................................................................................31
Session 8: More On Classes...................................................................................................................................32
A.Tm tt l thuyt.................................................................................................................................................32
1. Phm vi ca bin (Scope):..............................................................................................................................32
2. Bin nguyn thy:...........................................................................................................................................32
3. Bin tham chiu:............................................................................................................................................34
4. T kha Static: Bin v Phng thc.............................................................................................................34
5. u im v nhc im ca phng thc Instance:....................................................................................35
Session 9: Ngoi l- Exceptions.............................................................................................................................37
A.Tm tt l thuyt.................................................................................................................................................37
1. Gii thiu:.......................................................................................................................................................37
2. Mc ch ca vic x l ngoi l:..................................................................................................................37
3. M hnh x l ngoi l:...................................................................................................................................37
4. Cc ngoi l c nh ngha vi lnh throw v throws:...........................................................................39
5. Assertion-Xc nhn:........................................................................................................................................40
B.Tham kho...........................................................................................................................................................41
C.Bi tp.................................................................................................................................................................41

Session 1: Introduction to Java


A.Tm tt l thuyt
1.Lp trnh hng i tng
Hng i tng (object orientation) cung cp mt kiu mi xy dng phn mm. Trong kiu
mi ny, cc i tng (object) v cc lp (class) l nhng khi xy dng trong khi cc phng
thc (method), thng ip (message), v s tha k (inheritance) cung cp cc c ch ch yu.

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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.

Sch bi tp Java by Example

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

kin trc trung tnh

hng i tng

kh chuyn

phn tn

hiu qu cao

thng dch

a tuyn

mnh m

linh ng

bo mt

Ngi ta dng java lp trnh ra hu ht cc loi ng dng :

ng dng cho in thoi di ng , my tnh siu nh

ng dng cho my tinh bn

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 .

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 7 of 42

Sch bi tp Java by Example

Ti liu lu hnh ni b

M hnh son tho , dch v chy mt chng trnh java

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

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 9 of 42

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 2: Variables and Operators


A.Tm tt l thuyt
1.Bin v kiu d liu
a.Tn hay nh danh cho bin

Mt tn l mt chui cc k t gm cc ch, s, du gch di (_), v du dollar ($).

Mt tn phi bt u bi mt ch, du gch di (_), 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 k.

b.Khai bo bin
Cng thc:

datatype variableName;

V d:
int x;

// Khai bo x l mt

// bin nguyn (integer);

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

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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 ...

2.Xut nhp trong java


Java c th dng lp trnh nhiu kiu ng dng . Vi mi kiu ng dng s c th vin h tr
xut nhp ring .
Trong cc ng dng dng lnh chng ta cn thao tc vi hai dng xut nhp chun l System.in
v System.out
a.S dng i tng xut System.out
i tng System.out h tr rt nhiu phng thc c th xut d liu ra thit b xut (thng l
mn hnh dng lnh). S dng ch yu l phng thc print v printf
v d :
System.out.print("Hello");
System.out.print(123);
Dng printf khi mun s dng chui nh dng (tng t hm printf trong ANSI C).
System.out.printf("The number is %d",123);
b.S dng i tng nhp System.in
nhp d liu vo trng trnh Java qua System.in ta c th se dng ngay cc phng thc c
sn trong System.in nh phng thc read.
Tuy nhin cc phong thc ny ch h tr nhp d liu dng th (m ASCII ca k t 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 d 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 thc hin truyn trong khi thc hin cu lnh java chy
chng trnh
v d : lp MyClass
1. public class MyClass
2. {
3.

public static void main(String args[])

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

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 13 of 42

Session 3: Decision-Making and Iterations


A.Tm tt l thuyt
Trong java cc cu trc iu khin c tha k hon ton t C , bao gm
- Cu trc r nhnh if-else
- Cu trc lp for, while , do-while

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

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 4: Introducing Classes


A.Tm tt l thuyt
1. Lu tr mng cc i tng thng qua tham chiu
-

Trong Java, mt mng cc i tng ch lu cc tham chiu (references) ti cc i tng


.

C th khi to mng cc i tng theo cch sau


Employee [] staff = new Employee[3];

S dng vng lp khi to i tng


for(int i=0; i<staff.length(); i++)
{
staff[i] = new Employee();
}

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


staff[0] = new Employee(Peter,37,102 Road);
staff[1] = new Employee(Peter,37,102 Road);
staff[2] = new Employee(Peter,37,102 Road);

2. quy trong Java


-

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 :

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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.
-

V d phng thc quy (Tnh giai tha)


public class Factorial {
public static long factorial(long x) {
if (x < 0) throw new IllegalArgumentException("x phai >= 0");
if (x <= 1) return 1;
//Phan neo
else return x * factorial(x-1); //Phan de quy
}
}
Minh ha

Cc c im ca phng thc quy :


S ln gi cc phng thc l chiu su quy.
Phng thc quy c th dn ti trn vng nh Stack
Mi phng thc quy phi c iu kin kt thc quy
Pha Winding bt u khi phng thc quy c gi v kt thc khi iu kin neo c
thc hin pha ny tng ng vi push vo stack mt block b nh bng gi tr tr v
ca phng thc quy
o Pha Unwinding xy ra ngay sau pha winding, kt thc khi kt qu ln gi u tin ca
hm c tr v - pha ny tng ng vi pop ra tng block trong stack.
o
o
o
o

3. Kiu Enumerate trong Java


-

Mt kiu enumerate l kiu d liu to bi tp c nh cc hng (constants).

Mt s v d v kiu enum

Sch bi tp Java by Example

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Ti liu lu hnh ni b

Page 17 of 42

public enum Day {


SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
};

public enum Size {


SMALL, MEDIUM, LARGE, EXTRA
};

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 {

SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA ("XL");

private Size(String abbreviation) {

this.abbreviation = abbreviation;

public String getAbbreviation() {


return abbreviation;
}
private String abbreviation;
}

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


do vy s k tha cc phng thc ca lp ny (tra API)

V d 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 size: (SMALL, MEDIUM, LARGE, EXTRA) ");
String input = in.next().toUpperCase();

Size size = Enum.valueOf(Size.class, input);


System.out.println("size=" + size);

System.out.println("abbreviation=" + size.getAbbreviation());

if (size == Size.EXTRA)
System.out.println("Good job--you paid attention to the _.");
}
}

u im khi s dng kiu enum :

o
o
o
o
-

Khi cn s dng mt tp c nh cc hng.


D nh, d c code, d s dng v tn t resources b nh chnh.
Kiu c kim tra ti thi im bin dch (type-safe)
Hiu nng c so snh gn tng ng khi thc hin vi hng s int

Nhc im :

Kh s dng vi ngi mi lm quen lp trnh

4. Thu hi b nh vi tin trnh Garbage Collection


-

Tin trnh Garbage Collection c thc hin bi Garbage Collector trong Java c nhim v
ti s dng b nh - hay memory recycling

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 19 of 42

Garbage Collector thc hin cc nhim v sau :

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

Nhc im ca Garbage Collection :

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
-

Java by Example ACCP.i7.


Core Java 8th Edition by Cay Horstman.
Beginning Java 5.
Giai Thuat va Lap Trinh by Le Minh Hoang
Web java.sun.com/docs/

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

Sch bi tp Java by Example

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.

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 21 of 42

Session 5: Arrays
A.Tm tt l thuyt
1. Gii thiu mng trong Java
-

nh ngha mng : Mt mng trong Java l i tng cha mt tp cc bin c t tn


v c cng kiu. Mi bin trong mng gi l mt thnh phn ca mng (array element).
tham chiu n mt thnh phn ca mng phi s dng ch mc (index) ca thnh phn .

Khai bo v khi to mng


int [] primes;
int primes[];

primes = new int[10]; //dinh nghia mang 10 so

int [] primes = new int[10];

primes[9]; //thanh phan thu 10 cua mang

int [] primes = {2,3,5,7}; //khoi tao dinh san

//khoi tao su dung vong lap


double [] data = new double[50];
for(int i = 0; i < data.length; i++) {
data[i] = 1.0;
}

//khoi tao su dung java.util.Arrays

Sch bi tp Java by Example

Ti liu lu hnh ni b

double [] data = new double[50];


Arrays.fill(data,1.0);

Mng ca mng hay mng nhiu chiu


float [][] temp = new float[10][365];
float [][] samples;
samples = new float[5][];
long [][][] beans = new long[10][20][30];

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;
}
}
}

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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) {

int low = 0; // 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;
}

2. X l String trong Java

Tm tt phng thc ca java.lang.String


char charAt(int index)

Tr li gi tr char ti index cho trc


int codePointAt(int index)

Tr li k t (unicode code point) ti index cho trc


int codePointBefore(int index)

Tr li k t (unicode code point) trc index cho trc


int codePointCount(int beginIndex, int endIndex)

Tr li s cc unicode code point trong mt khong


int compareTo(String anotherString)

So snh 2 xu
boolean endsWith(String suffix)

Kim tra xem xu c kt thc vi mt hu t khng


boolean equalsIgnoreCase(String anotherString)

So snh 2 xu b qua ch hoa ch thng


boolean startsWith(String prefix)

Kim tra xem xu c bt u vi mt tin t khng


char[] toCharArray()

Chuyn mt xu ti mt mng k t
String toLowerCase()

Chuyn tt c k t thnh ch thng


String toUpperCase()

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 25 of 42

Chuyn tt c k t thnh ch hoa

3. Lm vic vi lp StringBuilder

Tm tt phng thc ca java.lang.StringBuilder


StringBuilder appendCodePoint(int codePoint)

Thm vo cui xu dng string ca code Point


StringBuilder delete(int start, int end)

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)

Thay th cc k t trong xu bi mt xu khc


void setCharAt(int index, char ch)

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
-

Java by Example ACCP.i7.


Core Java 8th Edition by Cay Horstman.
Beginning Java 5.
Giai Thuat va Lap Trinh by Le Minh Hoang
Web java.sun.com/docs/

Sch bi tp Java by Example

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 6: Packages and Access Specifiers

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

2. Cac t khoa ii nh mc truy xut Access Specifiers


- Cac t khoa inh mc truy xut dung chi inh quyn truy cp ti lp va cac thanh phn cua
lp
- Bang tom tt quyn truy cp nh sau :
public

protected

No modifier

private

Class

Yes

Yes

Yes

Yes

Packages

Yes

Yes

Yes

No

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 29 of 42

Subclass

Yes

Yes

Yes

No

Different package

Yes

No

No

No

3. Field and Method Modifier


i.

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.

Co th c dung cung vi access specifier nh public hoc protected.


+ volatile : chi s dung cho thuc tinh (field ) , cho phep mt thuc tinh c ng
b khi x ly a lung, co nghia la nu gia tri cua thuc tinh thay i, tt ca cac lung
truy xut n thuc tinh o u se nhn thy.
+ native : chi s dung cho phng thc (method), cho bit s thc hin y u cua
phng thc o c t bn ngoai lp. in hinh la cac phng thc c thc hin
bn ngoai JVM va c t trong cac th vin khng vit bng Java
+ transient: dung khai bao nhng thuc tinh (field) khng c lu tr nh mt
phn cua i tng, phuc vu cho vic tit kim b nh

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 7: Inheritance and Interfaces


A.Tm tt l thuyt
1. K tha
- La mt khai nim cho phep s dung lai cac oan code co sn. Trong trng hp ngi lp trinh
mun tao mt lp, trong khi a co sn mt lp khac vi nhng oan code co th s dung lai, khi o
chi vic tha k lai lp co sn.
- Mt lp tha k lai lp co sn c goi la lp con (sub-class) , lp c tha k goi la lp cha (
super-class).
- Tt ca cac lp trong Java c ngm inh la lp con cua lp Object.
- Mt lp con chi co th tha k t duy nht mt lp cha
- Dung t khoa extends biu din s tha k
class Mammal {}
class Whale extends Mammal {}
- Mt lp con se k tha tt ca cac thuc tinh, phng thc va ca nhng lp c lng trong lp
cha ( nested-class). Khng k tha Constructor .
- Lp con se k tha tt ca cac thanh phn c khai bao protected hoc public cua lp cha,
khng phu thuc vic lp con thuc goi nao.
2. Kiu traa v hi p bin (Covariant Return Types)
- La mt tinh nng mi trong J2SE 5.0 , cho phep khi override mt method trong lp cha co th tra
v mt kiu d liu ma kiu d liu o la sub-class cua kiu tra v trong lp cha
- Vi du:
class Student {
public Number getMarks () {
return new Number() ; // tra v mt i tng thuc lp Number
}
}

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 31 of 42

class ExchangeStudent extends Student {


public Integer getMarks() {
return new Integer(); // tra v mt i tng thuc lp Integer
}
}
Trong vi du trn, vi lp Integer la sub-class cua lp Number, nn a co s ngm inh cua vic ep
kiu t Number v Integer

3. Phng thc va thu c tinh n


- Phng thc n
Ban cht cua vic override mt method c khai bao static la n i method o.
Vi du :
class Foo {
public static void method() {
System.out.println("in Foo");
}
}
class Bar extends Foo {
public static void method() {
System.out.println("in Bar");
}
}
Ban cht cua oan code trn khng phai la mt vi du v override mt method c khai bao
static. oan code trn vi du cho vic method cua lp con n i method cua lp cha.
- Thuc tinh n trong mt lp : Mt thuc tinh cua lp con se n i thuc tinh cung tn cua lp
cha, ngay ca trong trng hp no co cung kiu d liu. Trong lp con, chung ta truy xut n thuc
tinh cua lp cha bng t khoa super

4. Overload Naa p chng


Trong mt class co th khai bao hai hay nhiu phng thc co cung tn, cung kiu tra v nhng co
s lng tham s u vao khac nhau

Sch bi tp Java by Example

Ti liu lu hnh ni b

- Vi du :
class Laboratory {
public Compound makeCompound(Chemical a, Chemical b) {
// Do something
}

public Compound makeCompound(Chemical a, Chemical b, Chemical c ) {


// Do something
}
}

Nh vy vic thc thi phng thc se phu thuc vao cac tham s truyn vao trong qua trinh goi

Overloading co th ap dung vi Constructor

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

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 8: More On Classes


A.Tm tt l thuyt
1. Phm vi ca bin (Scope):
C hai kiu bin trong java:
Bin nguyn thy ( Primitive variable)

Bin tham chiu ( Reference variable)

2. Bin nguyn thy:


c s dng lu tr gi tr thuc kiu d liu nguyn thy.V c chia lm hai loi.
Instance Variables
Local Variables

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

public void getEngineType(){


int numberOfCylinders;

// Local Variable

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 35 of 42

horsepower = 1000;

// Can be accessed

}
public void getVehicleType(){
// Cannot access this variable from this menthod
numberOfCylinder = 8;
}
}

Sch bi tp Java by Example

Ti liu lu hnh ni b

3. Bin tham chiu:


Bin tham chiu c dng lu tr cc i tng, cng gm hai loi:
Instance Variables.
Local Variables.
V d:
public class PixelPoint{
Pixel pix; // Instance Reference Variable
public void showPixel(){
Pixel newPixel; // Local reference variable
}
public void setPixel(Pixel pix)
{
this.pix = pix;
}
}

4. T kha Static: Bin v Phng thc.


Bin static c gi l bin lp, n tn ti tt c cc instance ca lp. Tt c cc instance ca lp
u c mt bn copy ca bin static .
Phng thc cng c th static.Mt phng thc c th n nhng khng th ghi . Phng thc ny
c truy xut trc tip bi tn class. Phng thc ny ch truy xut c cc bin local, cc thuc
tnh static v cc i s ca phng thc .
u im ca phng thc static:

Phng thc static c th triu gi trc tip bi tn class.

Phng thc static thc hin khng nh hng n trng thi ca cc instance.

Phng thc static c th nh ngha li trong mi instance class.

S dng ton t . truy xut cc phng thc tnh t tn class. ( Class.method() );

Nhc im ca phng thc static:

Phng thc static c gi m khng cn phi khi gn mt i tng. Compiler ch


kim tra kiu ca i tng ni m cha phng thc static c gi.

Phng thc static khng th ghi , mc d n c th n.

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

Page 37 of 42


Cc thuc tnh khng phi static s khng th truy xut c bn trong phng thc
static.

Cc phng thc khng phi static ca lp hoc cc instance ca lp khng th truy


xut cc phng thc static.

5. u im v nhc im ca phng thc Instance:


u im:
o

Phng thc instance c th ghi hoc np chng.

Phng thc ghi c th tr v mt kiu khc.

Cc phng thc ny ch c truy xut thng qua mt instance ca lp s dng


ton t .

Nhc im:
o

Phng thc static khng th gi cc phng thc instance.

Phng thc c mc truy xut private th khng th k tha v cng khng th ghi
.

Phng thc instance trong java ch tr li mt i s duy nht. i s c th l


kiu d liu nguyn thy hoc mt object.

Sch bi tp Java by Example

Ti liu lu hnh ni b

Session 9: Ngoi l- Exceptions


A.Tm tt l thuyt
1. Gii thiu:
Exception l mt loi li c bit. Li ny xut hin vo lc thc thi chng trnh. Cc trng thi
khng bnh thng xy ra trong khi thi hnh chng trnh to ra cc exception. Nhng trng
thi ny khng c bit trc trong khi ta ang xy dng chng trnh. Nu bn khng x l
cc trng thi ny th chng trnh c th b kt thc t ngt.

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.

4. Cc ngoi l c nh ngha vi lnh throw v throws:


Cc ngoi l c th c to ra bng cch s dng t kho throw. T kha throw ch ra mt
ngoi l va xy ra. Ton hng ca throw l mt i tng thuc lp c tha k t
Throwable.
on lnh sau ch ra cch s dng ca lnh throw:
try
{

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
{

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 d trn, phng thc exceptionExample c t kho throws. T kho ny c theo
sau bi danh sch cc ngoi l m phng thc ny c th to ra Trong trng hp ny l
ExException v LookupException. Hm x l ngoi l cho cc phng thc ny nn khai bo
cc khi catch c th x l tt c cc ngoi l m cc phng c th gy ra.

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

Trung tm o to Lp trnh vin Quc t AiTi-Aptech


35/115 Ph nh Cng Hong Mai

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.

Vit chng trnh gy ra ngoi l, nu khng c s no c nhp vo t dng lnh.


Ngc li, chng trnh hin th gi tr lp phng ca s nhp vo nh hnh di y:

BI 3.

Vit chng trnh gy ra ngoi l nu nh lp khng th truy nhp.

You might also like