Professional Documents
Culture Documents
MC LC
Chng 1: GII THIU TNG QUAN V NGN NG LP
TRNH JAVA ......................................................................... 7
1.1. M u ......................................................................... 7
1.2. Gii thiu v ngn ng lp trnh Java............................ 7
1.2.1. Java l g? .............................................................. 7
1.2.2. Lch s pht trin ca ngn ng lp trnh Java........ 7
1.2.3. Mt s c im ni bc ca ngn ng lp trnh Java
........................................................................................ 8
1.3. Cc ng dng Java ...................................................... 10
1.3.1. Java v ng dng Console .................................... 10
1.3.2. Java v ng dng Applet ...................................... 11
1.3.3. Java v pht trin ng dng Desktop dng AWT v
JFC ................................................................................ 12
1.3.4. Java v pht trin ng dng Web.......................... 13
1.3.5. Java v pht trin cc ng dng nhng ................. 14
1.4. Dch v thc thi mt chng trnh vit bng Java........ 14
1.5. Chng trnh Java u tin.......................................... 15
1.5.1. To chng trnh ngun HelloWordApp .............. 15
1.5.2. Bin dch tp tin ngun HelloWordApp................ 16
1.5.3. Chy chng trnh HelloWordApp....................... 16
1.5.4. Cu trc chng trnh HelloWordApp.................. 17
S dng phng thc/bin ca lp................................ 17
1.6. Cng c lp trnh v chng trnh dch........................ 17
1.6.1. J2SDK ................................................................. 17
1.6.2. Cng c son tho m ngun Java. ....................... 18
Chng 2: ............................................................................. 21
HNG, BIN, KIU D LIU, ........................................... 21
TON T, BIU THC V CC ....................................... 21
CU TRC IU KHIN TRONG JAVA .......................... 21
2.1. Bin ............................................................................ 21
2.2. Cc kiu d liu c s................................................. 23
2.2.1. Kiu s nguyn .................................................... 24
2.2.2. Kiu du chm ng............................................. 26
1
LI NI U
Ngn ng lp trnh java ra i v c cc nh nghin cu
ca Cng ty Sun Microsystem gii thiu vo nm 1995. Sau khi
ra i khng lu, ngn ng lp trnh ny c s dng rng
ri v ph bin i vi cc lp trnh vin chuyn nghip cng
nh cc nh pht trin phn mm. Gn y ngn ng lp trnh,
cng ngh java c a vo ging dy cc c s o to
lp trnh vin chuyn nghip. Mt s trng i hc Vit
Nam dy mn lp trnh java nh mt chuyn t chn cho cc
sinh vin cng ngh thng tin giai on chuyn ngnh.
Sau mt thi gian tm hiu, lm vic v c tham gia ging
dy chuyn lp trnh java cho lp c nhn tin hc t xa qua
mng. Nhm tc gi chng ti quyt nh bin son cun gio
trnh ny nhm phc v cng tc ging dy cng nh hc tp
ca sinh vin chuyn ngnh cng ngh thng tin.
Ni dung gio trnh tp trung vo nhng kin thc cn bn
nht ca lp trnh java gip ngi c bc u tip cp d
dng vi cng ngh mi ny, v y cng chnh l mt bc
m chng ta tr thnh java shooter. Mt s vn nng
trong ngn ng lp trnh java nh: javabean, thit kt giao din
dng th vin JFC(Java Foundation Class), lp trnh mng, lp
trnh c s d liu bng java, lp trnh ng dng web dng
J2EE (Java 2 Enterprise Edition), s c ni n trong cc
chuyn nng cao. Chng 6 ca gio trnh gii thiu tng
quan v lp trnh c s d liu dng jdbc, mt ni dung theo
chng ti cn phi c trnh by trong mt chuyn ring.
c th c hiu gio trnh ny ngi c cn nm vng
cc kin thc v: nhp mn lp trnh, lp trnh hng i tng.
y l ln xut bn u tin chc chn khng th trnh khi
nhng sai st. Nhm tc gi rt mong nhn c nhng kin
ng gp ca qu thy c, cc ng nghip v bn c c
5
class HelloWorld
{
public static void main(String[] args)
10
{
System.out.println("\nHello World");
}
}
1.3.2.Java v ng dng Applet
Java Applet l loi ng dng c th nhng v chy trong trang
web ca mt trnh duyt web. T khi internet mi ra i, Java
Applet cung cp mt kh nng lp trnh mnh m cho cc trang
web. Nhng gn y khi cc chng trnh duyt web pht
trin vi kh nng lp trnh bng VB Script, Java Script,
HTML, DHTML, XML, cng vi s canh tranh khc lit
ca Microsoft v Sun lm cho Java Applet lu m. V cho
n by gi gn nh cc lp trnh vin u khng cn mn
m vi Java Applet na. (trnh duyt IE i km trong phin
bn Windows 2000 khng cn mc nhin h tr thc thi mt
ng dng Java Applet). Hnh bn di minh ha mt chng
trnh java applet thc thi trong mt trang web.
11
12
http://java.sun.com/
http://e-docs.bea.com/
http://www.macromedia.com/software/jrun/
http://tomcat.apache.org/index.html
Chc khng t ngi trong chng ta bit n trang web thng tin
nh t ni ting TPHCM l: http://www.nhadat.com/.
ng dng Web ny cng c xy dng da trn nn cng
ngh java.
Bn c th tm hiu chi tit hn v cng ngh J2EE to a ch:
http://java.sun.com/j2ee/
1.3.5.Java v pht trin cc ng dng nhng
Java Sun a ra cng ngh J2ME (The Java 2 Platform, Micro
Edition J2ME) h tr pht trin cc chng trnh, phn mm
nhng. J2ME cung cp mt mi trng cho nhng chng trnh
ng dng c th chy c trn cc thit b c nhn nh: in
thai di ng, my tnh b ti PDA hay Palm, cng nh cc
thit b nhng khc.
16
Bc 2:
To
mt Class mi tn HelloWorldApp v a vo Project hin ti.
- File New Class.
- Nhp vo tn Class v chn Finish (hnh bn di).
19
Ca s
WorkSpace
Ca s son tho
m ngun
20
Chng 2:
HNG, BIN, KIU D LIU,
TON T, BIU THC V CC
CU TRC IU KHIN TRONG JAVA
2.1.Bin
Bin l vng nh dng lu tr cc gi tr ca chng
trnh. Mi bin gn lin vi mt kiu d liu v mt
nh danh duy nht gi l tn bin.
- Tn bin thng thng l mt chui cc k t
(Unicode), k s.
o Tn bin phi bt u bng mt ch ci, mt du
gch di hay du dollar.
o Tn bin khng c trng vi cc t kha (xem
ph lc cc t kha trong java).
o Tn bin khng c khong trng gia tn.
- Trong java, bin c th c khai bo bt k ni u
trong chng trnh.
Cch khai bo
<kiu_d_liu> <tn_bin>;
<kiu_d_liu> <tn_bin> = <gi_tr>;
Gn gi tr cho bin
<tn_bin> = <gi_tr>;
-
21
22
23
Kiu c s
Kiu lun l
Kiu k t
Kiu s
kiu nguyn
boolean
byte
Kiu
byte
short
int
long
float
double
kiu thc
char
Kch
thc
(bytes)
1
2
4
8
4
8
short
int
Gi tr min
-256
-32768
-231
-263
long
float
Gi tr max
255
32767
231 - 1
263 - 1
double
Gi tr
mc
nh
0
0
0
0L
0.0f
0.0d
2.2.1.Kiu s nguyn
-
25
2.2.2.Kiu du chm ng
i vi kiu du chm ng hay kiu thc, java h tr hai kiu
d liu l float v double.
Kiu float c kch thc 4 byte v gi tr mc nh l 0.0f
Kiu double c kch thc 8 byte v gi tr mc nh l 0.0d
S kiu du chm ng khng c gi tr nh nht cng khng
c gi tr ln nht. Chng c th nhn cc gi tr:
- S m
- S dng
- V cc m
- V cc dng
Khai bo v khi to gi tr cho cc bin kiu du chm ng:
float x = 100.0/7;
double y = 1.56E6;
Mt s lu i vi cc php ton trn s du chm ng:
- Nu mi ton hng u c kiu dn chm ng th php
ton chuyn thnh php ton du chm ng.
- Nu c mt ton hng l double th cc ton hng cn
li s c chuyn thnh kiu double trc khi thc
hin php ton.
- Bin kiu float v double c th p chuyn sang kiu d
liu khc tr kiu boolean.
2.2.3.Kiu k t (char)
Kiu k t trong ngn ng lp trnh java c kch thc l 2
bytes v ch dng biu din cc k t trong b m Unicode.
Nh vy kiu char trong java c th biu din tt c 216 = 65536
k t khc nhau.
Gi tr mc nh cho mt bin kiu char l null.
26
2.3.Hng:
-
K t
ngha
Xa li (BackSpace)
Tab
Xung hng
Du enter
Nhy kp
Nhy n
S ngc
y trang
K t unicode
\b
\t
\n
\r
\
\
\\
\f
\uxxxx
27
28
ngha
Cng
Tr
Nhn
Chia nguyn
Chia d
Tng 1
Gim 1
ngha
AND
OR
XOR
Dch tri
Dch phi
Dch phi v in 0 vo bit trng
B bit
ngha
So snh bng
So snh khc
So snh ln hn
So snh nh hn
So snh ln hn hay bng
So snh nh hn hay bng
29
||
&&
!
2.5.4.Ton t p kiu
-
2.5.5.Ton t iu kin
C php: <iu kin> ? <biu thc 1> : < biu thc 2>
Nu iu kin ng th c gi tr, hay thc hin <biu thc 1>,
cn ngc li l <biu thc 2>.
<iu kin>: l mt biu thc logic
<biu thc 1>, <biu thc 2>: c th l hai gi tr, hai biu thc
hoc hai hnh ng.
V d:
int x = 10;
int y = 20;
int Z = (x<y) ? 30 : 40;
// Kt qu z = 30 do biu thc (x < y) l ng.
2.5.6.Th t u tin
Th t u tin tnh t tri qua phi v t trn xung di
Cao nht
30
()
++
*
+
>>
[]
-/
>>> (dch phi v
.
~
%
<<
in 0 vo bit trng)
>
==
&
^
|
&&
||
?:
=
Thp nht
>=
!=
<
<tont>=
<=
}
2.6.2.Cu trc switch case
switch (<bin>)
{
case <gitr_1>:
<khi_lnh_1>;
break;
.
case <gitr_n>:
<khi_lnh_n>;
break;
default:
<khi lnh default>;
}
2.6.3.Cu trc lp
Dng 1: while()
while (iu_kin_lp)
{
khi _lnh;
}
Dng 2: do { } while;
do
{
khi_lnh;
} while (iu_kin);
Dng 3: for ()
for (khi_to_bin_m;k_lp;tng_bin)
{
<khi _lnh>;
32
}
2.6.4.Cu trc lnh nhy (jump)
Lnh break: trong cu trc switch chng ta dng cu lnh
break thot thi cu trc switch trong cng cha n. Tng
t nh vy, trong cu trc lp, cu lnh break dng that
khi cu trc lp trong cng cha n.
Lnh continue: dng tip tc vng lp trong cng cha n
(ngc vi break).
Nhn (label):
Khng ging nh C/C++, Java khng h tr lnh goto nhy
n 1 v tr no ca chng trnh. Java dng kt hp nhn
(label) vi t kha break v continue thay th cho lnh
goto.
V d:
label:
for ()
{
for ()
{
if (<biu thc iu kin>)
break label;
else
continue label;
}
}
Lnh label: xc nh v tr ca nhn v xem nh tn ca vng
lp ngoi. Nu <biu thc iu kin> ng th lnh break label
s thc hin vic nhy ra khi vng lp c nhn l label,
ngc li s tip tc vng lp c nhn label (khc vi break
v continue thng thng ch thot khi hay tip tc vng lp
trong cng cha n.).
2.7.Lp bao kiu d liu c s (Wrapper Class)
Data type
Wrapper Class
33
Ghi ch
boolean
byte
short
char
int
long
Float
double
(java.lang.*)
Boolean
Byte
Short
Character
Integer
Long
Float
Double
- Gi (package): cha
nhm nhiu class.
- Ngoi cc Wrapper
Class, gi java.lang cn
cung cp cc lp nn
tng cho vic thit k
ngn ng java nh:
String, Math,
<kiu d liu>
<kiu d liu>[]
<tn mng>[];
<tn mng>;
V d:
hoc
int
int[]
arrInt[];
arrInt;
34
int[]
new InputStreamReader(
System.in));
String s;
s = in.readLine();
n = Integer.parseInt(s);
}
catch(Exception e)
{
System.out.println(Nhp d liu b
li !);
}
System.out.println(Bn va nhp s: + n);
}
}
V d 3: Nhp v xut gi tr cc phn t ca mt mng cc s
nguyn.
class ArrayDemo
{
public static void main(String args[])
{
int arrInt[] = new int[10];
int i;
for(i = 0; i < 10; i = i+1)
arrInt[i] = i;
for(i = 0; i < 10; i = i+1)
System.out.println("This is arrInt[" + i +
"]: " + arrInt[i]);
}
}
37
{
public static void main(String args[])
{
int nums[] = { 99, -10, 100123, 18, -978,
5623, 463, -9, 287, 49 };
int min, max;
min = max = nums[0];
for(int i=1; i < 10; i++)
{
if(nums[i] < min) min = nums[i];
if(nums[i] > max) max = nums[i];
}
System.out.println("Min and max: " + min + " "
+ max);
}
}
39
41
V d 8: To i tng chui
class StringDemo
{
public static void main(String args[])
{
// Tao chuoi bang nhieu cach khac nhau
String str1 = new String("Chuoi trong java la
nhung Objects.");
String str2 = "Chung duoc xay dung bang nhieu
cach khac nhau.";
String str3 = new String(str2);
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
}
System.out.print("\n");
}
}
3.2.3.To i tng ca lp
ClassName objectName = new ClassName();
3.2.4.Thuc tnh ca lp
Vng d liu (fields) hay thuc tnh (properties) ca lp
c khai bo bn trong lp nh sau:
class <ClassName>
{
// khai bo nhng thuc tnh ca lp
<tin t> <kiu d liu> field1;
//
}
xc nh quyn truy xut ca cc i tng khc i vi
vng d liu ca lp ngi ta thng dng 3 tin t sau:
public: c th truy xut t tt c cc i tng khc
private: mt lp khng th truy xut vng private ca 1
lp khc.
protected: vng protected ca 1 lp ch cho php bn
thn lp v nhng lp dn xut t lp truy cp
n.
V d:
public class xemay
{
public
public
private
protected
String
String
float
int
nhasx;
model;
chiphisx;
thoigiansx;
public static
int
sobanhxe = 2;
}
Thuc tnh nhasx, modelc th c truy cp n t tt
c cc i tng khc.
Thuc tnh chiphisx ch c th truy cp c t cc i
tng c kiu xemay
Thuc tnh thoigiansx, so c th truy cp c t cc i
tng c kiu xemay v cc i tng ca cc lp con dn
xut t lp xemay
Lu : Thng thng an ton cho vng d liu ca cc i
tng ngi ta trnh dng tin t public, m thng chn tin
t private ngn cn quyn truy cp n vng d liu ca mt
lp t cc phng thc bn ngoi lp .
3.2.5.Hm - Phng thc lp (Method)
Hm hay phng thc (method) trong Java l khi lnh
thc hin cc chc nng, cc hnh vi x l ca lp ln vng d
liu.
Khai bo phng thc:
<Tin t> <kiu tr v> <Tn phng thc> (<danh sch i
s>)
{
<khi lnh>;
}
xc nh quyn truy xut ca cc i tng khc i vi
cc phng thc ca lp ngi ta thng dng cc tin t sau:
public: phng thc c th truy cp c t bn ngoi
lp khai bo.
protected: c th truy cp c t lp khai bo v
nhng lp dn xut t n.
private: ch c truy cp bn trong bn thn lp khai
bo.
50
String
String
float
int
nhasx;
model;
chiphisx;
thoigiansx;
51
V d:
public class xemay
{
//
public xemay()
52
{}
public xemay(String s_nhasx, String s_model,
f_chiphisx, int i_thoigiansx, int i_so);
{
nhasx = s_nhasx;
model = s_model;
chiphisx = f_chiphisx;
thoigiansx = i_thoigiansx;
so = i_so;
// hoc
// this.nhasx = s_nhasx;
// this.model = s_model;
// this.chiphisx = f_chiphisx;
// this.thoigiansx = i_thoigiansx;
// this.so = i_so;
}
}
3.2.7.Bin this
Bin this l mt bin n tn ti trong tt c cc lp trong
ngng ng java. Mt class trong Java lun tn ti mt bin this,
bin this c s dng trong khi chy v tham kho n bn
thn lp cha n.
V d:
<tin t> class A
{
<tin t> int <field_1>;
<tin t> String <field_2>;
// Contructor ca lp A
public A(int par_1, String par_2)
{
53
this.field_1 = par_1;
this.field_2 = par_2;
}
<tin t> <kiu tr v> <method_1>()
{
//
}
<tin t> <kiu tr v> <method_2>()
{
this.method_1()
//
}
}
3.2.8.Khai bo chng phng thc (overloading method)
Vic khai bo trong mt lp nhiu phng thc c cng tn
nhng khc tham s (khc kiu d liu, khc s lng tham s)
gi l khai bo chng phng thc (overloading method).
V d:
public class xemay
{
// khai bo fields
public float tinhgiaban()
{
return 2 * chiphisx;
}
public float tinhgiaban(float huehong)
{
return (2 * chiphisx + huehong);
}
}
3.3.c im hng i tng trong java
H tr nhng nguyn tc c bn ca lp trnh hng i
tng, tt c cc ngn ng lp trnh k c java u c ba c
54
}
}
class B_Object extends A_Object
{
//
void method_1()
{
//
}
}
class C
{
public static void main(String[] args)
{
// To mt mng 2 phn t kiu A
A_Object arr_Object = new A_Object[2];
B_Object var_1 = new B_Object();
// Phn t u tin ca mng arr_Object[0]
tham // chiu n 1 i tng kiu B_Object dn
xut // t A_Object
arr_Object[0] = var_1;
A_Object var_2;
for (int i=0; i<2; i++)
{
var_2 = arr_Object[i];
var_2.method_1();
}
}
}
Vng lp for trong on chng trnh trn:
56
l B_Object, v lnh
hin phng thc
l A_Object, v lnh
hin phng thc
58
3.3.3.2 Lp ni
Lp ni l lp c khai bo bn trong 1 lp khc. Lp ni
th hin tnh ng gi cao v c th truy xut trc tip bin ca
lp cha.
V d:
public class A
{
//
int <field_1>
static class B
{
//
int <field_2>
public B(int par_1)
{
field_2 = par_1 + field_1;
}
}
}
Trong v d trn th chng trnh dch s to ra hai lp vi hai
files khc nhau: A.class v B.class
3.3.3.3 Lp v sinh
Lp khng th c lp dn xut t n (khng c lp con) gi
l lp v sinh, hay ni cch khc khng th k tha c t
mt lp v sinh. Lp v sinh dng hn ch, ngn nga
cc lp khc dn xut t n.
59
}
public class B extends A
{
public void method_1()
{
// ci t chi tit cho phng thc method_1
// trong lp con B.
//
}
}
public class C extends A
{
public void method_1()
{
// ci t chi tit cho phng thc method_1
// trong lp con C.
//
}
}
Lu : Cc phng thc c khai bo dng cc tin t
private v static th khng c khai bo l tru tng
abstract. Tin t private th khng th truy xut t cc lp dn
xut, cn tin t static th ch dng ring cho lp khai bo m
thi.
3.3.3.5 Phng thc finalize()
Trong java khng c kiu d liu con tr nh trong C,
ngi lp trnh khng cn phi qu bn tm v vic cp pht v
gii phng vng nh, s c mt trnh dn dp h thng m
trch vic ny. Trnh dn dp h thng s dn dp vng nh cp
pht cho cc i tng trc khi hy mt i tng.
Phng thc finalize() l mt phng thc c bit c ci
t sn cho cc lp. Trnh dn dp h thng s gi phng thc
ny trc khi hy mt i tng. V vy vic ci t mt s
61
62
63
// ly ta y ca 1 im
public int getY()
{
return y;
}
// Th hin ta ca 1 im di dng chui
public String toString()
{
return "[" + x + ", " + y + "]";
}
// tr v tn ca i tng shape
public String getName()
{
return "Point";
}
} // end class Point
nh ngha mt lp cha Shape l mt lp tru tng dn
xut t Object v c 3 phng thc khai bo dng tin t
public. Phng thc getName() khai bo tru tng v vy n
phi c hin thc trong cc lp con. Phng thc area()
(tnh din tch) v phng thc volume() (tnh th tch) c
nh ngha v tr v 0.0. Nhng phng thc ny s c khai
bo chng trong cc lp con thc hin chc nng tnh din
tch cng nh th tch ph hp vi nhng i tng hnh hc
tng ng (ng trn, hnh tr, )
Lp Point: dn xut t lp Shape. Mt im th c din
tch v th tch l 0.0, v vy nhng phng thc area() v
volume() ca lp cha khng cn khai bo chng trong lp
Point, chng c tha k nh nh ngha trong lp tru
tng Shape. Nhng phng thc khc nh setPoint()
67
69
71
String output =
point.getName() + ": " + point.toString() + "\n" +
circle.getName() + ": " + circle.toString() + "\n" +
cylinder.getName() + ": " + cylinder.toString();
DecimalFormat precision2 = new DecimalFormat(
"0.00" );
// duyt mng arrayOfShapes ly tn, din tch, th tch
// ca mi i tng hnh hc trong mng.
for ( int i = 0; i < arrayOfShapes.length; i++ )
{
output += "\n\n" + arrayOfShapes[ i ].getName() +
": " + arrayOfShapes[ i].toString() +
"\n Area = " +
precision2.format( arrayOfShapes[ i ].area() ) +
"\nVolume = " +
precision2.format( arrayOfShapes[ i ].volume() );
}
System.out.println(output);
System.exit( 0 );
}
} // end class Test
Kt qu thc thi chng trnh:
73
}
// gn ta x, y cho 1 im
public void setPoint( int xCoordinate, int yCoordinate )
{
x = xCoordinate;
y = yCoordinate;
}
// ly ta x ca 1 im
public int getX()
{
return x;
}
// ly ta y ca 1 im
public int getY()
{
return y;
}
// Th hin ta ca 1 im di dng chui
public String toString()
{
return "[" + x + ", " + y + "]";
}
// Tnh din tch
public double area()
{
return 0.0;
}
// Tnh th tch
public double volume()
75
{
return 0.0;
}
// tr v tn ca i tng shape
public String getName()
{
return "Point";
}
} // end class Point
Lp Circle l lp con ca lp Point, v ci t/hin thc gin
tip interface tn shape.
// nh ngha lp Circle trong tp tin Circle.java
public class Circle extends Point
{
// Dn xut t lpPoint
protected double radius;
// constructor khng tham s
public Circle()
{
// ngm gi n constructor ca lp cha
setRadius( 0 );
}
// constructor c tham s
public Circle( double circleRadius, int xCoordinate,
int yCoordinate )
{
// gi constructorca lp cha
super( xCoordinate, yCoordinate );
setRadius( circleRadius );
}
76
// Gn bn knh ca ng trn
public void setRadius( double circleRadius )
{
radius = ( circleRadius >= 0 ? circleRadius:0 );
}
// Ly bn knh ca ng trn
public double getRadius()
{
return radius;
}
// Tnh din tch ng trn Circle
public double area()
{
return Math.PI * radius * radius;
}
// Biu din ng trn bng mt chui
public String toString()
{
return "Center = " + super.toString() +
"; Radius = " + radius;
}
// tr v tn ca shape
public String getName()
{
return "Circle";
}
} // end class Circle
// nh ngha lp hnh tr Cylinder
// trong tp tin Cylinder.java.
77
}
// Tnh din tch xung quanh ca Cylinder
public double area()
{
return 2 * super.area() + 2 * Math.PI * radius *
height;
}
// Tnh th tch ca Cylinder
public double volume()
{
return super.area() * height;
}
// Biu din Cylinder bng mt chui
public String toString()
{
return super.toString() + "; Height = " + height;
}
// tr v tn ca shape
public String getName()
{
return "Cylinder";
}
} // end class Cylinder
// Test.java
// Kim tra tnh k tha ca Point, Circle, Cylinder vi
// interface Shape.
// Khai bo th vin
import java.text.DecimalFormat;
79
81
X l s kin
82
java.awt.Component
4.3.2.Container
Container l i tng vt cha hay nhng i tng c kh
nng qun l v nhm cc i tng khc li. Nhng i tng
con thuc thnh phn awt nh: button, checkbox, radio button,
scrollbar, list, ch s dng c khi ta a n vo khung
cha (container).
Mt s i tng container trong Java:
84
4.3.3.Layout Manager
Khung cha container nhn cc i tng t bn ngoi a
vo v n phi bit lm th no t chc sp xp ch cho
cc i tng . Mi i tng khung cha u c mt b
qun l chu trch nhim thc hin cng vic y l b qun
l trnh by (Layout Manager). Cc b qun l trnh by m th
vin AWT cung cp cho ta bao gm:
85
fr.setVisible(true);
}
}
Kt qu thc thi chng trnh:
MenuItem
Menu
createMenu();
}
private static void createMenu()
{
// Tao Frame ung dung
final Frame fr = new Frame();
fr.setLayout(new BorderLayout());
// Tao cac menu bar
MenuBar menu = new MenuBar();
Menu menuFile = new Menu("Edit");
MenuItem copyItem = new MenuItem("Copy Ctrl+C");
MenuItem pasteItem = new MenuItem("Paste Ctrl+V");
menuFile.add(copyItem);
menuFile.add(pasteItem);
Menu menuHelp = new Menu("Help");
MenuItem hTopicItem = new MenuItem("Help Topics");
MenuItem hAboutItem = new MenuItem("About
Calculator");
menuHelp.add(hTopicItem);
menuHelp.addSeparator();
menuHelp.add(hAboutItem);
menu.add(menuFile);
menu.add(menuHelp);
fr.setMenuBar(menu);
fr.setBounds(100, 100, 300, 200);
fr.setTitle("Calculator");
//fr.setResizable(false);
fr.setVisible(true);
// x l bin s kin ng ca s ng dng.
fr.addWindowListener(
88
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
Kt qu thc thi chng trnh:
fr.add(new TextField(20));
// phng thc pack() c gi s lm cho ca s
// hin hnh s c kch thc va vi kch thc
// trnh by b tr nhng thnh phn con ca n.
fr.pack();
fr.setVisible(true);
}
}
Kt qu thc thi chng trnh:
4.4.4.2 BorderLayout
public class BorderLayout extends Object
implements LayoutManager2, Serializable
i vi mt container trnh by theo kiu BorderLayout th:
B trnh by khung cha c chia lm 4 vng:
NORTH, SOUTH, WEST, EAST v CENTER. (ng,
Ty, Nam, Bc v trung tm). B trnh by loi ny cho
php sp xp v thay i kch thc ca nhng
components cha trong n sao cho va vi 5 vng
NG, TY, NAM, BC, TRUNG TM.
Khng cn phi gn component vo cho tt c cc vng.
Cc component vng NORTH v SOUTH c chiu
cao ty nhng c chiu rng ng bng chiu rng
vng cha.
Cc component vng EAST v WEST c chiu rng
ty nhng c chiu cao ng bng chiu cao vng
cha.
Cc component vng CENTER c chiu cao v chiu
rng ph thuc vo cc vng xung quanh.
92
V d:
import java.awt.*;
class BorderLayoutDemo extends Frame
{
private Button north, south, east, west, center;
public BorderLayoutDemo(String sTitle)
{
super(sTitle);
north = new Button("North");
south = new Button("South");
east = new Button("East");
west = new Button("West");
center = new Button("Center");
this.add(north, BorderLayout.NORTH);
this.add(south, BorderLayout.SOUTH);
this.add(east, BorderLayout.EAST);
this.add(west, BorderLayout.WEST);
this.add(center, BorderLayout.CENTER);
}
public static void main(String args[])
{
Frame fr = new BorderLayoutDemo ("BorderLayout
Demo");
fr.pack();
fr.setVisible(true);
}
}
Kt qu thc thi chng trnh:
93
4.4.4.3 GridLayout
public class GridLayout extends Object
implements LayoutManager
i vi mt container trnh by theo kiu GridLayout th:
B trnh by to mt khung li v hnh vi cc bng
nhau.
Cc i tng s t va kch thc vi tng . Th
t sp xp t tri qua phi v t trn xung di.
V d:
import java.awt.*;
public class GridLayoutDemo
{
public static void main(String arg[])
{
Frame f = new Frame("GridLayout Demo");
f.setLayout(new GridLayout(3,2));
f.add(new Button("Red"));
f.add(new Button("Green"));
f.add(new Button("Blue"));
f.add(new Checkbox("Pick me", true));
f.add(new Label("Enter name here:"));
94
f.add(new TextField());
f.pack();
f.setVisible(true);
}
}
Kt qu thc thi chng trnh:
4.4.4.4 GridBagLayout
public class GridBagLayout extends Object
implements LayoutManager2
(public interface LayoutManager2 extends
LayoutManager)
i vi mt container trnh by theo kiu GridBagLayout th:
Cc componets khi c a vo khung cha s c
trnh by trn 1 khung li v hnh tng t nh
GridLayout. Tuy nhin khc vi GridLayout kch thc
cc i tng khng nht thit phi va vi 1 trn
khung li m c th l 2, 3 hay nhiu hn ty theo
cc rng buc m ta ch nh thng qua i tng
GridBagConstraints.
Lp GridBagConstraints dn xut t lp Object. Lp
GridBagConstraints dng ch nh rng buc cho
nhng components trnh by trong khung cha container
theo kiu GridBagLayout.
o gridx, gridy: v tr ca khung li v hnh m
ta s a i tng con vo
95
constraints.gridx = 3;
constraints.gridy = 2;
constraints.gridheight = 2;
constraints.gridwidth = 1;
layout.setConstraints(buttons[4], constraints);
// Rang buoc cho nut nhan thu 6
constraints.gridx = 4;
constraints.gridy = 1;
constraints.gridheight = 3;
constraints.gridwidth = 1;
layout.setConstraints(buttons[5], constraints);
// Tu nut thu 7 tro di khong can rang buoc
// thay vi doi kich thuoc
constraints.fill = GridBagConstraints.NONE;
// Rang buoc cho nut nhan thu 7
constraints.gridx = 1;
constraints.gridy = 4;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.weightx = 1.0;
layout.setConstraints(buttons[6], constraints);
// Rang buoc cho nut nhan thu 8
constraints.gridx = 2;
constraints.gridy = 5;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.weightx = 2.0;
layout.setConstraints(buttons[7], constraints);
// Rang buoc cho nut nhan thu 9
constraints.gridx = 3;
98
constraints.gridy = 6;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.weightx = 3.0;
layout.setConstraints(buttons[8], constraints);
// Dua cac nut nhan khung chua chuong trinh
for (int i=0;i<9;i++)
f.add(buttons[i]);
f.pack();
f.setVisible(true);
}
}
Kt qu thc thi chng trnh:
fr.add(checkBut);
fr.add(li);
fr.setBounds(10, 10, 400, 200);
fr.setVisible(true);
}
}
Kt qu thc thi chng trnh:
101
+--java.awt.Frame
Khung cha Frame l mt ca s window hn hoi mc
trn cng bao gm mt tiu u v mt ng bin (border)
nh cc ng dng windows thng thng khc. Khung cha
Frame thng c s dng to ra ca s chnh ca cc ng
dng.
Khung cha Panel c b qun l trnh by (LayoutManager)
mc nh l FlowLayout.
4.4.5.2 Khung cha Panel
java.lang.Object
+--java.awt.Component
+--java.awt.Container
+--java.awt.Panel
Khung cha Panel c b qun l trnh by (LayoutManager)
mc nh l FlowLayout.
i vi khung cha Panel th cc Panel c th lng vo
nhau, v vy khung cha Panel thng c dng b tr cc
nhm components bn trong mt khung cha khc.
V d:
import java.awt.*;
public class PanelDemo extends Frame
{
private Button next, prev, first;
private List li;
public PanelDemo(String sTitle)
{
super(sTitle);
next = new Button("Next >>");
prev = new Button("<< Prev");
102
103
+--java.awt.Dialog
Dialog l mt lp khung cha ta Frame v cn c gi l
popup window. C hai loi dialog ph bin:
Modal Dialog: s kha tt c cc ca s khc ca ng
dng khi dialog dng ny cn hin th.
Non-Modal Dialog: vn c th n cc ca s khc ca
ng dng khi dialog dng ny hin th.
Mt ca s dng Dialog lun lun phi gn vi mt ca s
ng dng (Frame).
to mt i tng khung cha Dialog ta c th dng mt
trong cc constructor ca n:
public Dialog (Frame parentWindow, boolean isModal)
public Dialog (Frame parentWindow, String title,
boolean isModal)
parentWindow: ca s cha
title: tiu ca Dialog
isModal: true -> l Dialog dng modal
isModal: false -> l Dialog khng phi dng modal
(hay non-modal)
104
105
{
super( "Demonstrating Keystroke Events" );
// set up TextArea
textArea = new TextArea( 10, 15 );
textArea.setText( "Press any key on the keyboard..." );
textArea.setEnabled( false );
this.add( textArea );
// allow frame to process Key events
addKeyListener( this );
setSize( 350, 100 );
setVisible( true );
}
// handle press of any key
public void keyPressed( KeyEvent event )
{
line1 = "Key pressed: " +
event.getKeyText( event.getKeyCode() );
setLines2and3( event );
}
// handle release of any key
public void keyReleased( KeyEvent event )
{
line1 = "Key released: " +
event.getKeyText( event.getKeyCode() );
setLines2and3( event );
}
// handle press of an action key
public void keyTyped( KeyEvent event )
{
113
event.getKeyModifiersText(
114
4.6.Mt s v d minh ha
V d 1: To b lng nghe bin c cho i tng khung cha
Frame, v x l bin c ng ca s.
import java.awt.*;
import java.awt.event.*;
public class WindowClosingDemo
{
public static void main(String args[])
115
{
Frame f = new Frame ("WindowClosing Demo");
WindowCloser closer = new WindowCloser();
f.addWindowListener(closer);
f.setBounds(10, 10, 300, 200);
f.setVisible(true);
}
}
import java.awt.event.*;
class WindowCloser implements WindowListener
{
public void windowClosing(WindowEvent e)
{
System.out.println("windowClosing..");
System.exit(0);
}
public void windowActivated(WindowEvent e)
{
System.out.println("windowActivated...");
}
public void windowClosed(WindowEvent e)
{
System.out.println("windowClosed...");
}
public void windowDeactivated(WindowEvent e)
{
System.out.println("windowDeactivated...");
}
public void windowDeiconified(WindowEvent e)
{
System.out.println("windowDeiconified...");
}
public void windowIconified(WindowEvent e)
{
116
System.out.println("windowIconified...");
}
public void windowOpened(WindowEvent e)
{ System.out.println("windowOpened...");
}
}
C th dng lp tru tng WindowAdapter to ra b lng
nghe.
public abstract class WindowAdapter extends Object
implements WindowListener
(WindowAdapter hin thc interface WindowListener
nn lp o ny cng c 7 phng thc ging nh giao
din WindowListener)
import java.awt.event.*;
class WindowCloser extends WindowAdapter
{ public void windowClosing(WindowEvent e)
{ System.out.println("windowClosing..");
System.exit(0);
}
}
V d 2: CheckboxGroup Demo
import java.awt.*;
public class CheckboxGroupDemo extends Frame
{
private Checkbox red, green, blue;
private CheckboxGroup checkGroup;
public CheckboxGroupDemo(String title)
{ super(title);
checkGroup = new CheckboxGroup();
red = new Checkbox("Red", checkGroup, false);
green = new Checkbox("Green", checkGroup, false);
blue = new Checkbox("Blue", checkGroup, false);
117
V d 3: TextComponent
import java.awt.*;
class TextComponentDemo extends Frame
{
private TextField textField;
private TextArea textArea;
private Button enter, clear;
public TextComponentDemo (String title)
{
super(title);
119
{
TextComponentDemo f = new TextComponentDemo
("TextComponentDemo ");
f.setSize(300,200);
f.setVisible(true);
f.getTextField().requestFocus();
}
}
import java.awt.*;
import java.awt.event.*;
public class CreateList implements ActionListener
{
private int counter = 0;
private TextField source;
private TextArea destination;
public CreateList(TextField s, TextArea d)
{ source = s;
destination = d;
}
public void actionPerformed(ActionEvent e)
{
String action = e.getActionCommand();
if (action.equalsIgnoreCase("Enter"))
{
String text = source.getText();
counter++;
destination.append(counter + "." + text + "\n");
source.setText("");
}
else
if (action.equalsIgnoreCase("Clear"))
{
121
destination.setText("");
counter = 0;
}
}
}
Kt qu thc thi chng trnh:
V d 4: ListDemo
import java.awt.*;
public class ListDemo extends Frame
{ private List li;
private Label selected;
public ListDemo(String title)
{
super(title);
li = new List();
li.add("Monday");
li.add("Tuesday");
li.add("Wednesday");
li.add("Thursday");
li.add("Friday");
li.add("Saturday");
li.add("Sunday");
122
124
}
}
);
}// end of createmenu()
} // end of class
import java.awt.*;
import java.awt.event.*;
public class MessageBox
{
Dialog msgBox;
/* ---------------------------------------------------------------// Contructor cua lop MessageBox
// parentWindow: cua so cha
// title: Tieu de cua Dialog
// msg: chuoi thong bao
-----------------------------------------------------------------*/
public MessageBox(Frame parentWindow, String msg,
String title)
{
if (parentWindow == null)
{
Frame emptyWin = new Frame();
// Tao Modal Dialog (tham so thu 3:true)
msgBox = new Dialog(emptyWin, title, true);
}
else
{
msgBox = new Dialog(parentWindow, title, true);
}
// Doi tuong nhan dung de trinh bay cau thong bao
Label Message = new Label(msg);
// Thiet lap che do trinh bay layout cho cac doi tuong.
126
msgBox.setLayout(new FlowLayout());
// Dua nhan thong bao Label vao khung chua Dialog
msgBox.add(Message);
// Dua nut nhan OK vao trong khung chua Dialog
Button okButton = new Button("OK");
msgBox.add(okButton);
// Khai bao kich thuoc cua cua so thong bao
msgBox.setSize(200, 100);
// Xu ly tinh huong khi nguoi dung nhan nut OK
okButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
msgBox.setVisible(false);
}
}
);
}
public void show()
{
msgBox.show();
}
} // end of class MessageBox
Kt qu thc thi chng trnh:
127
128
5.2.Lung (Streams)
5.2.1.Khi nim lung
Tt c nhng hot ng nhp/xut d liu (nhp d liu t
bn phm, ly d liu t mng v, ghi d liu ra a, xut d
liu ra mn hnh, my in, ) u c quy v mt khi nim
gi l lung (stream). Lung l ni c th sn xut v tiu
th thng tin. Lung thng c h thng xut nhp trong
java gn kt vi mt thit b vt l. Tt c cc lung u c
chung mt nguyn tc hot ng ngay c khi chng c gn
kt vi cc thit b vt l khc nhau. V vy cng mt lp,
phng thc xut nhp c th dng chung cho cc thit b vt l
khc nhau. Chng hn cng mt phng thc c th dng
ghi d liu ra console, ng thi cng c th dng ghi d
liu xung mt file trn a. Java hin thc lung bng tp hp
cc lp phn cp trong gi java.io.
Java nh ngha hai kiu lung: byte v k t (phin bn gc
ch nh ngha kiu lung byte, v sau lung k t c
thm vo trong cc phin bn v sau).
Lung byte (hay lung da trn byte) h tr vic xut nhp
d liu trn byte, thng c dng khi c ghi d liu nh
phn.
Lung k t c thit k h tr vic xut nhp d liu kiu
k t (Unicode). Trong mt vi trng hp lung k t s dng
hiu qu hn lung byte, nhng mc h thng th tt c nhng
xut nhp u phi qui v byte. Lung k t h tr hiu qu ch
i vi vic qun l, x l cc k t.
5.2.2.Lung byte (Byte Streams)
Cc lung byte c nh ngha dng hai lp phn cp.
Mc trn cng l hai lp tru tng InputStream v
OutputStream. InputStream nh ngha nhng c im chung
cho nhng lung nhp byte. OutputStream m t cch x l ca
cc lung xut byte.
129
ngha
Buffered input stream
Buffered output stream
Input stream c d liu t mt mng
byte
Output stream ghi d liu n mt mng
byte
Lung nhp c nhng phng thc c
nhng kiu d liu chun trong java
Lung xut c nhng phng thc ghi
nhng kiu d liu chun trong java
FileInputStream
FileOutputStream
FilterInputStream
FilterOutputStream
InputStream
OutputStream
PipedInputStream
PipedOutputStream
PrintStream
PushbackInputStream
RandomAccessFile
SequenceInputStream
ngha
BufferedReader
BufferedWriter
CharArrayReader
CharArrayWriter
FileReader
FileWriter
FilterReader
FilterWriter
InputStreamReader
LineNumberReader
OutputStreamWriter
PipedReader
PipedWriter
PrintWriter
PushbackReader
Reader
StringReader
StringWriter
Writer
ngha
InputStream
int available( )
Tr v s lung bytes c th c c
t lung nhp
void close( )
boolean markSupported( )
int read( )
c buffer.length bytes v lu vo
trong vng nh buffer. Kt qu tr v
s bytes tht s c c
c numBytes bytes bt u t a ch
offset v lu vo trong vng nh
buffer. Kt qu tr v s bytes tht s
c c
void reset( )
Nhy con tr n v tr c xc nh
bi vic gi hm mark() ln sau cng.
OutputStream
void close( )
void flush( )
void write(int b)
136
return;
}
catch(ArrayIndexOutOfBoundsException exc)
{
System.out.println("Usage: ShowFile File");
return;
}
// read bytes until EOF is encountered
do
{
i = fin.read();
if(i != -1) System.out.print((char) i);
} while(i != -1);
fin.close();
}
}
Kt qu thc thi chng trnh:
140
ngha
Ghi xung lung mt gi tr
boolean c xc nh bi val.
Ghi xung lung mt byte c
xc nh bi val.
Ghi xung lung mt Char c
xc nh bi val.
Ghi xung lung mt gi tr
Double c xc nh bi val.
Ghi xung lung mt gi tr float
c xc nh bi val.
Ghi xung lung mt gi tr int
c xc nh bi val.
Ghi xung lung mt gi tr long
c xc nh bi val.
Ghi xung lung mt gi tr short
c xc nh bi val.
141
ngha
c mt gi tr boolean
c mt byte
c mt Char
c mt gi tr Double
c mt gi tr float
c mt gi tr int
c mt gi tr long
c mt gi tr short
{
System.out.println("Cannot open file.");
return;
}
try
{
System.out.println("Writing " + i);
dataOut.writeInt(i);
System.out.println("Writing " + d);
dataOut.writeDouble(d);
System.out.println("Writing " + b);
dataOut.writeBoolean(b);
System.out.println("Writing " + 12.2 * 7.4);
dataOut.writeDouble(12.2 * 7.4);
}
catch(IOException exc)
{
System.out.println("Write error.");
}
dataOut.close();
System.out.println();
// Now, read them back.
try
{
dataIn = new DataInputStream(
new FileInputStream("D:\\testdata"));
}
catch(IOException exc)
{
System.out.println("Cannot open file.");
return;
}
143
try
{
i = dataIn.readInt();
System.out.println("Reading " + i);
d = dataIn.readDouble();
System.out.println("Reading " + d);
b = dataIn.readBoolean();
System.out.println("Reading " + b);
d = dataIn.readDouble();
System.out.println("Reading " + d);
}
catch(IOException exc)
{ System.out.println("Read error.");
}
dataIn.close();
}
}
Kt qu thc thi chng trnh:
D liu ghi xung file D:\\testdata
Kt qu c v xut ra Console:
144
145
System.out.println("\n");
}
catch(IOException exc)
{
System.out.println("Error seeking or reading.");
}
raf.close();
}
}
Kt qu thc thi chng trnh:
ngha
147
Reader
abstract void close( )
void mark(int numChars)
boolean markSupported( )
int read( )
int read(char buffer[ ])
abstract int read(char
buffer[ ],
int offset,
int numChars)
boolean ready( )
void reset( )
long skip(long numChars)
Writer
abstract void close( )
abstract void flush( )
void write(int ch)
void write(byte buffer[ ])
abstract void write(char
buffer[ ],
int offset,
int numChars)
void write(String str)
void write(String str, int
offset,
int numChars)
ng lung
nh du v tr hin ti trn lung
Kim tra xem lung c h tr
thao tc nh du mark() khng?
c mt k t
c buffer.length k t cho vo
buffer
c numChars k t cho vo
vng m buffer ti v tr
buffer[offset]
Kim tra xem lung c c c
khng?
Di con tr nhp n v tr nh
du trc
B qua numChars ca lung nhp
ng lung xut. C li nm ra
IOException
Dn dp lung (buffer xut)
Ghi mt k t
Ghi mt mng cc k t
Ghi mt phn ca mng k t
Ghi mt chui
Ghi mt phn ca mt chui k t
148
V d: To mt BufferedReader gn vi Keyboard
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
Sau khi thc hin cu lnh trn, br l mt lung k t gn vi
Console thng qua System.in.
V d: Dng BufferedReader c tng k t t Console. Vic
c kt thc khi gp du chm (du chm kt thc chng
trnh).
import java.io.*;
class ReadChars
{
public static void main(String args[]) throws IOException
{
char c;
BufferedReader br = newBufferedReader(
149
new InputStreamReader(System.in));
System.out.println("Nhap chuoi ky tu,
gioi han dau cham.");
// read characters
do
{
c = (char) br.read();
System.out.println(c);
} while(c != '.');
}
}
Kt qu thc thi chng trnh:
do
{
str = br.readLine();
System.out.println(str);
} while(!str.equals("stop"));
}
}
Kt qu thc thi chng trnh:
double d = 123.67;
double r = i+d
pw.println("Using a PrintWriter.");
pw.println(i);
pw.println(d);
pw.println(i + " + " + d + " = " + r);
}
}
Kt qu thc thi chng trnh:
153
154
5.6.Lp File
Lp File khng phc v cho vic nhp/xut d liu trn
lung. Lp File thng c dng bit c cc thng tin
chi tit v tp tin cng nh th mc (tn, ngy gi to, kch
thc, )
java.lang.Object
+--java.io.File
Cc Constructor:
To i tng File t ng dn tuyt i
public File(String pathname)
v d: File f = new File(C:\\Java\\vd1.java);
To i tng File t tn ng dn v tn tp tin tch bit
public File(String parent, String child)
v d: File f = new File(C:\\Java, vd1.java);
To i tng File t mt i tng File khc
public File(File parent, String child)
v d:
File dir = new File (C:\\Java);
File f = new File(dir, vd1.java);
155
Ly tn ca i tng File
Ly ng dn ca tp tin
V d:
import java.awt.*;
import java.io.*;
public class FileDemo
{
public static void main(String args[])
{
Frame fr = new Frame ("File Demo");
fr.setBounds(10, 10, 300, 200);
fr.setLayout(new BorderLayout());
Panel p = new Panel(new GridLayout(1,2));
List list_C = new List();
list_C.add("C:\\");
File driver_C = new File ("C:\\");
String[] dirs_C = driver_C.list();
156
157
6.1.GII THIU
Hu ht cc chng trnh my tnh hin ny u t nhiu lin
quan n vic truy xut thng tin trong cc c s d liu. Chnh
v th nn cc thao tc h tr lp trnh c s d liu l chc
nng khng th thiu ca cc ngn ng lp trnh hin i, trong
c Java. JDBC API l th vin cha cc lp v giao din h
tr lp trnh vin Java kt ni v truy cp n cc h c s d
liu.
Phin bn JDBC API mi nht hin nay l 3.0, l mt thnh
phn trong J2SE, nm trong 2 gi th vin:
java.sql: cha cc lp v giao din c s ca
JDBC API.
javax.sql: cha cc lp v giao din m rng.
JDBC API cung cp c ch cho php mt chng trnh vit
bng Java c kh nng c lp vi cc h c s d liu, c kh
nng truy cp n cc h c s d liu khc nhau m khng cn
vit li chng trnh. JDBC n gin ha vic to v thi hnh
cc cu truy vn SQL trong chng trnh.
6.2.KIN TRC JDBC
Kin trc ca ca JDBC tng t nh kin trc ODBC do
Microsoft xy dng. Theo kin trc ny cc thao tc lin quan
n c s d liu trong chng trnh c thc hin thng qua
cc JDBC API. Sau cc JDBC API s truyn cc yu cu ca
chng trnh n b qun l trnh iu khin JDBC, l b phn
c nhim v la chn trnh iu khin thch hp c th lm
vic vi c s d liu c th m chng trnh mun kt ni.
158
159
6.3.2.JDBC URL
c th kt ni vi CSDL, chng ta cn xc nh ngun d
liu cng vi cc thng s lin quan di dng 1 URL nh sau:
jdbc:<subprotocol>:<dsn>:<others>
Trong :
<subprotocol>: c dng xc nh trnh iu
khin kt ni vi CSDL.
<dsn>: a ch CSDL. C php ca <dsn> ph
thuc vo tng trnh iu khin c th.
<other>: cc tham s khc
V d:
162
164
165
166
finally {
if( connection != null ) {
try { connection.close( ); }
catch( SQLException e ) {
e.printStackTrace( );
}
}
}
}
}
Sau khi bin dch on chng trnh trn, chng ta c th thc
hin kt ni vi CSDL bng cch thc thi cu lnh:
java TestConnection moviesDSN
Java Type
Boolean
Byte
Short
Int
Long
Float
Double
Double
168
DECIMAL
NUMERIC
CHAR
VARCHAR
LONGVARCHAR
DATE
TIME
TIMESTAMP
BINARY
VARBINARY
LONGVARBINARY
BLOB
CLOB
ARRAY
REF
STRUCT
java.math.BigDecimal
java.math.BigDecimal
java.lang.String
java.lang.String
java.lang.String
java.sql.Date
java.sql.Time
java.sql.Timestamp
byte[ ]
byte[ ]
byte[ ]
java.sql.Blob
Java.sql.Clob
Java.sql.Array
Java.sql.Ref
Java.sql.Struct
SQL Type
BIT
TINYINT
SMALLINT
INTEGER
BIGINT
REAL
DOUBLE
NUMERIC
VARCHAR or
LONGVARCHAR
VARBINARY or
LONGVARBINARY
DATE
TIME
TIMESTAMP
BLOB
CLOB
ARRAY
REF
169
java.sql.Struct
STRUCT
java.sql.Statement
Statement l mt trong 3 lp JDBC c bn dng th
hin mt cu lnh SQL. Mi thao tc trn CSDL c
thc hin thng qua 3 phng thc ca lp Statement.
Phng thc executeQuery() nhn vo 1 tham s l
chui ni dung cu ln SQL v tr v 1 i tng kiu
ResultSet. Phng thc ny c s dng trong cc
trng hp cu lnh SQL c tr v cc kt qu trong
CSDL.
Phng thc executeUpdate() cng nhn vo 1 tham s
l chui ni dung cu lnh SQL. Tuy nhin phng thc
ny ch s dng c i vi cc cy lnh cp nht ni
dung CSDL. Kt qu tr v l s dng b tc ng bi
cu lnh SQL.
170
import java.sql.*;
public class MovieDatabase{
private Connection connection;
private PreparedStatement findByNumber, updateCategory;
private CallableStatement findByCategory;
public MovieDatabase(Connection connection) throws
SQLException{
this.connection = connection;
}
public void showAllMovies(){
try{
Statement selectAll = connection.createStatement();
String sql = "SELECT * FROM Movies";
172
e.printStackTrace();
}
}
}
6.6.3.V d cp nht CSDL
Phng thc addMovie() bn di c thm vo lp
MovieDatabase nh ngha v d trn.
public class MovieDatabase{
176
a.
b.
c.
d.
2 bytes
4 bytes
8 bytes
16 bytes
178
9.
a.
b.
c.
d.
179
a.
b.
c.
d.
CardLayout
nullLayout
BorderLayout
SetLayout
a.
b.
c.
d.
GridLayout
FlowLayout
BorderLayout
GridBagLayout
a.
b.
c.
d.
cont.add(comp)
comp.add(cont)
cont.addComponent(comp)
cont.addAllComponents()
182
a. on m khng c li
b. iu kin ca cu lnh if phi c kiu boolean thay v
Boolean
c. Ch s ca cu lnh for l int thay v Integer
d. Cu b) v c)
29. Phng thc no sau y s lm cho gi tr bin s b thay
i
a. s.concat()
183
b. s.toUpperCase()
c. s.replace()
d. Cu a) v b) ng
30. Hy cho bit kt xut ca on chng trnh sau:
a.
b.
c.
d.
S1
S2
S1S2
S2S1
184
a.
b.
c.
d.
S1
S2
null
S1S2
185
12 :
theHolder.held++;
13 :
}
14 :
}
Gi tr in ra ca cu lnh dng th 6 l:
a. 0
b. 1
c. 100
d. 101
39. Cho on m sau:
1 : class Q7{
2:
public static void main(String args[]){
3:
double d = 12.3;
4:
Decrementer dec = new Decrementer();
5:
dec.decrement(d);
6:
System.out.println(d);
7:
}
8: }
9 : class Decrementer{
10 :
public void decrement(double decMe){
11 :
decMe = decMe 1.0;
12 :
}
13 :
}
Gi tr in ra ca cu lnh dng th 6 l:
a. 0.0
b. -1.0
c. 12.3
d. 11.3
40. Min gi tr ca bin kiu short l:
a. N ph thuc vo nn phn cng bn di
b. T 0 n 216 1
c. T -215 n 215 1
d. T -231 n 231 1
187
48. Cho bit kt qu sau khi thc hin chng trnh sau:
1 : public class Xor{
2:
public static void main(String[] args){
3:
byte b = 10;//00001010
4:
byte c = 15;//00001111
5:
b = (byte)(b ^ c);
6:
System.out.println(b contains + b);
7:
}
8: }
a. Kt qu l: b contains 10
b. Kt qu l: b contains 5
c. Kt qu l: b contains 250
d. Kt qu l: b contains 245
49. Cho bit kt qu sau khi bin dch v thi hnh chng trnh
sau:
1 : public class Conditional{
2:
public static void mai n(String[] args){
3:
int x = 4;
4:
System.out.println(value is +
5:
((x > 4 ? 99.99 : 9));
6:
}
7: }
a. Kt qu l: value is 99.99
b. Kt qu l: value is 9
c. Kt qu l: value is 9.0
d. Li bin dch ti dng s 5
50. Cho bit kt qu ca on m sau:
1 : int x = 3; int y = 10;
2 : System.out.println(y % x);
a. 0
b. 1
c. 2
d. 3
190
191
15 :
}
16 :
}
a. Chng trnh chy v cho kt qu x = 102
b. Chng trnh chy v cho kt qu x = 103
c. Chng trnh chy v cho kt qu x = 104
d. Tt c cc cu trn u sai
56. Cho on m sau:
1 : class SuperDuper
2: {
3:
void aMethod(){}
4: }
5:
6 : class Sub extends SuperDuper
7: {
8:
void aMethod(){}
9: }
Hy chn t kha ch phm vi hp l ng trc aMethod()
dng 8
a. default
b. protected
c. public
d. Tt c cc cu trn u ng
1:
2:
3:
4:
5:
6:
7:
8:
1 : package abcde;
2:
3 : class Parrot extends abcde.Bird{
4:
public void fly(){
5:
//
6:
}
7:
public int getRefCount(){
8:
return referenceCount;
9:
}
10 :
}
a. Li bin dch dng 4 tp tin Parrot.java v phng thc
fly() l protected trong lp cha v lp Bird v Parrot nm trong
cng package
b. Li bin dch dng 4 tp tin Parrot.java v phng thc
fly() l protected trong lp cha v public trong lp con.
c. Li bin dch dng 7 tp tin Parrot.java v phng thc
getRefCount() l static trong lp cha.
d. Chng trnh bin dch thnh cng nhng s pht sinh
Exception khi chy nu phng thc fly() ca lp Parrot khng
c gi
58. Chn pht biu ng cho lp Bird trn v lp Nightingale
sau:
1 : package singers;
2:
3 : class Nightingale extends abcde.Bird{
4:
Nightingale(){ refernceCount++;}
5:
6:
public static void main(String args[]){
7:
System.out.print(Before: + refernceCount);
8:
Nightingale florence = new Nightingale();
9:
System.out.print(After: + refernceCount);
10 :
florence.fly();
11 :
}
12 :
}
194
1:
2:
3:
a.
b.
c.
d.
byte b = 2;
byte b1 = 3;
b = b * b1;
Dng 1
Dng 2
Dng 3
Tt c cc cu trn u ng
197
Animal
Mammal
Dog
Cat
(implements
Washer)
Racoon
(implements
Washer)
Swamp
Thing
6 :wawa = sunflower;
7 :pogo = (SwampThing)wawa;
Hy chn pht biu
a. Dng 6 khng th bin dch; cn c mt php p kiu
chuyn t kiu Cat sang kiu Washer
b. Dng 7 khng th bin dch v khng th p t kiu
interface sang kiu class
c. on m s dch v chy nhng php p kiu dng 7 l
tha v c th b di
d. on m bin dch thnh cng nhng s pht sinh
Exceptiono dng 7 v kiu lp ca i tng trong bin wawa
lc thi hnh khng th chuyn sang kiu SwampThing
68. Cho on m sau
1 :Racoon rocky;
2 :SwampThing pogo;
3 :Washer w;
4:
5 :rocky = new Racooon();
6 :w = rocky;
7 :pogo = w;
a. Dng 6 s khng bin dch; cn phi c php p kiu
chuyn t kiu Racoon sang kiu Washer
b. Dng 7 s khng bin dch; cn c php p kiu chuyn
t kiu Washer sang kiu SwampThing
c. on m s bin dch nhng s pht sinh Exception dng
7 v chuyn i kiu khi thc thi t interface sang class l
khng c php
d. on m s bin dch v s pht sinh Exception dng 7 v
kiu lp ca w ti thi im thc thi khng th chuyn sang
kiu SwampThing
69. Cho on m sau:
1 : for (int i = 0; i < 2; i++){
2:
for (int j = 0; j < 3; j++){
199
3:
4:
5:
6:
7:
8: }
if (i == j){
continue;
}
System.out.println(i = + i + j = + j);
}
5:
6:
7:
8:
c.
1:
2:
3:
4:
d.
1:
2:
3:
4:
5:
int i = 3;
while (i){
System.out.println(i is + i);
}
int j = 0;
for(int k = 0; j + k != 10; j++, k++){
System.out.println(j is + j + k is + k);
}
int j = 0;
do{
System.out.println(j is + j++);
if (j == 3) { continue loop;}
}while (j < 10);
d. message four
73. Chn pht biu ng cho on m sau:
1 : int j = 2;
2 : switch (j){
3:
case 2:
4:
System.out.println(value is two);
5:
case 2 + 1:
6:
System.out.println(value is three);
7:
break;
8:
default:
9:
System.out.println(value is + j);
10 :
break;
11 :
}
a. on m khng hp l bi biu thc dng 5
b. Bin j trong cu trc switch() c th l mt trong cc kiu:
byte, short, int hoc long
c. Kt xut ca chng trnh ch l dng: value is two
d. Kt xut ca chng trnh ch l dng: value is two v
value is three
74. Cho bit kt qu sau khi dch v thc thi on chng trnh
sau:
1. import java.awt.*;
2.
3. public class Test extends Frame {
4. Test() {
5.
setSize(300,300);
6.
Button b = new Button(Apply);
7.
add(b);
8. }
9.
10.
public static void main(String args[]) {
11.
Test f = new Test();
12.
f.setVisible(true);
202
13.
}
14. }
a) C li bin dch ti dng 11 bi v constructor dng 4
khng khai bo public.
b) Chng trnh bin dch thnh cng nhng c s nm ra
exception khi thc thi cu lnh dng th 7.
c) Chng trnh hin th frame trng.
d) Chng trnh hin th 1 nt nhn (Button) s dng font ch
mc nh cho nhn ca Button. Button ch ln bao quanh
nhn ca n.
e) Chng trnh hin th nt nhn (Button) dng font ch mc
nh cho nhn nt. Nt nhn s chon tt c vng hin th ca
frame.
75. Nu 1 frame dng b qun l trnh by (layout manager) l
GridLayout v khng cha bt k panel hay container no khc
bn trong n th tt c nhng components khi a vo trong
frame ny c cng kch thc nh nhau (ngang, dc)?
a) ng.
b) Sai.
76. Nu 1 frame dng b qun l trnh by (layout manager)
mc nh v khng cha bt k panel no bn trong th tt c
nhng components bn trong frame l cng kch thc (ngang,
dc) ?
a) ng.
b) Sai.
77. Vi b qun l trnh by BorderLayout khng nht thit cc
vng phi c cha cc components.
a) ng.
b) Sai.
78. B qun l trnh by mc nh cho 1 khung cha kiu Panel
l:
203
a)
b)
c)
d)
FlowLayout
BorderLayout
GridLayout
GridBagLayout
204
205
13.b;
24.a;
35.c;
46.d;
57.c;
68.b;
79.b;