Professional Documents
Culture Documents
Chng 1
CC KHI NIM C BN
BI 1. LM QUEN VI JAVA
I. Lch s java
Java l mt ngn ng lp trnh c Sun Microsystems gii thiu vo thng
6 nm 1995. T , n tr thnh mt cng c lp trnh ca cc lp trnh vin
chuyn nghip. Java c xy dng trn nn tng ca C v C++. Do vy n s
dng cc c php ca C v cc c trng hng i tng ca C++.
Ban u Java c thit k lm ngn ng vit chng trnh cho cc sn
phm in t dn dng nh u video, tivi, in thoi, my nhn tin.. . Tuy nhin
vi s mnh m ca Java khin n ni ting n mc vt ra ngoi s tng
tng ca cc nh thit k ra n.
Java khi thu tn l Oak- l cy si mc pha sau vn phng ca nh
thit k chnh ng Jame Gosling, sau ny ng thy rng c ngn ng lp trnh
tn Oak ri, do vy nhm thit k quyt nh i tn, Java l ci tn c chn,
Java l tn ca mt qun cafe m nhm thit k java hay n ung.
II. Java em l ai
Java l ngn ng lp trnh hng i tng, do vy khng th dng Java
vit mt chng trnh hng chc nng. Java c th gii quyt hu ht cc cng
b nh. Qa trnh cp pht, gii phng c thc hin t ng, nh dch v thu
nht nhng i tng khng cn s dng na (garbage collection).
C ch by li ca Java gip n gin ha qa trnh x l li v hi phc
sau li.
5. H tr lp trnh a tuyn
y l tnh nng cho php vit mt chng trnh c nhiu on m lnh
c chy song song vi nhau. Vi java ta c th vit cc chng trnh c kh
nng chy song song mt cch d dng, hn th na vic ng b ti nguyn dng
chung trong Java cng rt ng gin. iu ny l khng th c i vi mt s
ngn ng lp trnh khc nh C/C++, pascal
6. Phn tn
Java h tr y cc m hnh tnh ton phn tn: m hnh client/server,
gi th tc t xa
7. H tr internet
Mc tiu quan trng ca cc nh thit k java l to iu kin cho cc nh
pht trin ng dng c th vit cc chng trnh ng dng internet v web mt
cch d dng, vi java ta c th vit cc chng trnh s dng cc giao thc TCP,
UDP mt cch d dng, v lp trnh web pha my khch java c cng ngh java
applet, v lp trnh web pha my khch java c cng ngh servlet/JSP, v lp
trnh phn tn java c cng ngh RMI, CORBA, EJB, Web Service.
8. Thng dch
Cc chng trnh java cn c thng dch trc khi chy, mt chng
trnh java c bin dch thnh m byte code m c lp vi h nn, chng trnh
thng dch java s nh x m byte code ny ln mi nn c th, iu ny khin
java chm chp i phn no.
2 Qun l b nh
3 Dn rc
Vic khng nht qun ca phn cng lm cho my o phi s dng ngn xp
lu tr cc thng tin sau:
1 Cc Frame cha cc trng thi ca cc phng thc.
2 Cc ton hng ca m bytecode.
3 Cc tham s truyn cho phng thc.
4 Cc bin cc b.
Khi JVM thc thi m, mt thanh ghi cc b c tn Program Counter c
s dng. Thanh ghi ny tr ti lnh ang thc hin. Khi cn thit, c th thay i
ni dung thanh ghi i hng thc thi ca chng trnh. Trong trng hp
thng thng th tng lnh mt ni tip nhau s c thc thi.
Mt khi nim thng dng khc trong Java l trnh bin dch Just In Time-JIT.
Cc trnh duyt thng dng nh Netscape hay IE u c JIT bn trong tng tc
thc thi chng trnh Java. Mc ch chnh ca JIT l chuyn tp lnh bytecode
thnh m my c th cho tng loi CPU. Cc lnh ny s c lu tr v s dng
mi khi gi n.
BI 2 NN TNG CA JAVA
I. Tp k t dng trong java
Mi ngn ng ni chung, ngn ng lp trnh ni ring u phi xy dng
trn mt tp hp ch ci (hay cn gi l bng ch ci), cc k t c nhm li
theo mt cch no to thnh cc t, cc t li c nhm li thnh cc cu
(trong ngn ng lp trnh gi l cu lnh), mt chng trnh my tnh tnh l mt
tp cc cu lnh c b tr theo mt trt t m ngi vit ra chng sp t
Ngn ng java c c xy dng trn bng ch ci unicode, do vy ta c
th dng cc k t unicode t tn cho cc nh danh.
II. T kho ca Java
Mi ngn ng lp trnh c mt tp cc t kho, ngi lp trnh phi s
dng t kho theo ng ngha m ngi thit k ngn ng ra, ta khng th
nh ngha li ngha ca cc t kho, nh s dng n t tn bin, hm..
Sau y l mt s t kho thng gp:
T kha
M t
abstract
boolean
break
byte
case
cast
catch
char
kiu d liu k t
class
Dng khai bo lp
const
Cha c dng
continue
default
do
double
else
extends
false
Ga tr logic
final
finally
float
kiu s thc
for
Cu lnh lp
goto
Cha c dng
if
Cu lnh la chn
implements
import
instanceof
interface
long
kiu s nguyn
native
new
to mt i tng mi
null
mt i tng khng tn ti
package
Dng khai bo mt gi
private
c t truy xut
protected
c t truy xut
public
c t truy xut
return
short
kiu s nguyn
static
super
switch
lnh la chn
m ch chnh lp
throw
Nm ra ngoi l
throws
true
Gi tr logic
try
s dng bt ngoi l
void
while
- bin dch mt chng trnh java sang m byte code ta dng lnh
C:\JDK1.4\BIN\javac TnTp.java
- thng dch v chy chng trnh ta s dng lnh
C:\JDK1.4\BIN\java TnTp
bin dch v chy chng trnh Java n gin ta nn thit t hai bin mi
trng paht v classpath nh sau:
- i vi dng WinNT:
+
R-Click
vo
My
Computer
chn
Properties
chn
+ Trong phn System variables chn new thm bin mi trng mi,
trong hp thoi hin ra g classpath vo Variable Name v
.;C:\jdk1.4\lib\tools.jar;C:\jdk1.4\lib\dt.jar;C:\jdk1.4\jre\lib\rt.jar trong
variable value (ch khng g du vo, mc ch cho d nhn m thi)
tp
li c php
M t
Kch c
Ti thiu
Ti a
Lp bao
(kiu s nguyn)
byte
s nguyn mt byte
8 bit
-128
127
Byte
short
s nguyn ngn
16 bit
-215
215-1
Short
int
s nguyn
32 bit
-231
231-1
Integer
long
s nguyn di
64 bit
-263
-263-1
Long
IEEE754
IEEE75 Float
(kiu s thc)
float
double
Double-precision
4
64 bit
IEEE754
floating point
IEEE75 Double
4
(kiu khc)
char
kiu k t
16 bit
Unicode 0
Unicode Character
216-1
boolean
kiu logic
Boolean
void
Void
M t
Mng (Array)
Lp (Class)
Giao din
(Interface)
trong :
type l kiu d liu cu bin
name l tn ca bin, tn bin l mt xu k t c t theo quy tc t tn
ca java
InitValue l gi tr khi to cho bin, y l phn tu chn, nu b qua phn
ny th gi tr ban u ca bin c khi to gi tr mc nh
Ch :
- Nu cn khai bo nhiu bin c cng mt kiu d liu ta c th t cc khai bo
cc bin trn mt dng, cc bin ny c phn cch nhau bi du phy
- Java s x l cc bin khng c khi u gi tr nh sau:
+ i vi thuc tnh (bin c khai bo trong phm vi ca lp) th Java s
t ng khi gn gi tr cho cc bin theo quy tc sau:
+ gi tr 0 cho kiu d liu s
+ false cho kiu logic
+ k t null (m 0) cho k t
+ gi tr null cho kiu i tng
+ i vi cc bin cc b th bin khng c khi gn gi tr mc nh, tuy
nhin Java s bo li nu ta s dng mt bin cha c nhn gi tr
2. phm vi bin
Mi bin c khai bo ra c mt phm vi hot ng, phm vi ca bin l
ni m bin c th c truy cp, iu ny xc nh c tnh thy c v thi gian
sng ca bin.
int i=1;
{
int i=10;// khng c php v c mt bin cng tn vi n
}
}
nhng ngi thit k java cho rng iu c th gy ln ln, do vy h quyt
nh khng cho php che giu mt bin phm vi ln hn.
Ch : thi gian sng ca cc i tng khng tun theo quy lut thi gian sng
ca cc bin kiu nguyn thu.
VII. Mt s php ton trn kiu d liu nguyn thu
1. Php gn
C php Bin=BiuThc;
Php gn c thc hin bng ton t =, n c ngha l hy tnh ton gi
tr biu thc bn phi du gn, sau a gi tr vo nh c tn nm bn
tri du gn
Ch :
+ cu lnh gn gm mt du =
+ kiu ca biu thc bn phi du gn phi tng thch vi kiu d liu ca bin
+ trong java ta c th thc hin mt dy gn nh sau:
i = j = 10;// c i v j u c gi tr 10
2. Ton t ton hc
Ngn ng java cng c cc php ton s hc nh cc ngn ng khc: + ( php
cng), - ( php tr ), * ( php nhn ),/ ( php chia ), % ( php ton chia ly phn
nguyn)
Ta m t tm tt cc php ton s hc qua bng tng kt sau:
Php ton
S dng
M t
op1 + op2
op1 - op2
op1 * op2
op1/ op2
op1 % op2
S dng
++
op++
++
++op
--
op--
--
--op
M t
Tng op ln 1 n v, gi tr ca op c tng ln trc khi biu
thc cha n c tnh
Tng op ln 1 n v, gi tr ca op c tng ln sau khi biu thc
cha n c tnh
Gim op xung1 n v, gi tr ca op c gim xung trc khi
biu thc cha n c tnh
Gim op xung1 n v, gi tr ca op c gim xung sau khi
biu thc cha n c tnh
Php ton
S dng
>
op1 ln hn op2
>=
<
op1 nh hn op2
<=
==
op1 == op2
!=
op1! = op2
// false
}
y l u ra ca chng trnh
Variable values...
i = 37
j = 42
k = 42
Greater than...
i > j = false
j > i = true
k > j = false
Greater than or equal to...
i >= j = false
j >= i = true
k >= j = true
Less than...
i < j = true
j < i = false
k < j = false
Less than or equal to...
i <= j = true
j <= i = false
k <= j = true
Equal to...
i == j = false
k == j = true
Not equal to...
i! = j = true
k! = j = false
S dng
&&
||
op1 || op2
! op
&
op1 | op2
op1 ^ op2
Nhn xt:
+ Php ton && ( & ) ch nhn gi tr true khi v ch khi c hai ton hng u l
true
+ Php ton || ( | ) ch nhn gi tr false khi v ch khi c hai ton hng l false
+ Php ton ^ ch nhn gi tr true khi v ch khi hai ton hng khc nhau
6. php ton thao tc trn bit
6.1. Php ton dch bit
Ta s m t php ton dch chuyn qua bng sau:
Php ton
S dng
>>
<<
Kt qu
Dch chuyn op1 sang phi op2 bit, op2 bit pha bn phi s
c in bng cc bt 0
Dch chuyn op1 sang tri op2 bit(gi nguyn du ca op1),
op2 bit nm bn tri s c in bng cc bt 0
>>>
op1>>> op2
V d:
13>>1=6 v 13=11012 do vy khi dch phi mt bit ta s c 1102=6
5<<1=10 v 5=1012 do vy khi dch tri 1 bit ta s c 10102=10
5<<2=100 v 5=1012 do vy khi dch tri 2 bit ta s c 101002=100
Nhn xt: php ton dch tri mt bit chnh l php nhn vi 2, cn dch phi
chnh l php chia cho 2
6.2. Php ton logic trn bit
Cc php ton thao tc bit cho php ta thao tc trn tng bit ring l trong mt
kiu d liu thch hp, cc php ton thao tc bit thc hin i s boolean trn cc
bit tng ng ca 2 ton hng to ra kt qu
Ta tm tt cc php ton trong bng sau:
Php ton
S dng
Thc hin
&
op1 | op2
op1 ^ op2
~op2
op2 Result
Php OR
op1 op2 Result
0
Php XOR
op1
op
2
Result
Php NOT
op1
Result
V d:
1101// 13
& 1100// 12
-----1100// 12
1101// 13
| 1100// 12
-----1101// 13
1101// 13
^ 1100// 12
-----0001// 1
! 10101=01010
7. Ton t gn tt
Ging nh C/C++ java cng c ton t gn, ta tm tt cc ton t gn qua
bng sau:
Php gn
S dng
Tng ng
+=
op1 += op2
-=
op1 -= op2
*=
op1 *= op2
/=
op1/ = op2
%=
op1 %= op2
&=
|=
op1 |= op2
^=
op1 ^= op2
<<=
>>=
>>>=
unary operators
creation or cast
new (type)expr
multiplicative
*/ %
additive
+-
shift
relational
equality
==! =
Bitwise AND
&
Bitwise exclusive OR
Bitwise inclusive OR
Logical AND
&&
Logical OR
||
Conditional
?:
Assignment
Trong bng trn th t u tin ca cc php ton c gim t trn xung di,
trn cng mt hng th chng c u tin ngang nhau.
1. Ton t dy
Khng ging nh C/C++, trong java ch duy nht m ta c th t ton t dy l
bn trong cp ngoc trn ca cu trc for( s c m t chi tit trong chng sau
)
IX. Ton t chuyn kiu
9.1 Chuyn i kiu khng tng minh
2.
X. Cc hm ton hc
Cc hm ton hc nh sin, cos, sqrt c java vit sn trong lp Math. Lp
ny nm trong gi java.lang (gi mc nh) do vy bn khng cn phi thm cu
lnh import u chng trnh c th s dng lp ny. Cc hm ny c vit
l cc phng thc tnh do vy ta khng cn phi to ra th hin ca lp Math.
Bng sau lit k mt s phng thc tnh trong lp Math:
Tn phng thc
sin(arg)
M t ngha
tnh sin ca arg
Kiu tham s
Kiu tr v
cos(arg)
tan(arg)
asin(arg)
arg
th hin mt cung
theo radians
acos(arg)
tnh
(arccosin) ca arg
atan(arg)
tnh
(arctang) ca arg
atan2 (arg1,arg2)
tnh
(arctang) ca
arg1/arg2
thc
double
mt
kiu radians
th
hin
cung
theo
radians
abs(arg)
max (arg1,arg2)
min (arg1,arg2)
double
ceil(arg)
floor(arg)
hoc
double
round(arg)
float
Tr
nguyn
gi
gn
float
hoc
double
tr arg l biu thc Nhn v kiu int
arg kiu
float
nht, gi tr ny double
chnh l gi tr ca
nu
double
trn
rint(arg)
Ging
round(arg)
sqrt(arg)
pow (arg1,arg2)
kiu double
tnh arg1arg2
arg
kiu
double
exp(arg)
tnh earg
log(arg)
random()
kiu double
ngu
double
nhin
nm trong khon
[0, 1)
T kho
Lp
Quyt nh
if-else, switch-case
X l li
try-catch-finally, throw
R nhnh
I. cu trc r nhnh
1.1. pht biu if
a) dng khuyt
C php
if(Boolean-expression)
statement;
s hot ng ca cu trc if thiu c m ta qua s sau:
b) dng
C php
if(Boolean-expression)
statement1;
else
statement2;
s hot ng ca cu trc if thiu c m ta qua s sau:
case gt_n:
lnh n; [ break;]
}
Sau y l s khi m t s hot ng ca cu trc r nhnh switch dng thiu
b) Dng
C php
switch(biu_thc) {
case gt_1:
lnh 1; [ break;]
case gt_2:
lnh 2; [ break;]
case gt_n:
lnh n; [ break;]
default:
lnh n+1;
}
Sau y l s khi m t s hot ng ca cu trc switch dng
Ch :
- biu_thc phi l mt biu thc c kiu char, byte, short, int nhng khng th l
kiu long, nu biu_thc c kiu khc vi cc kiu lit k trn th java s a ra
mt thng bo li.
- Nu biu_thc bng gi tr ca gt_i th cc lnh t lnh i cho n lnh n nu
khng c default (lnh n+1 nu c default) s c thc hin.
- Cu lnh break thot ra khi cu trc switch.
S khi m t s hot ng ca cu trc switch trong trng hp c lnh break
while (BooleanExpression) {
statement;
}
ta c th thy c lung thc hin ca chng trnh thng qua s khi sau:
trc tin pht biu while s tnh gi tr ca biu thc logic, nu gi tr ca biu
thc logic l ng th cu lnh trong thn ca while s c thc hin, sau khi
thc hin xong n tnh li gi tr ca biu thc logic, nu gi tr ng n li tip
tc thc hin lnh trong thn while cho n khi gi tr ca biu thc sai.
V d:
public class WhileDemo {
public static void main(String[] args) {
String copyFromMe = "Copy this string until you " +
"encounter the letter 'g'.";
StringBuffer copyToMe = new StringBuffer();
int i = 0;
char c = copyFromMe.charAt(i);
while (c! = 'g') {
copyToMe.append(c);
c = copyFromMe.charAt(++i);
}
System.out.println(copyToMe);
}
}
Ch :
+ biu thc bn trong cp ngoc trn phi l mt biu thc logic ( biu thc
tr v gi tr true hoc false )
+ biu thc iu kin phi nm trong cp ngoc trn
+ sau t kho while ta ch c th t c duy nht mt lnh, do vy c
th thc hin nhiu tc v sau while ta phi bao chng trong mt khi lnh
+ bn trong thn ca vng lp while ta nn c lnh lm thay i gi tr ca
biu thc logic, nu khng chng ta s ri vo vng lp v hn.
+ cu lnh trong thn cu trc while c th khng c thc hin ln no
(do biu thc lgic ban u c gi tr false )
2. Lp kim tra iu kin sau
C php:
do {
statement(s);
} while (expression);
s hot ng ca cu trc ny c th hin qua s sau:
Nhn vo s ny ta thy s hot ng ca n nh sau:
b1) thc hin lnh
b2) sau khi thc hin lnh xong n tnh gi tr ca biu thc logic
b3) nu biu thc logic ng n quay tr li b1, nu sai th b4
b4) kt thc vng lp v thc hin lnh sau do-while
v d:
public class DoWhileDemo {
36
45
54
63
72
10
20
30
40
Bn trong cu trc lp for gi tr ca i khng th t c gi tr 100 v pht biu
break s kt thc vng lp khi i=74
Ch : Java khng c lnh nhy goto, tuy nhin trong java vn c mt vi vt
tch ca lnh nhy goto ( kht ting v c coi l ngun sinh cc li ) l lnh
break v continue
Nhn ca vng lp
Trong thc t cc vng lp c th lng vo nhau, mc lng nhau khng hn
ch, th th cu hi t ra l lnh break s thot ra khi vng lp no, cu tr li l
n thot ra khi vng lp m lnh break c t, th th lm cch no ta c th
cho n thot ra khi mt vng lp tu no , cu tr li l java h tr cho ta
mt cng c l nhn ca vng lp.
Nhn l mt ci tn sau c 2 du chm
V d LabelName:
Ch duy nht m nhn c ngha l ngay trc lnh lp, ta khng th c bt c
mt lnh no nm gia nhn v lnh lp, ta m t s hot ng, cch s dng nhn
ca vng lp thng qua v d sau:
public class LabeledFor {
prt("continue inner");
continue inner;
}
}
}
}
// Can't break or continue
// to labels here
}
static void prt(String s) {
System.out.println(s);
}
}
kt qu chy chng trnh nh sau:
i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer
Chng 2
LP TRNH HNG I TNG
BI 1 NH NGHA LP
I. Khai bo lp
1.1. Mt lp c nh ngha theo mu sau:
[pbulic][final][abstract] class <tn_lp>{
// khai bo cc thuc tnh
// khai bo cc phng thc
}
sau u l v d n gin nh ngha lp ngn xp:
phn
cp
vo
cc
thnh
phn
private
bn
ngoi
lp
truy
cp
bt
lp
con
no
tha
n.
Trong :
accessLevel c th l mt trong cc t public, private, protected hoc c th b
trng, ngha ca cc b t ny c m t phn trn
-
phn thn
- Phn khai bo gm c nhng phn sau( chi tit ca khai bo c m t sau):
static
abstract
final
native
synchronized
returnType
MethodName
throws
exception
thc
Trong :
- accessLevel c th l mt trong cc t kho public, private, protected hoc b
trng, ngha ca cc b t ny c m t trong phn khai bo lp
- static l t kho bo cho java bit y l mt phng thc lp
- abstract t kho cho bit y l mt lp tru tng, n khng c ci t.
- final y l t kho bo cho java bit y l phng thc khng th ghi t lp
con
- native y l t kho bo cho java bit phng thc ny c vit bng mt
ngn ng lp trnh no khng phi l java ( thng c vit bng C/C++)
- synchronized y l mt phng thc ng b, n rt hu ch khi nhiu phng
thc cng truy cp ng thi vo ti nguyn min gng
- returnType l mt kiu d liu, y l kiu tr v ca phng thc, khi phng
thc khng tr v d liu th phi dng t kho void
- MethodName l tn ca phng thc, tn ca phng thc c t theo quy tc
t tn ca java
- throws l t kho dng khai bo cc ngoi l c th c nm ra t phng
thc, theo sau t kho ny l danh sch cc ngoi l c th c phng thc ny
nm ra
Ch :
1) Nu trong lp c t nht mt phng thc tru tng th lp phi l lp
tru tng
2) khng c thuc tnh tru tng
3) ta khng th to i tng ca lp tru tng
4) khc vi ngn ng C/C++, java bt buc bn phi khai bo gi tr tr v cho
phng thc, nu phng thc khng tr v d liu thi dng t kho void
(trong C/C++ khi ta khng khai bo gi tr tr v th mc nh gi tr tr v l
int)
2. Nhn gi tr tr v t phng thc
Ta khai bo kiu gi tr tr v t lc ta khai bo phng thc, bn trong
thn ca phng thc ta phi s dng pht biu return value; nhn v kt qu,
nu hm c khai bo kiu void th ta ch s dng pht biu return; mnh
return i khi cn c dng kt thc mt phng thc.
3. Truyn tham s cho phng thc
...
boolean isEmpty() {
if (topelement == STACK_EMPTY)
return true;
else
return false;
}
Object pop() {
if (topelement == STACK_EMPTY)
return null;
else {
return stackelements[topelement--];
}
}
III. T kho this
Thng thng bn trong thn ca mt phng thc ta c th tham chiu
n cc thuc tnh ca i tng , tuy nhin trong mt s tnh hung c bit
nh tn ca tham s trng vi tn ca thuc tnh, lc ch cc thnh vin ca
i tng ta dng t kho this, t kho this dng ch i tng ny.
V d sau ch ra cho ta thy trong tnh hung ny bt buc phi dng t kho this
v tn tham s ca phng thc to dng li trng vi tn ca thuc tnh
class HSBColor {
int hue, saturation, brightness;
HSBColor (int hue, int saturation, int brightness) {
this.hue = hue;
this.saturation = saturation;
this.brightness = brightness;
}
IV. T kho super
Khi mt lp c k tha t lp cha trong c lp cha v lp con u c mt
phng thc trng tn nhau, th th lm th no c th gi phng thc trng tn
ca lp cha, java cung cp cho ta t kho super dng ch i tng ca lp
cha
Ta xt v d sau
class ASillyClass {
boolean aVariable;
void aMethod() {
aVariable = true;
}
}
class ASillierClass extends ASillyClass {
boolean aVariable;
void aMethod() {
aVariable = false;
super.aMethod();
System.out.println(aVariable);
System.out.println(super.aVariable);
}
}
trong v d trn ta thy trong lp cha c phng thc tn l aMethod trong lp con
cng c mt phng thc cng tn, ta cn thy c hai lp ny cng c mt thuc
tnh tn aVariable c th truy cp vo cc thnh vin ca lp cha ta phi dng
t kho super.
Truy cp
Truy cp Truy cp
Truy cp trong
Truy cp trong
trong
trong lp trong lp
chnh lp
gi
gi
private
protected
public
default
package Greek;
class Alpha {
int iampackage;
void packageMethod() {
System.out.println("packageMethod");
}
}
package Greek;
class Beta {
void accessMethod() {
Alpha a = new Alpha();
a.iampackage = 10;// legal
a.packageMethod();// legal
}
}
BI 2 KHI U V DN DP
I. Phng thc to dng (constructor)
1. Cng dng
Phng thc to dng l mt phng thc ca lp ( nhng kh c bit )
thng dng khi to mt i tng mi. Thng thng ngi ta thng s
dng hm to khi gn gi tr cho cc thuc tnh ca i tng v c th thc
hin mt s cng vic cn thit khc nhm chun b cho i tng mi.
2. cch vit hm to
a) c im ca phng thc to dng
hm to c tn trng vi tn ca lp
hm to khng bao gi tr v kt qu
n c java gi t ng khi mt i tng ca lp c to ra
hm to c th c i s nh cc phng thc thng thng khc
trong mt lp c th c nhiu hm to
b) v d
v d 1: s dng hm to in ra mn hnh xu Creating Rock
class Rock {
Rock() {// This is the constructor
System.out.println("Creating Rock");
}
}
public class SimpleConstructor {
public static void main(String[] args) {
for(int i = 0; i < 10; i++)
new Rock();// call constructor
}
}
v d 2: s dng hm to c i
class Rock2 {
Rock2(int i) {
System.out.println(
"Creating Rock number " + i);
}
}
public class SimpleConstructor2 {
public static void main(String[] args) {
for(int i = 0; i < 10; i++)
new Rock2(i);// gi hm to c i
}
}// /:~
3. Hm to mc nh
Khi xy dng mt lp m khng xy dng hm to th th java s cung cp
cho ta mt hm to khng i mc nh, hm to ny thc cht khng lm g c,
nu trong lp c t nht mt hm to th hm to mc nh s khng c to
ra, khi ta to ra mt i tng th s c mt hm to no c gi, nu trnh
bin dch khng tm thy hm to tng ng n s thng bo li, iu ny thng
xy ra khi chng ta khng xy dng hm to khng i nhng khi to dng i
tng ta li khng truyn vo tham s, nh c ch ra trong v d sau:
public class TestPassByValue {
public TestPassByValue(String s) {
System.out.println(s);
}
public static void main(String[] args) {
TestPassByValue thu = new TestPassByValue();
// li v lp ny khng c hm to khng i
TestPassByValue thu1 = new TestPassByValue("Hello World");
// khng vn g
}
}
4. Gi hm to t hm to
Khi bn vit nhiu hm to cho lp, c i lc bn mun gi mt hm to
ny t bn trong mt hm to khc trnh phi vit lp m. c th gi n
hm to ta s dng t kho this.
C php this(danh sch i s);
V d:
public class Test {
public Test ()
{
System.out.println("hm to khng i");
}
public Test ( int i)
{
this();// gi n hm to khng i ca chnh lp ny
}
}
Ch :
1) bn trong cu t ta ch c th gi c ti a mt cu t, iu ny c ngha l
ta khng th gi c t 2 cu t tr ln bn trong mt cu t khc nh c
ch ra trong v d sau:
public class TestPassByValue {
public TestPassByValue() {
System.out.println("Day la ham tao khong doi");
}
public TestPassByValue(int i) {
System.out.println("Day la ham tao doi so nguyen");
}
public TestPassByValue(String s) {
this();// khng th gi hai hm to tr ln bn trong mt hm to
this(10);
System.out.println("Day la ham tao doi so xau");
}
public static void main(String[] args) {
TestPassByValue thu = new TestPassByValue();//
TestPassByValue thu1 = new TestPassByValue("Hello World");//
}
}
2) khi gi mt hm to bn trong mt hm to khc th li gi hm to phi l
lnh u tin trong thn phng thc, nn v d sau s b bo li
public class Test{
public Test () {
System.out.println("Day la ham tao khong doi");
}
public Test (String s) {
System.out.println("Day la ham tao doi so xau");
this();// gi n cu t phi l lnh u tin
}
public static void main(String[] args) {
Test thu = new Test (Hello World);
}
}
nu cho dch v d trn trnh bin dch s phn nn
"Test.java": call to this must be first statement in constructor at line 7, column 9
II. Khi khi u v danh v khi khi u tnh
1. Khi v danh
Trong java ta c th t mt khi lnh khng thuc mt phng thc no,
ngha l khi ny khng thuc bt c phng thc no k c hm to. khi khi
lnh ny c gi l khi v danh, khi v danh ny c java gi thc thi khi
mt i tng c to ra, cc khi v danh c gi trc c hm to, thng
thng ta hay s dng khi v danh khi u cc thuc tnh ca lp hoc c
{
Untitled1 dt1 = new Untitled1 ();
Untitled1 dt2 = new Untitled1 ();
}
}
khi chy chng trnh s cho kt qu sau:
khoi khoi dau thu 3
khoi khoi dau thu 1
khoi khoi dau thu 2
Day la ham tao
khoi khoi dau thu 3
khoi khoi dau thu 1
khoi khoi dau thu 2
Day la ham tao
2. Khi khi u tnh
Khi khi u tnh l mt khi lnh bn ngoi tt c cc phng thc, k c hm
to, trc khi lnh ny ta t t kho static, t kho ny bo cho java bit y l
khi khi u tnh, khi ny ch c gi 1 ln khi i tng u tin ca lp ny
c to ra, khi khi u tnh ny cng c java gi t ng trc bt c hm
to no, thng thng ta s dng khi khi u tnh khi u cc thuc tnh
tnh ( static ), sau y l mt v d c 1 khi khi u tnh v mt khi v danh,
bn thy c s khc nhau gia khi khi u tnh v khi v danh
public class Untitled1
{
public Untitled1 ()
{
System.out.println ( "y l hm to" );
}
static {// y l khi khi u tnh
System.out.println ( "y l khi khi u tnh");
System.out.println("Khi ny ch c gi 1 ln khi th hin u tin ca
lp c to ra");
}
{//y l khi v danh
System.out.println ( "y l khi v danh ");
}
y l hm to
y l khi v danh
y l hm to
Nhn vo kt qu ra ta thy khi khi u tnh ch c java gi thc hin 1 ln
khi i tng u tin ca lp ny c to, cn khi v danh c gi mi khi
mt i tng mi c to ra
III. Dn dp: kt thc v thu rc
1. Phng thc finalize
Java khng c phng thc hy b. Phng thc finalize tng t nh
phng thc hy b ca C++, tuy nhin n khng phi l phng thc hy b. S
d n khng phi l phng thc hy b v khi i tng c hy b th phng
thc ny cha chc c gi n. Phng thc ny c gi n ch khi b thu
rc ca Java c khi ng v lc i tng khng cn c s dng na. Do
vy phng thc finalize c th khng c gi n.
2. C ch gom rc ca java
Ngi lp trnh C++ thng s dng ton t new cp pht ng mt i
tng, nhng li thng qun gi ton t delete gii phng vng nh ny khi
khng cn dng n na, iu ny lm r r b nh i khi dn n chng trnh
phi kt thc mt cch bt thng, qu tht u l mt iu ti t. Trong java ta
khng cn quan tm n iu , java c mt c ch thu rc t ng, n thng
minh bit i tng tng no khng dng na, ri n t ng thu hi vng
nh dnh cho i tng .
Trong ngn ng C++ khi mt i tng b ph hu, s c mt hm c
gi t ng, hm ny c gi l hu t hay cn gi l hm hu, thng thng
}
+ Cc thuc tnh tnh c cp pht mt vng b nh c nh, trong java b nh
dnh cho cc thuc tnh tnh ch c cp pht khi ln u tin ta truy cp n n.
+ Thnh phn tnh l chung ca c lp, n khng l ca ring mt i tng no
c.
+ truy xut n thuc tnh tnh ta c th dng mt trong 2 cch sau:
tn_lp.tn_thuc_tnh_tnh;
tn_i_tng.tn_thuc_tnh_tnh;
c 2 cch truy xut trn u c tc dng nh nhau
+ khi gn gi tr cho thuc tnh tnh
thnh phn tnh c khi gn bng mt trong 2 cch sau:
S dng khi khi u tnh (xem li bi trc )
S dng khi u trc tip khi khai bo nh v d trn
Ch : ta khng th s dng hm to khi u cc thuc tnh tnh, bi v hm
to khng phi l phng thc tnh.
II. Phng thc tnh
Mt phng thc c khai bo l static c gi l phng thc tnh
V d:
class Static{
static int i;// y l thuc tnh tnh
// phng thc tnh
static void println (){
System.out.println ( i );
}
}
+ Phng thc tnh l chung cho c lp, n khng l thuc vo mt i tng c
th no
+ Li gi phng thc tnh xut pht t:
tn ca lp: tn_lp.tn_phng_thc_tnh(tham s);
tn ca i tng: tn_i_tng. tn_phng_thc_tnh(tham s);
+ V phng thc tnh l c lp vi i tng do vy bn trong phng thc
tnh ta khng th truy cp cc thnh vin khng tnh ca lp , tc l bn trong
phng thc tnh ta ch c th truy cp n cc thnh vin tnh m thi.
+ Ta khng th s dng t kho this bn trong phng thc tnh
Ch :
1) nu nu java khng tm thy mt hm bi ti thch hp th n s a ra mt
thng bo li
2) ta khng th s dng gi tr tr v ca hm phn bit s khc nhau gia
2 phng thc bi ti
3) khng nn qu lm dng cc phng thc bi ti v trnh bin dch phi mt
thi gian phn on tm ra hm thch hp, iu ny i khi cn dn n
sai st
4) khi gi cc hm np chng ta nn c lnh chuyn kiu tng minh trnh
bin dch tm ra hm ph hp mt cch nhanh nht
5) trong java khng th nh ngha chng ton t nh trong ngn ng C++, c
th y l mt khuyt im, nhng nhng ngi thit k java cho rng iu
ny l khng cn thit, v n qu phc tp.
BI 5 K THA (INHERITANCE)
I. Lp c s v lp dn xut
- Mt lp c xy dng thng qua k tha t mt lp khc gi l lp dn xut
(hay cn gi l lp con, lp hu du ), lp dng xy dng lp dn xut c
gi l lp c s ( hay cn gi l lp cha, hoc lp t tin )
Mt lp dn xut ngoi cc thnh phn ca ring n, n cn c k tha tt
c cc thnh phn ca lp cha
II. Cch xy dng lp dn xut
ni lp b l dn xut ca lp a ta dng t kho extends, c php nh
sau:
class b extends a{
// phn thn ca lp b
}
III. Tha k cc thuc tnh
Thc tnh ca lp c s c tha k trong lp dn xut, nh vy tp thuc tnh
ca lp dn xut s gm: cc thuc tnh khai bo trong lp dn xut v cc thuc
tnh ca lp c s, tuy nhin trong lp dn xut ta khng th truy cp vo cc
thnh phn private, package ca lp c s
IV. Tha k phng thc
Lp dn xut k tha tt c cc phng thc ca lp c s tr:
Phng thc to dng
Phng thc finalize
V. Khi u lp c s
Lp dn xut k tha mi thnh phn ca lp c, iu ny dn ta n mt
hnh dung, l lp dn xut c cng giao din vi lp c s v c th c cc thnh
phn mi b sung thm. nhng thc t khng phi vy, k tha khng ch l sao
chp giao din ca lp ca lp c s. Khi ta to ra mt i tng ca lp suy dn,
th n cha bn trong n mt s vt con ca lp c s, s vt con ny nh th ta
to ra mt s vt tng minh ca lp c s, th th lp c s phi c bo
m khi u ng, thc hin iu trng java ta lm nh sau:
Thc hin khi u cho lp c s bng cch gi cu t ca lp c s bn trong
cu t ca lp dn xut, nu bn khng lm iu ny th java s lm gip ban,
ngha l java lun t ng thm li gi cu t ca lp c s vo cu t ca lp
dn xut nu nh ta qun lm iu , c th gi cu t ca lp c s ta s
dng t kho super
V d 1: v d ny khng gi cu t ca lp c s mt cch tng minh
class B
{
public B ()
{
System.out.println ( "Ham tao ca lop co so" );
}
}
public class A
extends B
{
public A ()
{// khng gi hm to ca lp c s tng minh
System.out.println ( "Ham tao ca lop dan xuat" );
}
public static void main ( String arg[] )
{
A thu = new A ();
}
}
Kt qu chy chng trnh nh sau:
Ham tao ca lop co so
Ham tao ca lop dan xuat
V d 2: v d ny s dng t kho super gi cu t ca lp c s mt cch
tng minh
class B
{
public B ()
{
System.out.println ( "Ham tao ca lop co so" );
}
}
public class A
extends B
{
public A ()
{
super();// gi to ca lp c s mt cch tng minh
System.out.println ( "Ham tao ca lop dan xuat" );
}
public static void main ( String arg[] )
{
A thu = new A ();
}
}
khi chy chng trnh ta thy kt qu ging ht nh v d trn
Ch 1: nu gi tng minh cu t ca lp c s, th li gi ny phi l lnh u
tin, nu v d trn i thnh
class B
{
public B ()
{
System.out.println ( "Ham tao ca lop co so" );
}
}
public class A
extends B
{
public A ()
{// Li gi cu t ca lp c s khng phi l lnh u tin
System.out.println ("Ham tao ca lop dan xuat");
super ();
}
public static void main ( String arg[] )
{
A thu = new A ();
}
}
nu bin dch on m ny ta s nhn c mt thng bo li nh sau:
"A.java": call to super must be first statement in constructor at line 15, column 15
Ch 2: ta ch c th gi n mt hm to ca lp c s bn trong hm to ca
lp dn xut, v d ch ra sau b bo li
class B
{
public B ()
{
System.out.println ( "Ham tao ca lop co so" );
}
public B ( int i )
{
System.out.println ( "Ham tao ca lop co so" );
}
}
public class A
extends B
{
public A ()
{
super ();
super ( 10 );/ / khng th gi nhiu hn 1 hm to ca lp c s
System.out.println ( "Ham tao ca lop dan xuat" );
}
public static void main ( String arg[] )
{
A thu = new A ();
}
}
1. Trt t khi u
Trt t khi u trong java c thc hin theo nguyn tc sau: java s gi
cu t ca lp c s trc sau mi n cu t ca lp suy dn, iu ny c
ngha l trong cy ph h th cc cu t s c gi theo trt t t gc xung dn
n l
2. Trt t dn dp
Mc d java khng c khi nim hu t nh ca C++, tuy nhin b thu rc
ca java vn hot ng theo nguyn tc lm vic ca cu t C++, tc l trt t thu
rc th ngc li so vi trt t khi u.
VI. Ghi phng thc ( Override )
Hin tng trong lp c s v lp dn xut c hai phng thc ging ht
nhau ( c tn ln b tham s) gi l ghi phng thc ( Override ), ch
Override khc Overload.
Gi phng thc b ghi ca lp c s
Bn trong lp dn xut, nu c hin tng ghi th phng thc b ghi ca lp
c s s b n i, c th gi phng thc b ghi ca lp c s ta dng t
kho super truy cp n lp cha, c php sau:
super.overriddenMethodName();
Ch : Nu mt phng thc ca lp c s b bi ti ( Overload ), th n khng
th b ghi ( Override ) lp dn xut.
VI. Thnh phn protected
Trong mt vi bi trc ta lm quen vi cc thnh phn private, public,
sau khi hc v k tha th t kho protected cui cng c ngha.
T kho protected bo cho java bit y l thnh phn ring t i vi bn ngoi
nhng li sn sng vi cc con chu
VII. T kho final
T kho final trong java c nhiu ngha khc nhau, ngha ca n tu thuc vo
ng cnh c th, nhng ni chung n mun ni ci ny khng th thay i
c.
1. Thuc tnh final
Trong java cch duy nht to ra mt hng l khai bo thuc tnh l final
V d:
public class A
{
// nh ngha hng tn MAX_VALUE gi tr 100
static final int MAX_VALUE = 100;
public static void main ( String arg[] )
{
A thu = new A ();
System.out.println("MAX_VALUE= " +thu.MAX_VALUE);
}
}
Ch :
1) khi khai bo mt thuc tnh l final th thuc tnh ny la hng, do vy ta
khng th thay i gi tr ca n
2) khi khai bo mt thuc tnh l final th ta phi cung cp gi tr ban u cho n
3) nu mt thuc tnh va l final va l static th n ch c mt vng nh chung
duy nht cho c lp
2. i s final
Java cho php ta to ra cc i final bng vic khai bo chng nh vy bn
trong danh sch i, ngha l bn trong thn ca phng php ny, bt c c gng
no thay i gi tr ca i u gy ra li lc dch
V d sau b bo li lc dch v n c gng thay i gi tr ca i final
public class A
{
static public void thu ( final int i )
{
i=i+1;//khng cho php thay i gi tr ca tham s final
System.out.println ( i );;
}
public static void main ( String arg[] )
{
int i = 100;
thu ( i );
}
}
chng trnh ny s b bo li:
"A.java": variable i might already have been assigned to at line 5, column 9
3. Phng thc final
Mt phng thc bnh thng c th b ghi lp dn xut, i khi ta
khng mun phng thc ca ta b ghi lp dn xut v l do g , mc
ch ch yu ca cc phng thc final l trnh ghi , tuy nhin ta thy rng
cc phng thc private s t ng l final v chng khng th thy c trong
lp dn xut ln chng khng th b ghi , nn cho d bn c cho mt phng
thc private l final th bn cng ch thy mt hiu ng no
4. Lp final
Nu bn khng mun ngi khc k tha t lp ca bn, th bn hy dng
t kho final ngn cn bt c ai mun k tha t lp ny.
Ch : do mt lp l final (tc khng th k tha )do vy ta khng th no ghi
BI 6 LP C S TRU TNG
Mt lp c s tru tng l mt lp ch c dng lm c s cho cc lp khc,
ta khng th to ra th hin ca lp ny, bi v n c dng nh ngha mt
giao din chung cho cc lp khc.
Phng thc tru tng
Mt lp tru tng c th cha mt vi phng thc tru tng, do lp tru
tng ch lm lp c s cho cc lp khc, do vy cc phng thc tru tng
cng khng c ci t c th, chng ch gm c khai bo, vic ci t c th s
dnh cho lp con
1. Ch :
1) nu trong lp c phng thc tru tng th lp phi c khai bo l tru
tng
2) nu mt lp k tha t lp tru tng th: hoc chng phi ghi tt c cc
phng thc o ca lp cha, hoc lp phi l lp tru tng
3) khng th to ra i tng ca lp tru tng
BI 7 A HNH THI
a hnh thi trong lp trnh hng i tng cp n kh nng quyt
nh trong lc thi hnh (runtime) m no s c chy, khi c nhiu phng thc
trng tn nhau nhng cc lp c cp bc khc nhau.
Ch : kh nng a hnh thi trong lp trnh hng i tng cn c gi vi
nhiu ci tn khc nhau nh: tng ng bi, kt ghp ng,..
a hnh thi cho php cc vn khc nhau, cc i tng khc nhau, cc phng
thc khc nhau, cc cch gii quyt khc nhau theo cng mt lc chung.
Cc bc to a hnh thi:
1. Xy dng lp c s ( thng l lp c s tru tng, hoc l mt giao din),
lp ny s c cc lp con m rng( i vi lp thng, hoc lp tru
tng), hoc trin khai chi tit ( i vi giao din ).
2. 2. Xy dng cc lp dn xut t lp c s va to. trong lp dn xut ny ta
s ghi cc phng thc ca lp c s( i vi lp c s thng), hoc trin
khai chi tit n ( i vi lp c s tru tng hoc giao din).
3. Thc hin vic to khun xung, thng qua lp c s, thc hin hnh vi a
hnh thi
Khi nim v to khun ln, to khun xung
Hin tng mt i tng ca lp cha tham tr n mt i tng ca lp con
th c gi l to khun xung, vic to khun xung lun c java chp
thun, do vy khi to khun xung ta khng cn phi p kiu tng minh.
Hin tng mt i tng ca lp con tham tr ti mt i tng ca lp cha
th c gi l to khun ln, vic to khun ln l an ton, v mt i tng
ca lp con cng c y cc thnh phn ca lp cha, tuy nhin vic to
khun ln s b bo li nu nh ta khng p kiu mt cch tng minh.
interface InterfaceName
Extends SuperInterface
InterfaceBody
}
Trong cu trc trn c 2 phn bt buc phi c l phn interface v
InterfaceName, cc phn khc l tu chn.
2. Phn thn
Phn thn khai bo cc cc hng, cc phng thc rng ( khng c ci t ), cc
phng thc ny phi kt thc vi du chm phy ;, bi v chng khng c phn
ci t
Ch :
1) Tt c cc thnh phn ca mt giao din t ng l public do vy ta khng cn
phi cho b t ny vo.
2) Java yu cu tt c cc thnh phn ca giao din phi l public, nu ta thm cc
b t khc nh private, protected trc cc khai bo th ta s nhn c mt li
lc dch
3) Tt c cc trng t ng l final v static, nn ta khng cn phi cho b t
ny vo.
3. Trin khai giao din
Bi mt giao din ch gm cc m t chng khng c phn ci t, cc giao din
c nh ngha cho cc lp dn xut trin khai, do vy cc lp dn xut t lp
ny phi trin khai y tt c cc khai bo bn trong giao din, trin khai
mt giao din bn bao gm t kho implements vo phn khai bo lp, lp ca
bn c th trin khai mt hoc nhiu giao din ( hnh thc ny tng t nh k
tha bi ca C++)
V d
public class StockApplet extends Applet implements StockWatcher {
.. .
public void valueChanged(String tickerSymbol, double newValue) {
if (tickerSymbol.equals(sunTicker)) {
.. .
} else if (tickerSymbol.equals(oracleTicker)) {
.. .
} else if (tickerSymbol.equals(ciscoTicker)) {
.. .
}
}
}
Ch :
1) Nu mt lp trin khai nhiu giao din th cc giao din ny c lit k cch
nhau bi du phy ,
2) Lp trin khai giao din phi thc thi tt c cc phng thc c khai bo
trong giao din, nu nh lp khng trin khai, hoc trin khai khng ht th
n phi c khai bo l abstract
3) Do giao din cng l mt lp tru tng do vy ta khng th to th hin ca
giao din
4) Mt lp c th trin khai nhiu giao din, do vy ta c li dng iu ny
thc hin hnh vi k tha bi, vn khng c java h tr
5) Mt giao din c th m rng mt giao din khc, bng hnh thc k tha
II. Lp trong
C th t mt nh ngha lp ny vo bn trong mt lp khc. iu ny
c gi l lp trong. Lp trong l mt tnh nng c gi tr v n cho php bn gp
nhm cc lp v mt logic thuc v nhau v kim sot tnh thy c ca cc
lp ny bn trong lp khc. Tuy nhin bn phi hiu rng lp trong khng phi l
l hp thnh
V d:
public class Stack {
private Vector items;
.. .//code for Stack's methods and constructors not shown...
public Enumeration enumerator() {
return new StackEnum();
}
class StackEnum implements Enumeration {
int currentItem = items.size() - 1;
public boolean hasMoreElements() {
return (currentItem >= 0);
}
public Object nextElement() {
if (!hasMoreElements())
throw new NoSuchElementException();
else
return items.elementAt(currentItem--);
}
}
}
Lp trong rt hu hiu khi bn bn mun to ra cc lp iu hp ( c bn k khi
ni v thit k giao din ngi dng )
Bi 9 MNG, XU K T, TP HP
I. Mng
1. Mng 1 chiu
a) Khai bo
C php khai bo:
- KDL tn_mng[];//Khai bo mt con tr mng
- KDL []tn_mng;//nh trn
- KDL tn_mng[] = new KDL[spt];//To ra mt mng c spt phn t
Trong c php trn th:
KDL l mt kiu d liu bt k nh: kiu nguyn thy, kiu i tng n
xc nh kiu d liu ca tng phn t ca mng.
Spt l s phn t ca mng.
Ch :
Mng trong Java l mt i tng
Cng nh cc i tng khc, mng phi c to ra bng ton t new nh
sau:
Tn_mng=new KDL[spt];
Khi mng c to ra th mi phn t ca mng s nhn mt gi tr mc nh,
quy tc khi to gi tr cho cc phn t ca mng cng chnh l quy tc khi
u gi tr cho cc thuc tnh ca i tng, tc l mi phn t ca mng s
nhn gi tr:
+ 0 nu KDL l kiu s
+ \0 nu KDL l k t
+ false nu KDL l boolean
+ null nu KDL l mt lp no .
V d 1. Khai bo mt mng s nguyn gm 100 phn t
Cch 1:
int mangInt[];//Khai bo mt con tr n mng cc s nguyn
II. Xu k t
Vic x l cc xu k t trong Java c h tr bi hai lp String v
StringBuffer. Lp String dng cho nhng xu k t bt bin, ngha l nhng xu
ch c v sau khi dc khi to gi tr th ni dung bn trong xu khng th thay
i c. Lp StringBuffer c s dng i vi nhng xu k t ng, tc l c
th thay i c ni dung bn trong ca xu.
1. Lp String
Chui l mt dy cc k t. Lp String cung cp cc phng thc thao
tc vi cc chui. N cung cp cc phng thc khi to (constructor) khc nhau:
String str1 = new String( );
//str1 cha mt chui rng.
String str2 = new String(Hello World);
//str2 cha Hello World
char ch[] = {A,B,C,D,E};
String str3 = new String(ch);
//str3 cha ABCDE
String str4 = new String(ch,0,2);
//str4 cha AB v 0- tnh t k t bt u, 2- l s lng k t k t k t bt
u.
Ton t + c s dng cng chui khc vo chui ang tn ti. Ton
t + ny c gi nh l ni chui. y, ni chui c thc hin thng
qua lp StringBuffer. Chng ta s tho lun v lp ny trong phn sau. Phng
thc concat( ) ca lp String cng c th thc hin vic ni chui. Khng ging
nh ton t +, phng thc ny khng thng xuyn ni hai chui ti v tr cui
cng ca chui u tin. Thay vo , phng thc ny tr v mt chui mi,
chui mi s cha gi tr ca c hai. iu ny c th c gn cho chui ang
tn ti. V d:
String strFirst, strSecond, strFinal;
StrFirst = Charlie;
StrSecond = Chaplin;
//.bng cch s dng phng thc concat( ) gn vi mt chui ang tn ti.
StrFinal = strFirst.concat(strSecond);
Phng thc concat( ) ch lm vic vi hai chui ti mt thi im.
Cc phng thc ca lp String
Trong phn ny, chng ta s xem xt cc phng thc ca lp String.
- char charAt(int index ) Phng thc ny tr v mt k t ti v tr index trong
chui.
V d:
String name = new String(Java Language);
char ch = name.charAt(5);
Bin ch cha gi tr L, t v tr cc s bt u t 0.
- boolean startsWith(String s ) Phng thc ny tr v gi tr kiu logic
(Boolean), ph thuc vo chui c bt u vi mt chui con c th no khng.
V d:
String strname = Java Language;
boolean flag = strname.startsWith(Java);
Bin flag cha gi tr true.
- boolean endsWith(String s ) Phng thc ny tr v mt gi tr kiu logic
(boolean), ph thuc vo chui kt thc bng mt chui con no khng.
V d:
String strname = Java Language;
boolean flag = strname.endsWith(Java);
Bin flag cha gi tr false.
- String copyValueOf( )
Phng thc ny tr v mt chui c rt ra t mt mng k t c truyn nh
mt i s. Phng thc ny cng ly hai tham s nguyn. Tham s u tin ch
nh v tr t ni cc k t phi c rt ra, v tham s th hai ch nh s k t
c rt ra t mng. V d:
char name[] = {L,a,n,g,u,a,g,e};
String subname = String .copyValueOf(name,5,2);
By gi bin subname cha chui ag.
- char [] toCharArray( )
Phng thc ny chuyn chui thnh mt mng k t. V d:
String text = new String(Hello World);
char textArray[] = text.toCharArray( );
- int indexOf(String sunString )
Phng thc ny tr v th t ca mt k t no , hoc mt chui trong phm vi
mt chui. Cc cu lnh sau biu din cc cch khc nhau ca vic s dng hm.
String day = new String(Sunday);
int index1 = day.indexOf(n);
//cha 2
Spaces
);
System.out.println(space);
System.out.println(space.trim()); //Sau khi ct b khong trng
- boolean equals(String s)
Phng thc ny so snh ni dung ca hai i tng chui.
String name1 = Java, name2 = JAVA;
boolean flag = name1.equals(name2);
Bin flag cha gi tr false.
- Cc phng thc valueOf c np chng cho php chuyn mt gi tr thnh
xu
static String valueOf(Object obj)//Chuyn mt i tng thnh xu, bng cch gi
n phng thc toString ca i tng obj
static String valueOf(char[] characters)//Chuyn mng cc k t thnh xu.
static String valueOf(boolean b)//Chuyn mt gi tr logic thnh xu, xu nhn
c l true hoc false tng ng vi gi tr true hoc false ca b
static String valueOf(char c)//Chuyn k t thnh xu
static String valueOf(int i)//chuyn mt s nguyn thnh xu
static String valueOf(long l)//Chuyn mt gi tr long thnh xu
static String valueOf(float f)//chuyn mt gi tr float thnh xu
static String valueOf(double d)//chuyn mt gi tr double thnh xu
2. Lp StringBuffer
Lp StringBuffer cung cp cc phng thc khc nhau thao tc mt i
lng
ca
StringBuffer
th
thay
vi
phng
thc
lng
ca
nh
lng
ca
nh
+s1.capacity()); //cha 5
s1.ensureCapacity(8);
System.out.println(Dung
+s1.capacity()); //cha 12
s1.ensureCapacity(30);
System.out.println(Dung
lng
ca
nh
+s1.capacity()); //cha 30
}
}
Trong on m trn, dung lng ban u ca s1 l 5. Cu lnh
s1.ensureCapacity(8);
Thit lp dung lng ca s1 n 12 =(5*2+2) bi v dung lng truyn vo l 8
nh hn dung lng c tnh ton l 12 .
s1.ensureCapacity(30);
Thit lp dung lng ca s1 n 30 bi v dung lng truyn vo l 30 th ln
hn dung lng c tnh ton (12*2+2).
Cc phng thc lp StringBuffer
Trong phn ny, chng ta s xem xt cc phng thc ca lp StringBuffer vi
mt chng trnh.
- void append()
Phng thc ny ni thm mt chui hoc mt mng k t vo cui cng ca i
tng StringBuffer. V d:
StringBuffer s1 = new StringBuffer(Good);
s1.append(evening);
Gi tr trong s1 by gi l goodevening.
- void insert()
Phng thc ny c hai tham s. Tham s u tin l v tr chn. Tham s th hai
c th l mt chui, mt k t (char), mt gi tr nguyn (int), hay mt gi tr s
thc (float) c chn vo. V tr chn s ln hn hay bng 0, v nh hn hay
bng chiu di ca i tng StringBuffer. Bt k i s no, tr k t hoc
chui, c chuyn sang chui v sau mi c chn vo. V d:
StringBuffer str = new StringBuffer(Java sion);
str.insert(1,b);
Bin str cha chui Jbava sion.
- char charAt()
Phng thc ny tr v mt gi tr k t trong i tng StringBuffer ti v tr
c ch nh.V d:
StringBuffer str = new StringBuffer(James Gosling);
char letter = str.charAt(6); //cha G
- void setCharAt(int index, char value)
Phng thc ny c s dng thay th k t trong mt StringBuffer bng mt
k t khc ti mt v tr c ch nh.
StringBuffer name = new StringBuffer(Jawa);
name.setCharAt(2,v);
Bin name cha Java.
- void setLength()
III. Lp StringTokenizer
Mt lp StringTokenizer c th s dng tch mt chui thnh cc phn
t (token) nh hn. V d, mi t trong mt cu c th coi nh l mt token. Tuy
nhin, lp StringTokenizer i xa hn vic phn tch cc t trong cu. tch
ra cc thnh token ta c th tu bin ch ra mt tp du phn cch cc token khi
khi to i tng StringTokenizer. Nu ta khng ch ra tp du phn cch th mc
nh l du trng (space, tab, ...). Ta cng c th s dng tp cc ton t ton hc
(+, *, /, v -) trong khi phn tch mt biu thc.
Bng sau tm tt 3 phng thc to dng ca lp StringTokenizer:
Phng thc xy dng
ngha
StringTokenizer(String)
To ra mt i tng StringTokenizer
mi da trn chui c ch nh.
StringTokenizer(String, Strng)
To ra mt i tng StringTokenizer
mi da trn (String, String) chui c
ch nh v mt tp cc du phn cch.
StringTokenizer(String, String,
To ra mt i tng StringTokenizer da
boolean)
Mc ch
Tr v s cc token cn li.
Tr v True nu cn c token ang c nh du
trong chui. N th ging ht nh hasMoreTokens.
hasMoreTokens()
nextElement()
nextToken()
nextToken(String)
System.out.println(Tokens
of
mathExpr: );
while(st1.hasMoreTokens())
System.out.println(st1.nextToken());
//to mt chui ca cc trng c phn cch bi du phy v to //mt
tokenizer cho chui.
IV. Mt s lp c bn ca Java
Cc lp c bn, hay s dng ca Java nh: Object, cc lp Wrapper (lp
bao ca cc kiu d liu nguyn thy), Math, String v lp StringBuffer. Nhng
lp ny c xy dng trong gi java.lang (gi mc nh ca Java, khi cn s
dng cc lp trong gi ny ta khng cn phi import n). Mi lp trong Java u
l lp con ca lp Object .
equals().
2 Mi lp (tr lp Character) u nh ngha hm static valueOf(String s)
tr li i tng tng ng. Cc hm ny nm ra ngoi l
NumberFormatException khi gi tr String truyn vo phng thc khng
hp l.
Boolean boolObj = Boolean.valueOf(true);
Integer intObj = Integer.valueOf(2002);
Float floatObj = Float.valueOf(3.14F);
Double doubleObj= Double.valueOf(3.14);
3 Cc lp vit hm toString() tr li l cc i tng String biu din
cho cc gi tr nguyn thy dng xu.
String charStr = charObj.toString();
// a
// true
// true
int i = intObj.intValue();
float f = floatObj.floatValueOf();
// 2002
// 3.14F
// a
// false
// -128
// 2147483647
byte byteValue()
short shortValue()
int intValue()
long longValue()
float floatValue()
double doubleValue()
Trong mi lp bao cn c hm static parseType(String s) chuyn cc gi tr
c biu din di dng xu v cc gi tr s:
byte value1 = Byte.parseByte(16);
int value2 = Integer.parseInt(2002);
double value3 = Double.parseDouble(3.14);
V d: Vit chng trnh nhp vo mt dy s ty v sp xp theo th t tng
dn.
import java.io.*;
class SapXep{
static int[] day;
static void nhap(){
String str;
int n = day.length;
DataInputStream stream = new DataInputStream(System.in);
System.out.println("Nhap vao " + n + " so nguyen");
for (int k = 0; k < n; k++){
try{
System.out.print(k + ": );
str = stream.readLine();
day[k] = Integer.valueOf(str).intValue();
}catch(IOException e){
System.err.println("I/O Error!");
}
}
}
static void hienThi(){
int n = day.length;
for (int k = 0; k < n; k++)
System.out.print(day[k] + " ");
System.out.println();
}
static void sapXep(){
int x, max, k;
for(int i =day.length-1; i > 0; i--){
max = day[i];k = i;
for (int j = 0; j < i; j++)
if (max < day[j]){
max = day[j];
k = j;
}
day[k] = day[i];
day[i] = max;
}
}
public static void main(String[] args){
String str;
int n;
DataInputStream stream = new DataInputStream(System.in);
System.out.print("\nCho biet bao nhieu so nhap vao: ");
try{
str = stream.readLine();
}catch(IOException e){
System.err.println("I/O Error!");
str = "0";
}
n = Integer.valueOf(str).intValue();
SapXep.day = new int[n];
nhap();
sapXep();
System.out.println("Day so duoc sap xep: ");
hienThi();
}
}
Lp Void
Lp ny k hiu cho i tng ca lp Class biu din cho gi tr void.
3. Lp Math
Lp final class Math nh ngha mt tp cc hm tnh thc hin cc chc
nng chung ca ton hc nh cc php lm trn s, sinh s ngu nhin, tm s cc
i, cc tiu, v.v.
Lp final class Math cn cung cp nhng hng s nh s e (c s ca logarithm),
s pi thng qua Math.E v Math.PI.
Cc hm lm trn v x l cc gi tr gii hn
static int abs(int i)
static long abs(long l)
static float abs(float f)
static double abs(double d)
Hm abs() c np chng tr li gi tr tuyt i ca i s.
max(int a, int b)
static long
max(long a, long b)
static float
max(float a, float b)
min(int a, int b)
static long
min(long a, long b)
static float
min(float a, float b)
V. Cc lp tp hp
Tp hp (Collection) trong Java cho php lu li tham chiu n cc i tng.
Cc i tng bt k c th c lu tr, tm kim v c thao tc nh l cc
phn t ca tp hp.
Phn giao din
Giao din (interface) Collection l c s pht trin, m rng thnh cc giao
din khc nh Set, List, SortedSet v Map v giao din c s m rng thnh
SortedMap. Hnh sau m t cu trc phn cp theo quan h k tha ca cc giao
din li.
M t
Collection
Set
SortedSet
List
Map
SortedMap
Phn ci t
Gi java.util cung cp tp cc lp ci t cc giao din li to ra nhng cu
trc d liu thng s dng nh: Vector, HashTable, HashSet, LinkedList,
TreeSet, v.v. Nhng lp ny v giao din li c xy dng theo cu trc phn cp
nh trong hnh H6-3.
// Ty chn
a.addAll(b)
Hnh Cc php ton trn cc tp hp
a.removeAll(b) a.retainAll(b)
b a ? (Tp con)
a.addAll(b)
a = a b (Hp tp hp)
a.removeAll(b)
a = a - b (Hiu tp hp)
a.retainAll(b)
a = a b (Giao tp hp)
a.clear()
a = (Tp rng)
// S i s ca chng trnh
// S k t trong mi i s
// Ty chn
// Ty chn
// Ty chn
B i phn t c xc nh bi index.
boolean addAll(int index, Collection c)
// Ty chn
java.lang.
Cc lp ArrayList, Vector v LinkedList
Ba lp ny c nhng ton t to lp to ra nhng danh sch mi rng
hoc c cc phn t ly theo cc tp hp khc.
Vector v ArrayList l hai lp kiu mng ng (kch thc thay i c). Hiu
sut s dng hai lp ny l tng ng nhau, tuy nhin nu xt theo nhiu kha
cnh khc th ArrayList l cu trc hiu qu nht ci t cu trc danh sch
List.
V d 6.5 H thng c mt dy N_DIGIT (5) ch s b mt. Hy vit chng trnh
nhp vo N_DIGIT ch s on xem c bao nhiu ch s trng v c bao nhiu
v tr cc ch s trng vi dy s cho trc.
import java.util.*;
public class NhapDoanSo {
final static int N_DIGIT = 5;
public static void main(String args[]){
if(args.length != N_DIGIT) {
System.err.println("Hay doan " + N_DIGIT + " chu so!");
return;
}
List biMat = new ArrayList();// To danh sch biMat l rng
biMat.add("5");
// B sung cc s vo dy biMat
biMat.add("3");
biMat.add("2");
biMat.add("7");
biMat.add("2");
List doan = new ArrayList();// To danh sch doan l rng
for(int i = 0; i < N_DIGIT; i++)
doan.add(args[i]); // a cc s t i s chng trnh vo doan
Cc nh x khng phi l cc tp hp, giao din Map cng khng phi l m rng
ca cc Collection. Song, php nh x c th xem nh l mt loi tp hp theo
ngha: cc kho (key) to thnh tp hp v tp hp cc gi tr (value) hoc tp cc
cp <key, value>.
Giao din Map khai bo nhng hm sau:
Object put(Object key, Object value);
// Ty chn
// Ty chn
Loi b nh x c xc nh bi key.
boolean containsKey(Object key);
Cho gi tr true nu key c nh x sang mt gi tr no , ngc li l
false.
boolean containsValue(Object value);
Cho gi tr true nu value c nh x bi mt key no , ngc li l
false.
int size();
Cho s cc cp nh x <key, value>.
boolean isEmpty();
Cho gi tr true nu nh x rng, ngc li l false.
Mt s php ton thng dng
void putAll(Map t);
// Ty chn
Sao li cc nh x t t.
void clear();
Xo i tt c cc nh x.
Set keySet();
// Ty chn
Xc nh tp cc kho.
Collection values();
Xc nh tp hp cc gi tr.
Set entrySet();
Xc nh tp cc nh x <key, value>.
Cc lp HashMap v HashTable
Hai lp ny ci t giao din Map v c xy dng trong java.lang. Chng cho
php to ra cc nh x mi c th rng hoc c nhng kch thc ty .
I.
import java.util.*;
public class NhomTrongluong {
public static void main(String args[]){
// To ra mt nh x lu tn sut ca mi nhm
Map demNhom = new HashMap();
int nArgs = args.length;
// c cc trng lng c nhp vo t i s v chia nhm cch
nhau 5 n v.
for(int i = 0; i < nArgs; i++){
double trongL = Double.parseDouble(args[i]);
Integer nhomTL=new Integer((int)Math.round(trongL/5)*5);
Integer demCu = (Integer)demNhom.get(nhomTL);
// Tng s ln trng lung trong cng nhm, nu l ln u (demCu
= null) th t l 1.
Integer demMoi = (demCu == null)?
new Integer(1): new Integer(demCu.intValue()+1);
demNhom.put(nhomTL, demMoi);
}
// Ly ra tp cc gi tr t nh x demNhom
List keys = new ArrayList(demNhom.keySet());
// Sp xp li theo cc nhm trng lng
Collections.sort(keys);
ListIterator keyIterator = keys.listIterator();
// Tm tn sut ca cc trng lng c nhp vo trong cc nhm
while(keyIterator.hasNext()) {
Integer nhom = (Integer) keyIterator.next();
Integer dem = (Integer) demNhom.get(nhom);
int demInt = dem.intValue();
// S dng hm fill() ca lp Array to ra xu gm
demInt cc du *
char[] bar = new char[demInt];
Arrays.fill(bar, '*');
System.out.println(nhom+"\t" + new String(bar));
}
}
}
Dch v chy chng trnh NhomTrongLuong vi cc tham s:
java NhomTrongLuong 75 72 93 12 34
s cho kt qu:
10
35
36
**
95
Nh vy, nhm 10 kg c 1, 35 kg c 1, 75 kg c 2 v 95 kg c 1.
4. SortedSet (tp c sp) v SortedMap (nh x c sp)
Cc cu trc tp hp (set) v nh x (map) c giao din c bit l SortedSet v
SortedMap nh trong hnh H6-5 ci t nhng cu trc c cc phn t c sp
theo th t ch nh.
Giao din SortedSet
SortedSet l giao din m rng ca Set cung cp cc hm x l cc tp c
sp.
SortedSet headSet(Object toElem);
Cho li tp c sp gm nhng phn t ng trc toElem.
SortedSet tailSet(Object fromElem);
Cho li tp c sp gm nhng phn t cui ng sau fromElem.
SortedSet subSet(Object fromElem, Object toElem);
Cho li tp c sp gm nhng phn t k t fromElem n
toElem.
Object first();Cho li phn t u tin (cc tiu) ca tp c sp.
Object last();Cho li phn t cui cng (cc i) ca tp c sp.
Comparator comparator()
Cho li th t so snh ca cu trc c sp, cho null nu cc phn t c sp
theo th t t nhin (tng dn)
Giao din SortedMap
SortedMap l giao din m rng ca Map cung cp cc hm x l cc nh x
c sp theo th t ca kho (key).
SortedMap headMap(Object toKey);Cho li nh x c sp gm nhng phn t
ng trc toKey.
SortedMap tailMap(Object fromKey);Cho li nh x c sp gm nhng phn
t cui ng sau fromKey.
SortedMap subMap(Object fromKey, Object toKey);Cho li nh x c sp gm
nhng phn t k t fromKey n toKey.
Object firstKey();Cho li phn t u tin (cc tiu) ca nh x c sp.
Object lastKey();Cho li phn t cui cng (cc i) ca nh x c sp.
TreeSet v TreeMap
Hai lp ny ci t hai giao din SortedSet v SortedMap tng ng. Chng c
bn loi ton t to lp nh sau:
TreeSet()
TreeMap()
To ra nhng tp hoc nh x mi v rng, c sp theo th t tng dn
ca cc phn t hoc ca kho.
TreeSet(Comparator c)
TreeMap(Comparator c)
To ra nhng tp hoc nh x mi c sp v xc nh th t so snh
theo c.
TreeSet(Collection c)
TreeMap(Map m)
To ra nhng tp hoc nh x mi c sp v c cc phn t ly t c
hoc t m tng ng.
TreeSet(SortedSet s)
TreeMap(SortedMap m)
To ra nhng tp hoc nh x mi c sp v c cc phn t ly t s hoc
t m tng ng.
Chng 3
X L NGOI L
// Cc lnh c kh nng gy li
}
catch ( TypeException1 ex){
// M c thc thi khi mt ngoi l TypeException1 c pht sinh trong khi
try
}
catch ( TypeException2 ex){
// M c thc thi khi mt ngoi l TypeException2 c pht sinh trong khi
try
}
...
catch ( TypeExceptionN ex){
// M c thc thi khi mt ngoi l TypeExceptionN c pht sinh trong khi
try
} finally{
// khi lnh nay lun c thc hin cho d ngoi l c xy ra trong khi try
hay khng.
}
}
catch(Exception2 ex2){
}
catch(Exceptionn exn){
}
finally{
//M lnh dn dp
}
Khi finally l tu chn, khng bt buc phi c. Khi ny c t sau khi
catch cui cng. Chng trnh s thc thi cu lnh u tin ca khi finally
ngay sau khi gp cu lnh return hay lnh break trong khi try.
Khi finally bo m lc no cng c thc thi, bt chp c ngoi l xy ra
hay khng.
try block
No Exception
Exception occurs
finally block
catch block
finally block
ngha
Throwable
Exception
RuntimeException
ArthmeticException
IllegalAccessException
IllegalArgumentException
i s khng hp l.
ArrayIndexOutOfBoundsExeption
NullPointerException
SecurityException
ClassNotFoundException
Khng th np lp yu cu.
NumberFormatException
cng.
AWTException
Ngoi l v AWT
IOException
FileNotFoundException
Khng th nh v tp tin
EOFException
Kt thc mt tp tin.
NoSuchMethodException
InterruptedException
Chng 4
LP TRNH A TUYN
s gia cc tin trnh. Mt tin trnh s hu nhiu tiu trnh, tuy nhin mt tiu
trnh ch c th thuc v mt tin trnh, cc tiu trnh bn trong cng mt tin trnh
chia s nhau khng gian a ch chung, iu ny c ngha l cc tiu trnh c th
chia s nhau cc bin ton cc ca tin trnh. Mt tiu trnh cng c th c cc
trng thi ging nh cc trng thi ca mt tin trnh.
3. H iu hnh n nhim, a nhim
HH n nhim l HH ch cho php 1 tin trnh chy ti mt thi im, v
d HH DOS l HH n nhim.
-
Chng 5
NHP XUT
open a stream
while more information
read information
close the stream
Ghi ra
open a stream
while more information
write information
close the stream
Lp lung
Java a ra nhiu lp lung, x l mi loi d liu, java chia lung
ra thanh 2 loi: lung byte ( byte stream) v lung k t (character stream),
lp InputStream v OutputStream l hai lp c s cho mi lung nhp xut
hng byte, v lp Reader/ Writer l hai lp c s cho vic c ghi hng k
t.
Lp RandomAccessFile k tha t lp Object v trin khai giao din,
InputStream v OutputStream, y l lp duy nht h tr c c ln ghi.
Lp nhp, xut hng k t
Reader v Writer l hai lp c s tru tng cho lung hng k t, hai lp
ny cung cp mt giao din chung cho tt c cc lp c/ ghi hng k t, mi
ln c/ ghi ra lung l c 2 byte tng ng vi mt k t unicode, Sau ay
l m hnh phn cp cc lp c/ ghi hng k t
kiu d liu c vo, v d lp Reader c cc phng thc sau gip cho vic c
mt k t hoc mt mng cc k t
int read()
int read(char cbuf[])
int read(char cbuf[], int offset, int length)
th trong lp InputStream cng c cc phng thc vi tn tng t cho vic c
mt byte hoc mt mng cc byte
int read()
int read(byte cbuf[])
int read(byte cbuf[], int offset, int length)
Cng tng t vy lp Writer v OutputStream cng c mt giao din tng t
nhau, v d lp Writer nh ngha cc phng thc ghi mt k t, mt mng cc
k t ra lung
int write(int c)
int write(char cbuf[])
int write(char cbuf[], int offset, int length)
th lp OutputStream cng c cc phng thc tng ng, ghi mt byte, mt
mng byte ra lung
int write(int c)
int write(byte cbuf[])
int write(byte cbuf[], int offset, int length)
X l tp tin
x l tp tin ngoi tr, ta s dng cc lung lin quan n tp tin nh
FileInputStream v FileOutputStream cho vic c ghi tp hng byte, FileReader
v FileWriter cho vic c ghi hng k t, thng thng mun s dng lung tp
tin ta s dng hm to ca cc lp tng ng lin kt lung vi mt tp tin c
th.
}
import java.io.*;
// Chng trnh copy s dng lung hng byte
public class CopyBytes {
public static void main(String[] args) throws IOException {
File inputFile = new File("farrago.txt");
File outputFile = new File("outagain.txt");
FileInputStream in = new FileInputStream(inputFile);
FileOutputStream out = new FileOutputStream(outputFile);
int c;
while ((c = in.read())! = -1)
out.write(c);
in.close();
out.close();
}
}
Lung d liu
c/ ghi cc kiu d liu nguyn thu, ta s dng lung DataInputStream v
DataOutputStream, lp DataInputStream trin khai giao din DataInput, cn lp
DataOutputStream trin khai giao din DataOuput
Cc phng thc sau c nh ngha trong giao din DataOutput
void write(byte[] b)
void write(int b)
void writeBoolean(boolean v)
void writeByte(int v)
void writeBytes(String s)
Ghi mt xu ra lung
void writeChar(int v)
Ghi mt k t ra lung
void writeChars(String s)
Ghi mt xu k t ra lung
void writeDouble(double v)
void writeFloat(float v)
void writeInt(int v)
void writeLong(long v)
void writeShort(int v)
c mt gi tr logic t lung
byte readByte()
c mt byte t lung
char readChar()
c mt k t t lung
double readDouble()
c mt s double t lung
float readFloat()
c mt s float t lung
void readFully(byte[] b)
int readInt()
c mt s nguyn
String readLine()
c mt xu k t cho n khi gp k t
xung dng v b qua k t xung dng
long readLong()
c mt s long
short readShort()
c mt s short
int readUnsignedByte()
in treadUnsignedShort()
String readUTF()
c mt xu k t Unicode
int skipBytes(int n)
in.close();
}
}
Lung in n
V cc lung xut ghi d liu ra di dng nh phn do vy bn khng th dng
lnh type, hoc cc chng trnh son tho asciii xem c, trong java c th
s dng lung in n xut d liu ra di dng asciii. Lp PrintStream v
PrintWriter s gip ta lm vic ny. Hai lp ny thc hin chc nng nh nhau,
u xut ra d liu dng asciii.
Mt s phng thc ca lp PrintStream:
boolean checkError()
void close()
ng lung
void flush()
void print(boolean b)
void print(char c)
ghi k t
void print(char[] s)
ghi mt mange k t
void print(double d)
void print(float f)
ghi mt s thc
void print(int i)
ghi mt s nguyn
void print(long l)
ghi mt s nguyn di
ghi mt i tng
void print(String s)
ghi mt xu
void println()
to ra mt dng trng
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println(int x)
void println(long x)
void println(Object x)
void println(String x)
len)
lung
void write(int b)
Hm to ca lp PrintStream:
PrintStream(OutputStream out) to ra mt lung mi
PrintStream(OutputStream out, boolean autoFlush) to ra mt lung mi vi chc
nng AutoFlush ( t dn)
Mt s phng thc ca lp PrintWriter
boolean checkError()
void close()
ng lung
void flush()
void print(boolean b)
void print(char c)
ghi k t
void print(char[] s)
ghi mt mange k t
void print(double d)
void print(float f)
ghi mt s thc
void print(int i)
ghi mt s nguyn
void print(long l)
ghi mt s nguyn di
ghi mt i tng
void print(String s)
ghi mt xu
void println()
to ra mt dng trng
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println(int x)
void println(long x)
void println(Object x)
void println(String x)
len)
lung
void write(int b)
void write(int c)
Ghi mt k t n
void write(String s)
Ghi mt xu
void write(String s, int off, int len) Ghi mt xu len k t tnh t v tr off
Cc hm to ca lp PrintWriter
- PrintWriter(OutputStream out) to ra mt PrintWriter khng c chc nng t dn
t mt i tng OutputStream.
- PrintWriter(OutputStream out, boolean autoFlush) to ra mt PrintWriter vi
chc nng t dn t mt i tng OutputStrea.
- PrintWriter(Writer out) to ra mt PrintWriter khng c chc nng t dn t mt
i tng Writer
RandomAccessFile rf;
rf = new RandomAccessFile(abc.txt, rw);
rf.writeBoolean(true);
rf.writeInt(67868);
rf.writeChars(J);
rf.writeDouble(678.68);
//S dng phng thc seek() di chuyn con tr n byte th hai
rf.seek(1);
System.out.println(rf.readInt());
System.out.println(rf.readChar());
System.out.println(rf.readDouble());
rf.seek(0);
System.out.println(rf.readBoolean));
rf.close();
}
}
Kt qu xut ra ca chng trnh:
Lp File
Lp File cung cp giao din chung x l h thng tp c lp vi mi
trng ca cc my tnh. Mt ng dng c th s dng cc chc nng chnh ca
File x l tp hoc cc th mc (directory) trong h thng tp. x l cc ni
dung ca cc tp th s dng cc lp FileInputStream, FileOutputStream v
RandomAccessFile.
Lp File nh ngha cc thuc tnh ph thuc vo mi trng (platform)
c s dng x l tp v tn gi cc ng dn trong cc th mc mt cch
c lp vi mi trng.
public static final char separatorChar
public static final String separator
nh ngha cc k hiu hoc cc xu s dng ngn cch cc thnh phn
trong tn ca ng dn. K hiu / ngn cch cho Unix, \ c s dng
ngn cch cc mc ca ng dn trong Window.
V d: C:\book\Java l tn ng dn trong Window.
public static final char pathSeparatorChar
public static final String pathSeparator
nh ngha cc k hiu hoc cc xu s dng ngn cch cc tp hoc tn
th mc trong danh sch ca cc ng dn. K hiu ngn cch : cho Unix,
; c s dng phn cch cc ng dn trong Window.
}
}
Dch xong c th chy trong mi trng DOS:
java DirectoryLister c:\users\lan
Tt c cc tp trong danh mc c:\users\lan s c hin ln.
Chng 6
LP TRNH HO
JMenu.
Tt c nhng lp khc c lit k trong hnh di y
Ch : ng pha trn cc thnh phn giao din swing v awt trong cng mt ng
dng. Chng hn nh ng nn t mt JButton vo mt Panel v ng nn t
Button vo JPanel. Vic lm ny c th gy li.
Mt lp c k tha t lp JComponent c th hin trong hnh sau:
3. Lp Container
Lp Container l lp con ca lp tru tng Component. Cc lp cha (lp
con ca Container) cung cp tt c cc chc nng xy dng cc giao din
ha ng dng, trong c phng thc add() c np chng dng b sung
mt thnh phn vo vt cha v phng thc remove() cng c np chng
g b mt thnh phn ra khi vt cha.
4. To ra Frame
Lp JFrame l lp con ca lp Frame (Frame l lp con ca lp Window)
myWindow.getContentPane().add(new JButton(OK));// a vo
mt nt (JButton) c tn OK vo frame
Tn lp
M t
FlowLayout
Xp cc thnh phn giao din trc tin theo hng t tri qua phi,
sau theo ct t trn xung di. Cch sp xp ny l mc nh
i vi Panel, JPanel ,Applet v JApplet.
GridLayout
BorderLayout
1. Lp FlowLayout
Lp FlowLayout cung cp cc hm to lp sp hng cc thnh phn giao din:
FlowLayout()
FlowLayout(int aligment)
FlowLayout(int aligment, int horizongap, int verticalgap)
public static final int LEFT
public static final int CENTER
public static final int RIGHT
i s aligment xc nh cch sp theo hng: t tri, phi hay trung tm,
horizongap v verticalgap l khong cch tnh theo pixel gia cc hng
cc ct. Trng hp mc nh th khong cch gia cc hng, ct l 5 pixel.
2. Lp GridLayout
Lp GridLayout cung cp cc hm to lp sp hng cc thnh phn giao din:
GridLayout()
GridLayout(int rows, int columns)
GridLayout(int rows, int columns, int hoiongap, int verticalgap)
3.Lp BorderLayout
Lp BorderLayout cho php t mt thnh phn giao din vo mt trong bn
hng: bc (NORTH), nam (SOUTH), ng (EAST), ty (WEST) v gia
(CENTER).
BorderLayout()
BorderLayout(int horizongap, int verticalgap)
To ra mt layout mc nh hoc c khong cch gia cc thnh phn (tnh
bng pixel) l horizongap theo hng v verticalgap theo ct.
Component add(Component comp)
void add(Component comp, Object constraint)
public static final String NORTH
public static final String SOUTH
public static final String EAST
public static final String WEST
public static final String CENTER
Trng hp mc nh l CENTER, ngc li, c th ch nh hng t
cc thnh phn comp vo phn t cha theo constraint l mt trong cc
hng trn.
e. ComponentEvent
S kin ny xut hin khi mt thnh phn b n i/hin ra hoc thay thay i li
kch thc. Lp ComponentEvent c phng thc:
Component getComponent()
Cho li i tng tham chiu kiu Component.
f. ContainerEvent
S kin ny xut hin khi mt thnh phn c b sung hay b loi b khi
vt cha (Container).
g. FocusEvent
S kin loi ny xut hin khi mt thnh phn nhn hoc mt focus.
h. KeyEvent
Lp KeyEvent l lp con ca lp tru tng InputEvent c s dng
x l cc s kin lin quan n cc phm ca bn phm. Lp ny c cc phng
thc:
int getKeyCode()
- i vi cc s kin KEY_PRESSED hoc KEY_RELEASED, hm ny c s
dng nhn li gi tr nguyn tng ng vi m ca phm trn bn phm.
char getKeyChar()
- i vi cc s kin KEY_PRESSED, hm ny c s dng nhn li gi tr
nguyn, m Unicode tng ng vi k t ca bn phm.
i. MouseEvent
Lp MouseEvent l lp con ca lp tru tng InputEvent c s dng x
l cc tn hiu ca chut. Lp ny c cc phng thc:
int getX()
int getY()
Point getPoint()
Kiu s kin
Ngun gy ra s kin
Listener
din
lng
nghe tng ng
AcitionEvent
JButton
JList
TexField
AdjustmentEvent
ItemEvent
JScrollbar
JCheckbox
addComponentlistener
AcitionListener
removeActiontListener
addAdjustmentListener
AdjustmentListe
removeAdjustmentListener
ner
addItemListener
ItemListener
JCheckboxMenuItem
removeItemListener
JRadioButton
JList
JCompoBox
TextEvent
JTextArea
addTexListener
JTexField
removeTextListener
TextListener
JTextPane
JEditorPane
ComponentEvent
Component
addComponentListener
removeComponentListener
ContainerEvent
FocusEvent
Container
Component
ComponentListe
ner
addContainerListener
ContainerListen
removeContainerListener
er
addFocusListener
FocusListener
removeFocusListener
KeyEvent
Component
addkeyListener
KeyListener
removeKeyListener
MouseEvent
Component
addMouseListener
MouseMotionLi
remoMouseListener
stener
addMouseMotionListener
remoMouseMotionListener
WindowEvent
Window
addWindowListener
removeWindowListener
WindowListener
3. Mt s lp iu hp
Giao din Listener lng nghe
Lp iu hp tng ng
AcitionListener
Khng c lp iu hp tng ng
AdjustmentListener
AdjustmentAdapter
ItemListener
Khng c lp iu hp tng ng
TextListener
Khng c lp iu hp tng ng
ComponentListener
ComponentAdapter
ContainerListener
ContainerAdapter
FocusListener
FocusAdapter
KeyListener
KeyAdapter
MouseMotionListener
MouseMotionAdapter
WindowListener
WindowAdapter