You are on page 1of 239

BI GING LP TRNH JAVA

GV : HUNH CNG PHP


KHOA : CNTT-HBK
Chng 1
Gii thiu ngn ng
lp trnh Java
Gii thiu
S pht trin ca Java
Hng ti ngi dng
Ging vi C / C++
Cc c trng ca Java
n gin
Hng i tng
c lp phn cng
Mnh
Bo mt
Phn tn
a lung
ng
Cc chng trnh dch
truyn thng
Chng trnh dch Java
Cc loi chng trnh Java
Applets
ng dng c lp (console Application)
ng dng giao din (GUI Application)
Servlet
ng dng c s d liu
My o Java
L mt phn mm da trn c s my tnh
o
L tp hp cc lnh logic xc nh hot
ng ca my tnh
c xem nh l mt h iu hnh thu nh
N thit lp lp tru tng cho:
Phn cng bn di
H iu hnh
M bin dch
Qu trnh dch chng trnh
Java
Trnh bin dch chuyn m ngun thnh tp
cc lnh khng ph thuc vo phn cng c
th
Trnh thng dch trn mi my chuyn tp
lnh ny thnh chng trnh thc thi
My o to ra mt mi trng thc thi cc
lnh bng cch:
Np cc file .class
Qun l b nh
Dn rc
Trnh dch Java
Java Development Kit
Java 1.0 - S dng ln u vo nm
1995
Java 1.1 a ra nm 1997
Java 2 Phin bn mi nht
B cng c JDK
Trnh bin dch, 'javac'
javac [options] sourcecodename.java
Trnh thng dch, 'java'
java [options] classname
Trnh dch ngc, 'javap'
javap [options] classname
Cng c sinh ti liu, 'javadoc'
javadoc [options] sourcecodename.java
Chng trnh tm li - Debug, 'jdb
jdb [options] sourcecodename.java
OR
jdb -host -password [options]
sourcecodename.java

Chng trnh xem Applet ,
'appletviewer
appletviewer [options]
sourcecodename.java / url
Cc gi chun ca Java
java.lang
java.applet
java.awt
java.io
java.util
java.net
java.awt.event
java.rmi
java.security
java.sql
Cc c trng mI ca
Java2
Swing
Ko v th
Java 2D API
m thanh
RMI
Chng 2
Cc phn t c bn ngn ng Java
Cu trc mt
chng trnh Java
Xc lp thng tin mi trng
Khai bo lp i tng (Class)
Cc thnh phn (Tokens):
nh danh
T kha / t d phng
K t phn cch
Nguyn dng (Literals)
Ton t
V d mt chng trnh Java
mu
// This is a simple program called Ex1.java

class Ex1
{
public static void main(String args[])
{
System.out.println(My first program in Java);
}
}
Bin dch chng trnh java
..\jdk\bin>javac Ex1.java
..\jdk\bin>java Ex1

Kt qu:
My first program in Java
Truyn i s trong dng lnh
class Pass
{
public static void main(String parameters[])
{
System.out.println("This is what the main method
received");
System.out.println(parameters[0]);
System.out.println(parameters[1]);
System.out.println(parameters[2]);
}
}
Truyn i s trong dng lnh
(Tip theo)
Cc phn t c bn cangn ng
Java
Lp v phng thc (Classes &
Methods)
Kiu d liu
Bin s
Ton t
Cu trc iu khin
Lp trong Java
C php khai bo lp (Class)
class Classname
{
var_datatype variablename;
:

met_datatype methodname(parameter_list)
:
}

Lp mu
Cc lp lng nhau (Nested
Classes)
Vic nh ngha mt lp bn trong mt lp
khc c gi l xp lng (Nesting)
Cc kiu xp lng:
Tnh (Static)
ng (Non-static)

Kiu d liu
Kiu d liu c s (Primitive Data Types)
Kiu d liu tham chiu (Reference data types)
Kiu d liu c s
byte
char
boolean
short
int
long
float
double
Kiu d liu tham chiu
Mng (Array)
Lp (Class)
Interface
p kiu (Type Casting)
Kiu d liu ny c chuyn i sang
mt kiu d liu khc
V d
float c = 34.89675f;
int b = (int)c + 10;
Bin s
Khai bo bin s gm 3 thnh phn:
Kiu d liu ca bin s
Tn bin
Gi tr ban u ca bin (khng bt buc)

C php
datatype identifier [=value][,
identifier[=value]...];
Nhng t kha ca Java
Khai bo mng
Ba cch khai bo mng:
datatype identifier [ ];
datatype identifier [ ] = new
datatype[size];
datatype identifier [ ]=
{value1,value2,.valueN};
Phng thc
(Methods in Classes)
Phng thc c nh ngha nh l
mt hnh ng hoc mt tc v tht s
ca i tng
C php
access_specifier modifier datatype
method_name(parameter_list)
{
//body of method
}
V d v s dng phng thc
class Temp {
static int x = 10; // variable
public static void show( ) { // method
System.out.println(x);
}
public static void main(String args[ ]) {
Temp t = new Temp( ); // object 1
t.show( ); // method call
Temp t1 = new Temp( ); // object 2
t1.x = 20;
t1.show( );
}
}
Access specifiers
public
private
protected
Method Modifiers
static
abstract
final
native
synchronized
volatile
Nhng phng thc c np chng :
(Methods Overloading)
Nhng phng thc c np chng :
Cng trong mt lp
C cng tn
Khc nhau v danh sch tham s

Nhng phng thc c np chng l
mt hnh thc a hnh (polymorphism)
trong qu trnh bin dch (compile time)
Ghi phng thc
(Methods Overriding)
Nhng phng thc c ghi :
C mt trong lp cha (superclass) cng
nh lp k tha (subclass)
c nh ngha li trong lp k tha
(subclass)
Nhng phng thc c ghi l mt
hnh thc a hnh (polymorphism) trong
qu trnh thc thi (Runtime)
Phng thc khi to
(Class Constructors)
L mt phng thc c bit dng khi
to gi tr cho cc bin thnh vin ca lp
i tng
C cng tn vi tn lp v khng c gi tr
tr v
c gi khi i tng c to ra
C 2 loi:
Tng minh (Explicit constructors)
Ngm nh (Implicit constructors)
Phng thc khi to ca lp dn xut
(Derived class constructors)
C cng tn vi lp dn xut (subclass)
Mnh gi constructor ca lp cha
(superclass) phi l mnh u tin
trong constructor ca lp dn xut
(subclass)
Cc ton t
Cc loi ton t:
Ton t s hc (Arithmetic operators)
Ton t dng Bit (Bitwise operators)
Ton t so snh (Relational operators)
Ton t logic (Logical operators)
Ton t iu kin (Conditional operator)
Ton t gn (Assignment operator)
Ton t s hc
Arithmetic Operators
+ Addition (Php cng)
- Subtraction (Php tr)
* Multiplication (Php nhn)
/ Division (Php chia)
% Modulus (Ly s d)
++ Increment (Tng dn)
-- Decrement (Gim dn)
+= Php cng v gn
-= Php tr v gn
*= Php nhn v gn
/= Php chia v gn
%= Php ly s d v gn
Ton t Bit
(Bitwise Operators)
~ Ph nh (NOT)
& V (AND)
| Hoc (OR)
^ Exclusive OR
>> Dch sang phi (Shift right)
<< Dch sang tri (Shift left)
Ton t so snh
(Relational Operators)
== So snh bng
!= So snh khc
< Nh hn
> Ln hn
<= Nh hn hoc bng
>= Ln hn hoc bng
Ton t Logic
(Logical Operators )
&& Logical AND
|| Logical OR
! Logical unary NOT
Ton t iu kin
(Conditional Operator)
C php
Biu thc 1 ? Biu thc 2 : Biu thc 3;

Biu thc 1
iu kin kiu Boolean tr v gi tr True
hoc False
Biu thc 2
Tr v gi tr nu kt qu ca mnh 1 l
True
Biu thc 3
Tr v gi tr nu kt qu ca mnh 1 l
False
Ton t gn
(Assignment Operator)
= Assignment (Php gn)
Gi tr c th c gn cho nhiu bin s
V d
a = b = c = d = 90;
Th t u tin ca cc ton t
Th t ca cc ton t c th c thay i bng
cch s dng cc du ngoc n trong mnh
Th t Ton t
1. trong ngoc tnh trc
2. Cc ton t n nh +,-,++,--
3. Cc ton t s hc v cc ton t dch
nh *,/,+,-,<<,>>
4. Cc ton t quan h nh >,<,>=,<=,= =,!=
5. Cc ton t logic v Bit nh &&,II,&,I,^
5. Cc ton t gn nh =,*=,/=,+=,-=
Cc k t nh dng xut d liu
(Escape Sequences)
Escape
Sequence
M t
\n Xung dng mi
\r Chuyn con tr n u dng hin hnh
\t Chuyn con tr n v tr dng Tab k tip
(k t Tab)
\\ In du \
\ In du nhy n ()
\ In du nhy kp ()
Cc lnh iu khin
iu khin r nhnh:
Mnh if-else
Mnh switch-case

Vng lp (Loops):
Vng lp while
Vng lp do-while
Vng lp for
Lnh if-else
C php
if (condition)
{
action1 statements;
}
else
{
action2 statements;
}
Lnh switch-case
C php
switch (expression)
{
case 'value1': action1 statement(s);
break;
case 'value2': action2 statement(s);
break;
:
:
case 'valueN': actionN statement(s);
break;
default: default_action statement(s);
}
Lnh lp while
C php
while(condition)
{
action statements;
:
:
}
Lnh lp do-while
C php
do
{
action statements;
:
:

} while(condition);
Vng lp for
C php
for(initialization statements; condition;
increment statements)
{
action statements;
:
:
}
Chng 3
Gi & Interface
(Packages & Interfaces)
Gii thiu
Nhng thnh phn c bn ca 1 chng
trnh Java:
Gi (Packages)
Giao din (Interfaces)
Nhng phn ca mt chng trnh Java:
Lnh khai bo gi(package )
Lnh ch nh gi c dng (Lnh import)
Khai bo lp public (mt file java ch cha 1 lp
public class)
Cc lp khc (classes private to the package)

Tp tin ngun Java c th cha tt c hoc
mt vi trong s cc phn trn.
Interfaces
Chng trnh Java ch c th k tha t
1 lp duy nht trong cng mt thi
im, nhng c th dn xut cng lc
nhiu Interfaces
Khng c php c nhng phng
thc c th (concrete methods)
interface cn phi c hin thc
(implements).
Cc bc to interface
nh ngha Interface
Bin dch Interface
Hin thc Interface

Tnh cht ca interface:
Tt c phng thc trong interface phi l
public.
Cc phng thc phi c nh ngha
trong lp dn xut giao din .
S dng Interface
Khng th dn xut t lp khc, nhng c
th dn xut t nhng interface khc
Nu mt lp dn xut t mt interface m
interface dn xut t cc interface khc
th lp phi nh ngha tt c cc phng
thc c trong cc interface
Khi nh ngha mt interface mi th mt kiu
d liu tham chiu cng c to ra.
Gi (Packages)
Tng t nhth mc lu tr nhng
lp, interface v cc gi con khc.
l nhng thnh vin ca gi
Nhng u im khi dng gi (Package):
Cho php t chc cc lp vo nhng n
v nh hn
Gip trnh c tnh trng trng lp khi
t tn.
Cho php bo v cc lp i tng
Tn gi (Package) c th c dng
nhn dng chc nng ca cc lp.
Nhng lu khi to gi:
M ngun phi bt u bng lnh package
M ngun phi nm trong cng th mc mang tn
ca gi
Tn gi nn bt u bng k t thng (lower case)
phn bit gia lp i tng v gi
Nhng lnh khc phi vit pha di dng khai bo
gi l mnh import, k n l cc mnh nh
ngha lp i tng
Nhng lp i tng trong gi cn phi c bin
dch
chng trnh Java c th s dng nhng gi
ny, ta phi import gi vo trong m ngun
Import gi (Importing packages):
Xc nh tp tin cn c import trong gi
Hoc c th import ton b gi
Cc bc to ra gi
(Package)
Khai bo gi
Import nhng gi chun cn thit
Khai bo v nh ngha cc lp i
tng c trong gi
Lu cc nh ngha trn thnh tp tin
.java, v bin dch nhng lp i tng
c nh ngha trong gi.
S dng nhng gi do ngi dng nh
ngha (user-defined packages)
M ngun ca nhng chng trnh ny phi
cng th mc ca gi do ngi dng nh
ngha.
nhng chng trnh Java khc s dng
nhng gi ny, import gi vo trong m ngun
Import nhng lp i tng cn dng
Import ton b gi
To tham chiu n nhng thnh vin ca gi
Xc lp CLASSPATH
L danh sch cc th mc, gip cho
vic tm kim cc tp tin lp i tng
tng ng
Nn xc lp CLASSPATH trong lc
thc thi (runtime), v nh vy n s xc
lp ng dn cho qu trnh thc thi
hin hnh
Gi v iu khin truy xut
(Packages & Access Control)
Gi java.lang
Mc nh th bt c chng trnh Java
no cng import gi java.lang
Nhng lp Wrapper (bao bc) cho cc
kiu d liu nguyn thy:
Lp String
Phng thc khi to (Constructor):
String str1 = new String();
String str2 = new String(Hello World);
char ch[ ] = {A,B,C,D,E};
String str3 = new String(ch);
String str4 = new String(ch,0,2);
String Pool
String Pool i din cho tt c cc k
t c to ra trong chng trnh
Khi nim String Pool

Nhng phng thc ca lp String
charAt( )
startsWith()
endsWith( )
copyValueOf( )
toCharArray( )
indexOf( )
toUpperCase( )
toLowerCase( )
trim( )
equals( )
Lp StringBuffer
Cung cp nhng phng thc khc nhau
thao tc trn i tng string (chui k t)
Nhng i tng ca lp ny kh linh hot
Cung cp nhng phng thc khi to
(constructor) c np chng
(overloaded)
Nhng phng thc ca lp StringBuffer:
append( )
insert( )
charAt( )
setCharAt( )
setLength( )
getChars( )
reverse( )
Lp java.lang.Math
abs()
ceil()
floor()
max()
min()
round()

random()
sqrt()
sin()
cos()
tan()
Lp Runtime
ng gi (Encapsulates) mi trng thc thi
Dng qun l b nh, v thi hnh nhng
tin trnh cng thm
Phng thc:
exit(int)
freeMemory( )
getRuntime( )
gc( )
totalMemory( )
exec(String)
Lp System
Cung cp nhng h tng chun nh nhp
(Input), xut (Output) v cc lung li(Error
Streams)
Cung cp kh nng truy xut n nhng
thuc tnh ca h thng thc thi Java, v
nhng thuc tnh mi trng nh phin bn,
ng dn, nh cung cp
Phng thc:
exit(int)
gc()
getProperties()
setProperties()
currentTimeMillis()
arraCopy(Object, int, Object, int, int)
Lp Class
Th hin (Instance) ca lp ny che
giu tnh trng thc thi ca i tng
trong mt ng dng Java
i tng hoc th hin ca lp ny c
th to ra bng 1 trong 3 cch sau:
S dng phng thc getClass( ) ca i tng
S dng phng thc tnh forName( ) ca lp
to ra mt th hin ca lp trong lc t tn
cho lp
S dng i tng ClassLoader np mt lp
mi
Lp Object
L lp cha (superclass) ca tt c cc lp
Phng thc:
equals(Object)
finalize()
notify()
notifyAll()
toString()
wait()

Gi java.util
Cung cp phn ln nhng lp Java
hu dng v thng xuyn cn n
trong hu ht cc ng dng
Gii thiu nhng lp tru tng sau:
Hashtable
Random
Vector
StringTokenizer
Lp Hashtable
M rng lp tru tng Dictionary
Dng ni kt nhng kha vo nhng
gi tr c th
Phng thc khi to Hashtable:
Hashtable(int)
Hashtable(int, float)
Hashtable( )

Nhng phng thc ca lp
Hashtable
clear()
done()
contains(Object)
containsKey(Obj
ect)
elements()
get(Object key)
isEmpty()
keys()
put(Object, Object)
rehash()
remove(Object
key)
size()
toString()
Lp Random
To ra nhng s ngu nhin theo thut ton
pseudo
Nhng phng thc nhn gi tr ngu nhin:
nextDouble( )
nextFloat( )
nextGaussian( )
nextInt( )
nextLong( )
Phng thc khi to (Constructors):
random()
random(long)
Nhng phng thc ca lp
Random
nextDouble()
nextFloat()
nextGaussian()
nextInt()
nextLong()
setSeed(long)
Lp Vector
Cung cp kh nng co gin cho mng khi
thm phn t vo mng
Lu tr nhng thnh phn ca kiu Object
Mt Vector ring r c th lu tr nhng
phn t khc nhau, l nhng instance ca
nhng lp khc nhau
Phng thc khi to (Constructors):
Vector(int)
Vector(int, int)
Vector()
Nhng phng thc ca lp
Vector
addElement(Object)
capacity( )
clone( )
contains(Object)
copyInto(Object [ ])
elementAt(int)
elements( )
ensureCapacity(int)
firstElement( )
indexOf(Object)
indexOf(Object, int)
insertElementAt(Objec
t, int)
isEmpty( )
lastElement( )
lastIndexOf(Object)
lastIndexOf(Object,
int)
removeAllElements(
)
removeElement(Obj
ect)
removeElementAt(in
t)
setElementAt(Object
, int)
setSize(int)
size( )
toString( )
trimToSize( )
Lp StringTokenizer
C th c dng tch mt chui thnh
nhng thnh phn cu thnh ca n
(constituent tokens)
K t phn cch c th c ch nh khi
mt i tng StringTokenizer c khi
to
Phng thc khi to (Constructors):
StringTokenizer(String)
StringTokenizer(String, String)
StringTokenizer(String, String, Boolean)
Lp StringTokenizer s dng giao din lit
k (enumeration interface)
Nhng phng thc ca lp
StringTokenizer
countTokens( )
hasMoreElements( )
hasMoreTokens( )
nextElement( )
nextToken( )
nextToken(String)
Chng 4
X l bit l
Gii thiu v bit l
L mt kiu li c bit
N xy ra trong thi gian thc thi on lnh
Thng thng cc iu kin thc thi chng
trnh gy ra bit l
Nu cc iu kin ny khng c quan
tm, th vic thc thi c th kt thc t ngt
Mc ch ca vic x l bit l
Gim thiu vic kt thc bt thng ca h
thng v ca chng trnh.
V d, thao tc xut/nhp trong mt tp tin,
nu vic chuyn i kiu d liu khng thc
hin ng, mt bit l s xy ra v chng
trnh b hy m khng ng tp tin. Lc
tp tin s b h hi v cc ngun ti nguyn
c cp pht cho tp tin khng c thu
hi li cho h thng.
X l bit l
Khi mt bit l xy ra, i tng tng ng vi bit
l s c to ra.
i tng ny sau c truyn ti phng thc
ni m bit l xy ra.
i tng ny chc cc thng tin chi tit v bit l.
Thng tin ny c th nhn c v x l.
Lp throwable m Java cung cp l lp trn nht
ca lp bit l.

M hnh x l bit l
M hnh c bit n l m hnh catch and
throw
Khi mt li xy ra, bit l s uc chn v
c vo mt khi.
T kha x l bit l:
try
catch
throw
throws
finally
Cu trc ca m hnh x l bit l
C php
try { . }
catch(Exception e1) { . }
catch(Exception e2) { . }
catch(Exception eN) { . }
finally { . }
M hnh Catch and Throw nng cao
Ngi lp trnh ch quan tm ti cc li
khi cn thit.
Mt thng bo li c th c cung cp
trong exception-handler.

Khi try v catch
c s dng thc hin trong m hnh
catch and throw ca x l bit l.
Khi lnh try gm tp hp cc lnh thc thi
Mt phng thc m c th bt bit l,
cng bao gm khi lnh try.
Mt hoc nhiu khi lnh catch c th tip
theo sau mt khi lnh try
Khi lnh catch ny bt bit l trong khi
lnh try.

Khi lnh try v catch Blocks
(tt)
bt bt k loi bit l no, ta phi ch ra
kiu bit l l Exception
catch(Exception e)
Khi bit l b bt khng bit thuc kiu no,
chng ta c th s dng lp Exception
bt bit l .
Li s c truyn thng qua khi lnh try
catch cho ti khi chng bt gp mt catch
tham chiu ti n, hoc chng trnh s b
kt thc

Khi lnh cha nhiu Catch
Cc khi cha nhiu catch() x l cc
kiu bit l khc nhau mt cch c lp.
V d
try
{ doFileProcessing();
displayResults(); }
catch(LookupException e)
{ handleLookupException(e); }
catch(Exception e)
{
System.err.println(Error:+e.printStackTrace
()); }
Khi lnh cha nhiu Catch
(tt)
Khi s dng cc try lng nhau, khi try
bn trong c thi hnh u tin
Bt k bit l no b chn trong khi lnh
try s b bt gi trong khi lnh catch tip
ngay sau.
Nu khi lnh catch thch hp khng c
tm thy, th cc khi catch ca khi try
bn ngoi s c xem xt
Ngc li, Java Runtime Environment s x
l bit l.

Khi finally
Thc hin tt c cc vic thu dn khi bit l
xy ra
C th s dng kt hp vi khi try
Cha cc cu lnh thu hi ti nguyn v
cho h thng hay lnh in ra cc cu thng
bo:
ng tp tin
ng li b kt qu (c s dng trong
chng trnh c s d liu)
ng li cc kt ni c to trong c s d
liu.
Khi finally (tt)
V d
try
{
doSomethingThatMightThrowAnException( );
}
finally
{
cleanup( );
}
Khi finally (tt)
L ty chn khng bt buc
c t sau khi catch
Khi finally bo m lc no cng c
thc hin bt chp bit l c xy ra hay
khng.

Cc bit l c nh ngha
vi lnh throw v throws
Cc bit l th c chn vi s tr gip ca t
kha throw
T kha throw ch ra mt bit l va xy ra.
Ton hng ca throw l mt i tng ca mt
lp, m lp ny c dn xut t lp
Throwable
V d ca lnh throw
try{
if (flag < 0)
{
throw new MyException( ) ; // user-
defined
}
}
Cc bit l c nh ngha vi
lnh throw v throws(tt)
Mt phng thc n c th chn nhiu hn
mt bit l
V d t kha throw x l nhiu bit l
public class Example {
public void exceptionExample( ) throws
ExException, LookupException {
try
{ // statements }
catch(ExException exmp)
{ . }
catch(LookupException lkpex)
{ . } } }
Cc bit l c nh ngha vi
lnh throw v throws(tt)
Lp Exception thc thi giao din
Throwable v cung cp cc tnh nng
hu dng phn phi cho cc bit l.
Mt lp con ca lp Exception l mt
bit l mi c th bt gi c lp cc
loi Throwable khc.
Danh sch cc bit l
RuntimeException
ArithmeticException
IllegalAccessException
IllegalArgumentException
ArrayIndexOutOfBoundsException
NullPointerException
SecurityException
ClassNotFoundException
Danh sch cc bit l (tt)
NumberFormatException
AWTException
IOException
FileNotFoundException
EOFException
NoSuchMethodException
InterruptedException
Chng V
LP TRNH GIAO DIN VI AWT
AWT vit tt ca Abstract Windowing
Toolkit
AWT l tp hp cc lp Java cho php
chng ta to mt GUI
Cung cp cc mc khc nhau to hot
ng v hiu ng GUI nh
Containers
Components
Layout managers
Graphics v drawing capabilities
Fonts
Events
GII THIU V AWT
AWT bao gm cc lp, interfaces v cc gi
khc
Components
Tt c cc thnh phn cu to nn chng
trnh GUI c gi l component.
V d
Containers,
textfields, labels, checkboxes, textareas
scrollbars, scrollpanes, dialog
Containers
L thnh phn m c th cha cc
thnh phn khc. c th v v t mu.
C cc frames, panes,latches, hooks
Java.awt cha mt lp c tn l
Container. Lp ny dn xut trc tip
v khng trc tip theo 2 cch l:
Frames
Panels
Frames
L cc ca s
L lp con ca Windows
c hin th trong mt ca s v c ng
vin
Panels
L cc vng cha trong mt ca s.
Hin th trong mt ca s m trnh duyt
hoc appletviewer cung cp v khng c
ng vin.
c s dng nhm mt s cc thnh
phn
Mt panel khng c sn v th chng ta cn
phi thm n vo frame.
Hm dng
Panel()
Dialog
L mt lp con ca lp Window
i tng dialog c cu trc nh sau :
Frame myframe = new Frame(My frame);
String title = Title;
boolean modal = true;
Dialog dlg = new Dialog( myframe, title, modal);
Cc Components khc
V d
textfields, labels, checkboxes, textareas
scrollbars, scrollpanes, dialog
Label
c dng hin th chui (String)
Cc hm dng:
Label( )
Label(String labeltext)
Label(String labeltext, int alignment)
Cc phng thc:
setFont(Font f)
setText(String s)
getText( )
TextField
L iu khin text cho php hin th text hoc
cho user nhp d liu vo.
Cc hm dng:
TextField( )
TextField(int columns)
TextField(String s)
TextField(String s, int columns)

Cc phng thc:
setEchoChar(char)
setTest(String s)
getText( )
setEditable(boolean)
isEditable( )
TextArea
c dng khi text c ni dung t hai
dng tr ln
L iu khin text c th son tho
c vi nhiu dng
Cc bc to TextArea:
To mt phn t (element)
Ch ra s dng hay s ct (ty chn)
Ch ra v tr ca iu khin trn mn hnh
TextArea (tt)
Cc hm dng:
TextArea( )
TextArea(int rows, int cols )
TextArea(String text)
TextArea(String text, int rows, int cols)
Cc phng thc ca
TextArea
setText(String)
getText( )
setEditable(boolean)
isEditable( )
insertText(String, int)
replaceText(String, int, int)
Button
Cc nt Push hay Command l cch d nht
ly cc s kin ca user
Cc bc to button:
To mt phn t button, nn to cho n mt
caption ch ra mc ch ca n
Ch ra v tr t button trn mn hnh
HIn th ra trn mn hnh
Cc hm dng:
Button( )
Button(String text)
Checkboxes and
RadioButtons
Checkboxes c dng khi cho php user nhiu cn
chn la
Radiobuttons c dng user ch ra mt la chn
duy nht
Cc bc to checkbox hoc radiobutton:
To mt phn t (element)
Khi to gi tr ban u (c gi tr selected hay unselected)
Ch ra v tr trn mn hnh
Hin th ra mn hnh
Cc hm dng to checkbox:
Checkbox( )
Checkbox(String text)
to radiobutton, ta phi to i tng
CheckBoxGroup trc khi to button
Choice Lists
L p Choice cho php ta to danh sch c nhiu
chn la
Khi list c to ln u tin, n c khi to l
empty
Cc bc to danh sch chn la:
To mt phn t
Thm cc mc (c kiu Strings) vo danh sch ,
tng mc mt
Ch ra v tr trn mn hnh
Hin th ra mn hnh
V d
Choice colors=new Choice( );
colors.addItem(Red);
colors.addItem(Green);
Trnh qun l b tr
Layout Manager
Cc loi layout khc nhau:
Flow Layout
Border Layout
Card Layout
Grid Layout
GridBag Layout
Trnh qun l layout c thit lp bng
cch gi phng thc setLayout( )
FlowLayout
L trnh qun l layout mc nh cho cc
applet v cc panel
Vi FlowLayout cc thnh phn s c
xp xp t gc tri trn n gc phi di
ca mn hnh
Cc constructor:
FlowLayout mylayout = new FlowLayout();
FlowLayout exLayout = new
flowLayout(FlowLayout.RIGHT);
BorderLayout
L trnh qun l layout mc nh cho
Window, Frame v Dialog
Trnh qun l ny c th xp xp n 5 thnh
phn trong container
Cc thnh phn c th c t vo 5
hng NORTH, EAST, SOUTH, WEST v
CENTER ca container
V d: thm mt thnh phn vo vng
North ca container
Button b1= new Button(North Button);
setLayout(new BorderLayout( ));
add(b1, BorderLayout.NORTH);
CardLayout
C th lu tr mt danh sch cc kiu
layout khc nhau
Mi layout c xem nh mt th (card)
Th thng l i tng Panel
Mt thnh phn c lp nh button s iu
khin cc th c t pha trn nht
Cc bc to CardLayout:
B tr layout ca panel chnh l CardLayout
Ln lt thm cc panel khc vo panel chnh
GridLayout
H tr vic chia container thnh mt li
Cc thnh phn c b tr trong cc
dng v ct
Mt li nn cha t nht mt thnh
phn
Kiu layout ny c s dng khi tt c
cc thnh phn c cng kch thc
Hm constructor
GridLayout gl = new GridLayout(no. of rows,
no. of columns);
GridBagLayout
B tr cc thnh phn mt cch chnh
xc
Cc thnh phn khng cn c cng kch
thc
Cc thnh phn c xp xp trong mt
li cha cc dng v cc ct
Th t t cc thnh phn khng tun
theo hng t tri-sang-phi v trn-
xung-di
Hm constructor
GridBagLayout gb = new GridBagLayout( );


GridBagLayout
s dng layout ny, bn cn phi
bit thng tin v kch c v cch b tr
ca cc thnh phn
Lp GridBagLayoutConstraints lu
tr tt c cc thng tin m lp
GridLayout yu cu: V tr v kch
thuc mi thnh phn
X l cc s kin
Cc s kin (Events) c x l bng cc
cng c sau:
Abstract Windowing Toolkit
Trnh duyt.
Cc trnh x l s kin do cc lp trnh vin to
ring.
Cc ng dng cn ng k trnh x l s kin
vi i i tng
Cc trnh x l ny c gi khi c mt s
kin tng ng xy ra
X l cc s kin (tt)
Event Listener s lng nghe mt s kin c
th m mt i tng to ra
Mi event listener cung cp cc phng
thc x l cc s kin ny
Lp c ci t listener cn nh ngha
nhng phng thc ny
X l cc s kin(tt)
Cc bc cn tun th s dng m hnh
Event Listener:
Ci t Listener tng ng
Nhn din c tt c cc thnh phn to ra s
kin
Nhn din c tt c cc s kin c x l
Ci t cc phng thc ca listener, v vit cc
on m x l s kin trong cc phng thc

Interface nh ngha cc phng thc khc
nhau x l mi s kin
Cc s kin v Listener tng
ng
ActionEvent
AdjustmentEvent
ComponentEvent
FocusEvent
ItemEvent
WindowEvent
TextEvent
MouseEvent

KeyEvent
ActionListener
AdjustmentListener
ComponentListener
FocusListener
ItemListener
WindowListener
TextListener
MouseListener
MouseMotionListener
KeyListener
Menus
Cc loi menu :
Pull-down
Pop-up menu
Ch c th t cc thanh menubar vo
trong cc Frame m thi
Cc thnh phn ca menu:
Menubar
MenuItems
Chng VI
Applets
Applets
L mt chng trnh Java m chy vi
s h tr ca trnh duyt web
Tt c cc applets l lp con ca lp
Applet
to mt applet, bn cn import hai
gi sau:
java.applet
java.awt
Cu trc applet
nh ngha mt applet t bn s kin xy ra
trong qu trnh thc thi
i vi mi s kin c nh ngha bi mt
phng thc tng ng.
Cc phng thc:
init( )
start( )
stop( )
destroy( )
Cc phng thc khc:
paint( )
repaint( )
showStatus( )
getAppletInfo( )
Cc phng thc init(), start(), stop(),
destroy(), and paint() c tha k t applet.
Mi phng thc ny mc nh l rng. V
th cc phng thc ny phi c np
chng.
Bin dch v thc thi applet
Mt applet th c bin dch theo c php
sau
javac Applet1.java
thc thi mt applet, to mt tp tin HTML
c s dng th applet
Th applet c hai thuc tnh:
Width
Height
truyn tham s ti applet, s dng th
param, v tip theo l th value
Applet c th c thc thi bng applet
viewer
im khc bit gia applet v mt ng dng
Cc ng dng khi thc thi phi s dng
trnh bin dch Java, trong khi cc applets
thc thi c trn bt k trnh duyt no
m h tr Java, hoc s dng
AppletViewer trong JDK.
Mt ng dng bt u vi phng thc
main(). Cn i vi applet th khng s
dng phng thc ny
Mt ng dng s dng
System.out.println() hin th, trong khi
mt applet th s dng phng thc
drawstring() hin th.
Nhng hn ch v bo mt
trong applet
Khng th c hoc vit cc tp tin trn h
thng tp tin ca ngi s dng
Khng th giao tip vi mt site trn internet.
M ch giao tip vi mt dch v trn trang
web c applet.
Khng th chy bt k chng trnh no trn
h thng ca ngi c
Khng th load bt k chng trnh no
c lu trn h thng ca ngi s dng
Chu trnh sng ca applet
Truyn tham s ti mt applet
truyn tham s, s dng PARAM
trong th HTML
V d

<applet code = "Mybutton1" width = 100 height = 100>
<PARAM NAME = Mybutton value = Display Dialog>
</applet>
Lp ha
c cung cp bi gi AWT
Cung cp mt tp hp cc phng thc
v nh sau:
Oval
Rectangle
Square
Circle
Lines
Text in different fonts
Graphical Background
Cc phng thc v nn :
getGraphics( )
repaint( )
update(Graphics g)
paint(Graphics g)
Hin th chui, k t v bytes
Phng thc v hoc hin th mt chui
trn frame
C php
drawString(String str, int xCoor, int yCoor);
Phng thc v hoc hin th cc k t
trn frame
C php
drawChars(char array[ ], int offset, int length,
int xCoor, int yCoor);
Phng thc v hoc hin th bytes trn
frame
C php
drawBytes(byte array[ ], int offset, int length,
int xCoor, int yCoor);
V cc hnh th
Phng thc c s dng v
ng thng nh sau
C php
drawLine(int x1, int y1, int x2, int y2);
Cc phng thc c s dng v
ng trn nh sau
C php
drawOval(int xCoor, int yCoor, int width,
int height);
setColor(Color c);
fillOval(int xCoor, int yCoor, int width, int
height);
Phng thc s dng v hnh
vung:
C php
drawRect(int xCoor, int yCoor, int width, int
height);
fillRect(int xCoor, int yCoor, int width, int
height);
Cc phng thc c s dng v
hnh vung c gc trn
C php
drawRoundRect(int xCoor, int yCoor, int
width, int height, int arcWidth, int
arcHeight);
fillRoundRect (int xCoor, int yCoor, int
width, int height, int arcWidth, int
arcHeight);
3D Rectangles & Arcs
Cc phng thc c s dng v
hnh 3D C php
draw3DRect(int xCoord, int yCoord, int
width, int height, boolean raised);
drawArc(int xCoord, int yCoord, int width,
int height, int arcwidth, int archeight);
fillArc(int xCoord, int yCoord, int width, int
height, int arcwidth, int archeight);
Drawing PolyLines
Cc phng thc c s dng v
nhiu c thng
C php
drawPolyline(int xArray[ ], int yArray[ ], int
totalPoints);
g.setFont(new Font("Times Roman",
Font.BOLD,15));
V v t cc hnh a gic
Cc phng thc v v t cc hnh a
gic
C php
drawPolygon(int x[ ], int y[ ], int
numPoints);
fillPolygon(int x[ ], int y[ ], int numPoints);
Mu
Java s dng mu RGB
Bng cc gi tr mu
Element Range
Red 0-255
Green 0-255
Blue 0-255
C php ca hm dng to mt mu
color(int red, int green, int blue);

Bng trnh by cc gi tr mu RGB thng
thng
Color Red Green Blue
White 255 255 255
Light Gray 192 192 192
Gray 128 128 128
Dark Gray 64 64 64
Black 0 0 0
Pink 255 175 175
Orange 255 200 0
Yellow 255 255 0
Magenta 255 0 255
Font
Gi java.awt package cung cp bi lp
Font
Cc phng thc ca lp Font:
getAllFont( )
getLocalGraphicsEnvironment( )
getFont( )
getFontList( )
Hm dng Font nhn 3 tham s
Tn font trong chui nh dng; tn ny
c trong phng thc getFontList( ).
Kiu ca font. V d nh: Font.BOLD,
Font.PLAIN, Font.ITALIC
Kch thc ca font.
V d
Font f1 = new Font("SansSerif", Font.ITALIC, 16);
g.setFont(f1);
Lp FontMetrics
o lng cc k t khc nhau hin th trong
cc font khc nhau.
Vic o lng bao gm height, baseline,
ascent, descent v leading ca font.
N khng c th v n l mt lp tru tng
Lp FontMetrics (tip theo)
Phng thc:
getFontMetrics(f1)
getHeight( )
getAscent( )
getDescent( )
getLeading( )
getName( )
Kiu v
Cc i tng v c s dng.
Method used to make old and new
contents visible on the screen
setXORMode(Color c)
Method used to revert to the overwrite
mode
setPaintMode( )
Chng VII
Lp trnh a tuyn
Tuyn
Lp trnh a tuyn l mt c trng
ca Java
Tuyn l n v nh nht ca on m
c th thi hnh c m thc hin mt
cng vic ring bit
a tuyn
L kh nng lm vic vi nhiu tuyn
a tuyn chuyn s dng cho vic
thc thi nhiu cng vic ngthi
a tuyn gim thi gian ri ca h
thng n mc thp nht.
To v qun l tuyn (1)
Khi chng trnh Java thc thi hm
main() tc l tuyn main c thc thi.
Tuyn ny c to ra mt cch t
ng. ti y :
- Cc tuyn con s c to ra t
- N l tuyn cui cng kt thc vic thc
hin. Trong chc lt tuyn chnh ngng
thc thi, chng trnh b chm dt
Tuyn c th c to ra bng 2 cch:
Dn xut t lp Thread
Dn xut t Runnable.
Vng i ca mt tuyn
Trng thi ca tuyn v cc
phng thc ca lp tuyn
trng thi:
born
ready to run
running
sleeping
waiting
ready
blocked
dead
Phng thc:
start( )
sleep( )
wait( )
notify( )
run( )
stop( )
Cc phng thc Khc
enumerate(Thread t)
getName( )
isAlive( )
getPriority( )
setName(String name)
join( )
isDaemon( )
setDaemon(Boolean on)
resume( )
sleep( )
start( )
Phn chia thi gian gia cc tuyn
CPU ch thc thi ch mt tuyn ti mt
thi im nht nh.
Cc tuyn c u tin bng nhau th
c phn chia thi gian s dng b
vi x l.
tuyn Daemon(ngm)
Hai kiu tuyn trong mt chng trnh
Java:
Cc tuyn ngi s dng
tuyn ngm
tuyn ngm dn rc
a tuyn vi Applets
Cc chng trnh Java da trn Applet
thng s dng nhiu hn mt tuyn
Trong a tuyn vi Applets, Lp
java.applet.Applet l lp con c to ra
mt Applet ngi s dng nh ngha
n khng th thc hin c trc tip lp
con ca lp tuyn trong cc applet
Con ng lp con s dng lp tuyn:
S dng mt i tng ca tuyn ngi s dng
nh ngha, m, ln lt, dn xut lp tuyn
Thc thi chy giao tip (interface)
S ng b tuyn
Thm nhp cc ti nguyn/d liu bi
nhiu tuyn
S ng b (Synchronization)
S quan st (Monitor)
Mutex

M ng b
thm nhp s quan st ca mt i
tng, lp trnh vin s dng t kha
synchronized gi mt phng
thc hiu chnh (modified method)
Khi mt tuyn ang c thc thi
trong phm vi mt phng thc ng
b (synchronized), bt k tuyn khc
hoc phng thc ng b khc m
c gng gi n trong thi gian s
phi i
Khuyt im ca cc phng
thc ng b
Cc trng thi chc chn khng li ch
cho a tuyn
Trnh bin dch Java t Sun khng
cha nhiu phng thc ng b
Cc phng thc ng b chm hn
t ba n bn ln so vi cc phng
thc tng ng khng ng b.
K thut wait-notify (i
thng bo) (1)
tuyn chia cc tc v thnh cc n v
ring bit v logic (hp l)
trnh trng hp kim sot vng,
Java bao gm mt thit k tt trong tin
trnh k thut truyn thng s dng cc
phng thc wait() (i), notify()
(thng bo) v notifyAll() (thng bo ht)
:
wait( )
notify( )
notifyAll( )
K thut wait-notify (i
thng bo) (1)
Cc chc nng ca cc phng thc
wait(), notify(), v notifyAll() l :
wait( )
notify( )
notifyAll( )
tuyn u tin cao nht chy u tin
C php ca cc phng thc:
final void wait( ) throws IOException
final void notify( )
final void notifyAll( )
Mt s im cn nh trong khi
s dng phng thc wait():
tuyn ang gi a vo CPU
tuyn ang gi a vo kha
tuyn ang gi i vo vng i ca
monitor
Cc im chnh cn nh v
phng thc notify()
Mt tuyn a ra ngoi vng i ca monitor, v vo
trng thi sn sng
tuyn m c thng bo phi thu tr li kha ca
monitor trc khi n c th bt u
Phng thc notify() l khng chnh xc
Trong mt s trng hp ny, cc phng thc ca
monitor a ra 2 s phng:
Trng thi ca monitor s c kim tra trong mt vng lp
while tt hn l cu lnh if
Sau khi thay i trng thi ca monitor, phng thc notifyAll()
s c s dng, tt hn phng thc notify().

S b tt (Deadlocks)
Mt deadlock (s b tt) xy ra khi hai
tuyn c mt ph thuc vng quanh trn mt
cp i tng ng b
N kh g li mt b tt bi nhng
nguyn nhn sau:
N him khi xy ra, khi hai tuyn chia nh
thi gian trong cng mt con ng
N c th bao hm nhiu hn hai tuyn v
hai i tng ng b
Nu mt chng trnh a tuyn kha kn
thng xuyn, ngay lp tc kim tra li iu
kin b tt
Thu dn rc (Garbage
collection)
Ci to hoc lm trng b nh nh
v cho cc i tng m cc i tng
ny khng s dng trong thi gian di
S dn rc thc thi nh l mt tuyn
ring bit c quyn u tin thp
S dng cu lnh sau tt i s dn
rc trong ng dng:
java noasyncgc

Phng thc finalize() (hon
thnh)
Java cung cp mt con ng lm sch
mt tin trnh trc khi iu khin tr li h
iu hnh
Phng thc finalize(), nu hin din, s
c thc thi trn mi i tng, trc khi
s dn rc
Cu lnh ca phng thc finalize() nh sau
:
protected void finalize( ) throws Throwable
Tham chiu khng phi l s dn rc; ch cc
i tng mi c dn rc

Chng VIII
Cc lung I/O
Cc lung
Cc lung l nhng ng ng dn gi
v nhn thng tin trong cc chng trnh
java.
Khi mt lung c hoc ghi , cc lung khc
b kho.
Nu li xy ra trong khi c hoc ghi lung,
mt ngoi l s kch hot.
Lp java.lang.System nh ngha lung nhp
v xut chun.
Cc lp lung I/O
Lp System.out.
Lp System.in.
Lp System.err.

Lp InputStream
L lp tru tng
nh ngha cch nhn d liu
Cung cp s phng thc dng c v
cc lung d liu lm u vo.
Cc phng thc:
read( )
available( )
close ( )
mark ( )
markSupported( )
reset( )
skip( )
Lp OutputStream
L lp tru tng.
nh ngha cch ghi d liu vo lung.
Cung cp tp cc phng thc tr gip.
trong vic to, ghi v x l cc lung xut.
Cc phng thc:
write(int)
write(byte[ ])
write(byte[ ], int, int)
flush( )
close( )
Nhp mng cc Byte
S dng cc m b nh
Lp ByteArrayInputStream
To ra mt lung nhp t m b nh
khng g c v mng cc byte.
Khng h tr cc phng thc mi
Cc phng thc np chng ca lp
InputStream, ging nh read(), skip(),
available() v reset().

Byte Array Output
s dng cc vng m b nh
Lp ByteArrayOutputStream
To ra mt lung kt xut trn mng byte
Cung cp cc kh nng b sung cho
mng kt xut tng trng nhm cha
ch cho d liu mi ghi vo.
Cng cung cp cc phng thc
chuyn i lung ti mng byte, hay i
tng String.
Phng thc ca lp
ByteArrayOutputStream :
reset( )
size( )
writeTo( )
Cc lp nhp/xut tp tin

Cc lp ny tr gip trong Java h tr
cc thao tc nhp v xut:
File
FileDescriptor
FileInputStream
FileOutputStream
Cc lp File, FileDescriptor, v
RandomAccessFile c s dng h tr
trc tip hoc truy cp nhp/xut ngu
nhin.
Lp tp tin
c s dng truy cp cc i tng tp tin
v thw mc
Nhng tp tin c tn c t tn theo qui
c ca h iu hnh ch
Lp ny cung cp phng thc khi to
to ra cc th mc v tp tin
Tt c cc thao tc th mc v tp tin u
c s dng cc phng thc truy cp v
cc phng thc th mc m cc lp tp tin
cung cp
Lp FileDescriptor
Cung cp vic truy cp ti cc tp tin
m t
Khng cung cp bt k tnh r nt no
ti thng tin m h iu hnh duy tr.
Cung cp ch mt phng thc gi l
valid( )
Lp FileInputStream
Cho php u vo c t mt tp tin
trong mt mu ca mt dng
Cc i tng c to ra s dng
chui tn tp tin, tp tin, i tng
FileDescriptor nh mt tham s.
Cc phng thc np chng ca lp
InputStream. n cung cp phng thc
finalize( ) v getFD( )
Lp FileOutputStream
Cho php kt xut ghi ra mt lung
tp tin
Cc i tng cng to ra s dng mt
chui tn tp tin, tp tin, hay i tng
FileDescriptor nh mt tham s.
Lp ny np chng cc phng thc
ca lp OutputStream v cung cp
phng thc finalize( ) v getFD( )
Nhp xut lc
Lc:
L kiu lung sa i cch iu qun mt lung
hin c.
v c bn c s dng thch ng cc lung
theo cc nhu cu ca chng trnh c th.
B lc nm gia lung nhp v lung xut.
Thc hin mt s tin trnh t bit trn cc byte
c chuyn giao t u vo n kt xut.
C th phi hp thc hin mt dy cc tu
chn lc.
Lp FilterInputStream
L lp tru tng.
L cha ca tt c cc lp lung nhp lc.
Cung cp kh nng to ra mt lung t
lung khc.
Mt lung c th c v cung cp cung cp
di dng kt xut cho lung khc.
duy tr mt dy cc i tng ca lp
InputStream
Cho php to ra nhiu b lc kt xch
(chained filters
).
Lp FilterOutputStream
L dng b tr cho lp
FilterInputStream.
L cha ca tt c cc lp lung kt
xut.
Duy tr i tng ca lp
OutputStream nh l mt bin out.
D liu ghi ra lp ny c th sa i
thc hin cc thao tc lc, v sau
phn hi n i tng OutputStream.
Vng m nhp/xut
Vng m:
L kho lu tr d liu.
C th cung cp d liu thay v quay tr li ngun
d liu gc ban u.
Java s dng vng m nhp v kt xut tm
thi lp cache d liu c c hoc ghi vo mt
lung.
Trong khi thc hin vng m nhp:

S lng byte ln c c cng thi im, v
lu tr trong mt vng m nhp.
Khi chng trnh c lung nhp, cc byte nhp
c c vo vng m nhp.
Vng m nhp/xut (tt)
Trong trng hp vng m kt xut, mt
chng trnh ghi ra mt lung.
D liu kt xut c lu tr trong mt vng
m kt xut.
D liu c lu tr cho n khi vng m
tr nn y, hay lung kt xut c x
trng.
Kt thc, vng m kt xut c chuyn gi
n ch ca lung xut.
Lp BufferedInputStream
T ng to ra v duy tr vng m h tr
vng m nhp.
bi lp BufferedInputStream l mt b m,
n c th p ng cho mt s cc i tng
nht nh ca lp InputStream.
Cng c th phi hp cc tp tin u vo
khc.
S dng vi bin trin khai vng m
nhp.
Lp BufferedInputStream
(Contd)
nh ngha hai phng thc thit lp:

Mt ch php ch nh kch thc ca vng m
nhp.
phng thc kia th khng.
C hai phng thc thit lp u tip nhn
mt i tng ca lp InputStream nh mt
tham s.
Np chng cc phng thc truy cp m
InputStream cung cp, v khng a vo bt
k phng thc mi no.
Lp BufferedOutputStream
Thc hin vng m kt xut theo cch
tng ng vi lp BufferedInputStream.
nh ngha hai phng thc thit lp. N
cho php chng ta n nh kch thc ca
vng m xut trong mt phng thc thit
lp, cng ging nh cung cp kch thc
vng m mc nh.
Np chng tt c phng thc ca lp
OutputStream v khng a vo bt k
phng thc no.
Lp Reader v Writer
L cc lp tru tng.
Chng nm ti nh ca h phn cp
lp, h tr vic c v ghi cc lung k
t unicode.

Lp Reader
H tr cc phng thc sau:

read( )
reset( )
skip( )
mark( )
markSupported( )
close( )
ready( )
Lp Writer
H tr cc phng thc sau :
write( )
flush( )
close( )
Nhp/xut chui v mng k
t
H tr nhp v xut t cc vng m
b nh
H tr 8 bt k t nhp v kt xut

Lp CharArrayReader khng b sung
phng thc mi vo cc phng
thc m lp Reader cung cp.
Nhp/xut chui v mng k t
(tt)
Lp CharArrayWriter b sung phng
thc sau y vo phng thc ca lp
Writer cung cp:
reset( )
size( )
toCharArray( )
toString( )
writeTo( )
Nhp/xut chui v mng k t
(tt)
Lp StringReader tr gip c cc k t u
vo t su chui.
N khng b sung bt k phng thc no
m lp Reader cung cp.
Lp StringWriter tr gip ghi lung kt
xut k t ra mt i tng StringBuffer.
Lp ny b sung thm cc phng thc sau:
getBuffer( )
toString( )
Lp PrinterWriter
Thc hin mt kt xut.
Lp ny c phng thc b sung , tr gip
in cc kiu d liu c bn .
Lp PrintWriter thay th lp PrintStream
Thc t ci thin lp PrintStream; lp ny
dng mt du tch dng ph thuc nn tng
im cc dng thay v k t \n.
Cung cp phn h tr cho cc k t unicode
so vi PrintStream.
Cc phng thc:
checkError( )
setError( )
Giao din DataInput
c s dng c cc byte t lung nh
phn, v
Is used to read bytes from a binary stream,
and xy dng li d liu trong mt s kiu d
liu nguyn thu.
Cho php chng ta chuyn i d liu t t
khun dng UTF-8 c sa i Java n
dng chui
nh nghi s phng thc, bao gm cc
phng thc c cc kiu d liu nguyn
thu.
Nhng phng thc giao din
DataInput
boolean readBoolean(
)
byte readByte( )
char readChar( )
short readShort( )
long readLong( )

float readFloat( )
int readInt( )
double readDouble( )
String readUTF( )
String readLine( )

Giao din DataOutput
c s dng xy dng li d liu mt s
kiu d liu nguyn thu vo trong dy cc
byte
Ghi cc byte d liu vo lung nh phn
Cho php chng ta chuyn i mt chui vo
khun dng UTF-8 c sa i Java v vit
n vo trong mt dy.
nh ngha mt s phng thc v tt c
phng thc kch hot IOException trong
trng hp li.
Cc phng thc giao din
DataOutput
void writeBoolean(boolean b)
void writeByte( int value)
void writeChar(int value)
void writeShort(int value)
void writeLong(long value)
void writeFloat(float value)
void writeInt(int value)
void writeDouble(double value)
void writeUTF(String value)

Lp RandomAccessFile
Cung cp kh nng thc hin I/O theo cc v
tr c th bn trong mt tp tin.
d liu c th c hoc ghi ngu nhin
nhng v tr bn trong tp tin thay vi mt kho
lu tr thng tin lin tc.
phng thc seek( ) h tr truy cp ngu
nhin.
Thc hin c u vo v u ra d liu.
H tr cc cp php c v ghi tp tin c
bn.
K tha cc phng thc t cc lp
DataInput v DataOutput
Cc phng thc ca lp
RandomAccessFile
seek( )
getFilePointer( )
length( )
Gi java.awt.print
Gm c cc giao din
Pageable:
nh ngha cc phng thc dng cc i tng
biu th cc trang s c in.
Ch nh s trang c in, v trang hin ti hay l
tranh gii trang c in
Printable:
Chi nh phng thc print( ) s dng in mt trang
trn i tng Graphics
PrinterGraphics:
Cung cp kh nng truy cp i tng PrinterJob

Giao di n PrinterGraphics cung cp cc lp
sau:
Paper
Book
PageFormat
PrinterJob
Gi java.awt.print kch hot cc ngoi l:
PrinterException
PrinterIOException
PrinterAbortException
Chng IX
KT NI CSDL
Java Database Connectivity
Tng quan
JDBC cung cp tp cc lp v interface
cho php chng trnh Java c th ni
chuyn c vi h CSDL
Tp cc lp ca JDBC
c th lm vic c vi
mi h csdl.

C 3 bc chnh kt ni CSDL.
Np database drivers
To ni kt, To i tng Connection
To i tng Statement thc thi cc
lnh sql..
V d
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con=DriverManager.getConnection("jdbc:odbc:ATM");

Statement stmt = con.createStatement();
:
:
:
:
Database URL
Database URL l mt chui c dng
kt ni csdl.
c php :
jdbc:subprotocol name:other_stuff
The subprotocol name c dng tu
vo loi driver s dng kt ni csdl.
v d : subprotocol name l odbc nu
driver l cu ni jdbcodbc
Other_stuff cng ph thuc vo loi
driver no c s dng. v d nu
driver l cu ni jdbcodbc th thnh
phn ny l tn ca i tng ODBC
Database Driver
Bo m ng dng java tng tc vi mi
csdl di mt cch thc chun v duy nht.
Bo m nhng yu cu t chng trnh s
c biu din trong csdl di mt ngn ng
m csdl hiu c
nhn cc yu cu t client, chuyn n n vo
nh dng m csdl c th hiu c v th
hin trong csdl.
Nhn cc phn hi, chuyn n ngc li nh
dng d liu java v th hin trong ng dng.

Np Driver
Lp DriverManager chu trch nhim np driver
v to kt ni n csdl.
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
hoc
Class.forName(String);
This returns the object associated with the class with
the given string name.
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
Equivalent to:
new sun.jdbc.odbc.JdbcOdbcDriver();
If you have a driver from another vendor, then
find out the class name of that driver and load it
instead.
JDBC Driver
C 4 loi JDBC Driver
Loi 1: JDBC/ODBC
Loi 2: Native-API
Loi 3: Open Protocol-Net
Loi 4: Proprietary-Protocol-Net
Loi 2,3,4 ni chung c vit bi nh
cung cp csdl. hiu qu hn loi 1
nhng thc hin phc tp hn.
Loi I JDBC/ODBC
jdk h tr cu ni jdbc-odbc (jdbc-odbc
bridge).
Mm do nhng khng hiu qu.
Database
Network Interface
Server
Aplication
JDBC Driver
ODBC Driver
Network Interface
Disk
Client
Loi 2: Native-API
Tt hn loi 1, loi ny cho php JDBC giao
tip trc tip vi cc driver hay cc hm API
ca CSDL.

Database
Network Interface
Server
Aplication
JDBC Driver
Native Database Library
Network Interface
Disk
Client
Loi 3: Open Protocol-Net
Drivers
C th chuyn cc yu cu n cc csdl nm
xa.
C th giao tip vi nhiu loi CSDL.
Khng phi ca nh cung cp csdl
Tt c bng m java
Database
Network Interface
Server
Aplication
JDBC Driver Client
Network Interface
Disk
Client
JDBC Driver Server
Native Database Library
Loi 4: Proprietary-Protocol Net
100% java
C kh nng giao tip trc tip vi h
CSDL khng cn chuyn i

Database
Network Interface
Server
Aplication
JDBC Driver
Network Interface
Disk
Client
Gi Java.sql
Cung cp tp hp cc lp v interface dng
trao i vi CSDL.
Cc lp
DriverManager
Date, Time
Timestamp
Types
Cc Interfaces
Driver
Connection
DatabaseMetaData
Statement
PreparedStatement
CallableStatement
ResultSet
ResultSetMetaData
i tng Statement
i tng Connection cha lin kt
trc tip n csdl.
S dng i tng Connection to
i tng Statement.
Statement s = con.createStatement();
i tng ny c nhim v gi cc cu
lnh sql n csdl.
executeQuery(String) or
executeUpdate(String) method
Cng mt i tng Statement c th
s dng cho nhiu cu lnh sql khc
nhau.
C 3 phng thc thc thi
executeQuery()
executeUpdate()
execute()
The executeQuery()
Nhn cu lnh SQL (select) lm i s, tr li i
tng ResultSet
ResultSet rs = s.executeQuery(SELECT *
FROM Books);
Phng thc executeUpdate()
Nhn cc cu lnh sql dng cp nht
Tr li s nguyn biu th s hng c
cp nht.
UPDATE, INSERT, or DELETE.
Phng thc execute()
c p dng cho trng hp khng r
loi sql no c thc hin.
c p dng cho trng hp cu lnh
sql wocj to ra t ng bi chng trnh.
ResultSet
Cha mt hoc nhiu hng d liu t vic
thc hin cu lnh truy vn.
C th ly d liu tng hng d liu mt
trong ResultSet.
S dng phng thc next() di chuyn
n hng d liu tip theo trong ResultSet.
Hm next() tr li true ch rng hng cha d
liu, tr li false hng cui khng cha d
liu.
Thc hin
while (rs.next()){
// examine a row from the results
}
ly d liu cc ct trn mi hng
ca ResultSet, ta dng cc phng
thc.
get type(int | String)
i s l ch s ct tnh t 1.
p dng cho cc ct c kiu d liu l int, float,
Date.....
V d :
String isbn = rs.getString(1); // Column 1
float price = rs.getDouble(Price);
ResultSet Metadata
i tng ny cho bit thng tin v ResultSet

ResultSet rs = stmt.executeQuery(SQLString);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
getColumnName(int column)

Prepared Statements
To execute a Statement object many times, it
will reduce execution time to use
PreparedStatement object
PreparedStatement object
unlike a Statement object, it is given an SQL
statement when it is created.
The advantage to this is that in most cases, this
SQL statement will be sent to the DBMS right
away, where it will be compiled.
As a result, the PreparedStatement object
contains not just an SQL statement, but an SQL
statement that has been precompiled.
This means that when the PreparedStatement is
executed, the DBMS can just run the
PreparedStatement 's SQL statement without
having to compile it first
Cc i tng Statement
khc

Prepared Statements
Callable Statement
Database Metadata
i tng ny cho bit thng tin v
csdl.
Chng trnh mu
import java.sql.*;
class JDBCDemo1 {
public static void main(String[] args) {

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:Accserver");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(args[0]);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
for(int j=1; j<=numberOfColumns;j++) {
System.out.println(rsmd.getColumnLabel(j));
}
while(rs.next()) {
for(int i=1; i<=numberOfColumns;i++){
System.out.println(rs.getObject(i));
}}
rs.close();
stmt.close();
} catch(Exception e){ System.out.println("Error " + e);
}
}
}

You might also like