Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 1
Chng 3. Nn Tng Ca Ngơn Ng Java
Mc tiêu ca bài:
Kt thúc chng này bn có th :
c hiu mt chng trình vit bng Java
Nm bt nhng khái nim c bn v ngơn ng Java
Nhn dng các kiu d liu
Nhn dng các tốn t
nh dng kt qu xut liu (output) s dng các chui thốt (escape sequence)
Nhn bit các cu trúc lp trình c bn
3.1 Cu trúc mt chng trình Java
Phn đu ca mt chng trình Java xác đnh thơng tin mơi trng. làm đc vic này,
chng trình đc chia thành các lp hoc các gói riêng bit. Nhng gói này s đc ch dn
trong chng trình. Thơng tin này đc ch ra vi s tr giúp ca phát biu nhp “import”.
Mi chng trình có th có nhiu hn mt phát biu nhp. Di đây là mt ví d v phát biu
nhp:
import java. awt.*;
Phát biu này nhp gói ‘awt’. Gói này dùng đ to mt đi tng GUI. đây java là tên ca
th mc cha tt c các gói ‘awt’. Ký hiêu “*” ch tt c các lp thuc gói này.
Trong java, tt c các mã, bao gm các bin và cách khai báo nên đc thc hin trong phm
vi mt lp. Bi vy, tng khai báo lp đc tin hành sau mt phát biu nhp. Mt chng
trình đn gin có th ch có mt vài lp. Nhng lp này có th m rng thành các lp khác.
Mi phát biu đu đc kt thúc bi du chm phy “;”. Chng trình còn có th bao gm
các ghi chú, ch dn. Khi dch, chng trình dch s t loi b các ghi chú này.
Dng c bn ca mt lp đc xác đnh nh sau :
Class classname
{
/* ây là dòng ghi chú*/
int num1,num2; // Khai báo bin vi các du phy gia các bin
Show()
{
// Method body
statement (s); // Kt thúc bi du chm phy
}
}
“Token” là đn v riêng l, nh nht, có ý ngha đi vi trình biên dch ca mt chng trình
Java. Mt chng trình java là tp hp ca các “token”
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
2 Aptech 9/2002
Các “token” đc chia thành nm loi:
nh danh (identifiers): Dùng đ th hin tên bin, phng thc, hoc các lp.
Chng trình biên dch s xác đnh các tên này là duy nht trong chng trình. Khi
khai báo đnh danh cn lu ý các đim sau đây :
Mi đnh danh đc bt đu bng mt ch cái, mt ký t gch di hay du
đơla ($). Các ký t tip theo có th là ch cái, ch s, du $ hoc mt ký t
đc gch di.
Mi đnh danh ch đc cha hai ký t đc bit, tc là ch đc cha mt ký t
gch di và mt ký t du $. Ngồi ra khơng đc phép s dng bt k ký t
đc bit nào khác.
Các đnh danh khơng đc s dng du cách “ ” (space).
T khố/t d phòng (Keyword/Reserve Words): Mt s đnh danh đã đc Java xác
đnh trc. Ngi lp trình khơng đc phép s dng chúng nh mt đnh danh. Ví d
‘class’, ‘import’ là nhng t khố.
Ký t phân cách (separator): Thơng báo cho trình biên dch vic phân nhóm các phn
t ca chng trình. Mt vài ký t phân cách ca java đc ch ra di đây:
{ } ; ,
Ngun dng (literals): Là các giá tr khơng đi trong chng trình. Ngun dng có
th là các s, chui, các ký t hoc các giá tr Boolean. Ví d 21, ‘A’, 31.2, “This is a
sentence” là nhng ngun dng.
Các tốn t: Các q trình xác đnh, tính tốn đc hình thành bi d liu và các đi
tng. Java có mt tp ln các tốn t. Chúng ta s tho lun chi tit chng này.
3.2 Chng trình JAVA đu tiên
Chúng ta hãy bt đu t chng trình Java c đin nht vi mt ng dng đn gin. Chng
trình sau đây cho phép hin th mt thơng đip:
Chng trình 3.1
// This is a simple program called “First.java”
class First
{
public static void main(String args[])
{
System.out.println(“My first program in Java”);
}
}
Tên file đóng vai trò rt quan trng trong Java. Chng trình biên dch Java chp nhn phn
m rng
.java.
Trong Java các mã cn phi gom thành các lp. Bi vy tên lp và tên file có
th trùng nhau. Do đó Java phân bit rch ròi ch in hoa và ch in thng (case-sensitive).
Nói chung tên lp và tên file nên khác nhau. Ví d tên file ‘First’ và ‘first’ là hai file khác
nhau.
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 3
biên dch mã ngun, ta x dng trình biên dch
java
. Trình biên dch xác đnh tên ca file
ngun ti dòng lnh nh mơ t di đây:
C:\jdk1,2,1\bin>javac First.Java
Trình dch java to ra file First.class cha các mã “bytecodes”. Nhng mã này cha th thc
thi đc. chng trình thc thi đc ta cn dùng trình thơng dch “
java interpreter”
Lnh đc thc hin nh sau:
C:\jdk1,1,1\bin>java First
Kt qu s hin th trên màn hình nh sau:
My first program in Java
3.2.1
Phân tích chng trình đu tiên
// This is a simple program called “First.java”
Ký hiu “// ” dùng đ thuyt minh dòng lnh. Trình biên dch s b qua dòng thuyt minh này.
Java còn h tr thuyt minh nhiu dòng. Loi thuyt minh này có th bt đu vi /* và kt
thúc vi *
/
/*This is a comment that
extends to two lines*/
/ *This is
a multi line
comment */
Dòng k tip khai báo lp có tên ‘First’. to mt lp thêm ta bt đu vi t khố ‘class’,
k đn là tên lp (và cng chính là tên file).
class First
Tên lp nói chung nên bt đu bng ch in hoa.
T khố ‘class’ khai báo đnh ngha lp. ‘First’ là đnh danh cho tên ca lp. Mt đnh ngha
lp trn vn khơng nm gia hai ngoc móc (curly braces) đóng và m. Các ngoc này đánh
du bt đu và kt thúc mt khi các lp đc đnh nghiã.
public static void main(String args[ ])
ây là phng thc chính, t đây chng trình bt đu vic thc thi ca mình. Tt c các ng
dng java đu s dng mt phng pháp “
main”
này. Chúng ta s tìm hiu tng t trong phát
biu này.
T khố ‘public’ là mt ch đnh truy xut. Nó cho bit thành viên ca lp có th đc truy
xut t bt c đâu trong chng trình. Trong trng hp này, phng thc
“main”
đc khai
báo ‘public’, bi vy JVM có th truy xut phng thc này.
T khố
‘static’
cho phép
main
đc gi ti mà khơng cn to ra mt th hin (instance) ca
lp. Nhng trong trng hp này, bn copy ca phng thc
main
đc phép tn ti trên b
nh, thm chí nu khơng có mt th hin ca lp đó đc to ra. iu này rt quan trng vì
JVM trc tiên gi phng thc
main
đ thc thi chng trình. Vì lý do này phng thc
main
cn phi là tnh (static). Nó khơng ph thuc vào các th hin ca lp đc to ra.
T khố
‘void’
thơng báo cho máy tính bit rng phng thc s khơng tr li bt c giá tr
nào khi thc thi chng trình.
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
4 Aptech 9/2002
Phng thc
‘main()’
s thc hin mt s tác v nào đó, nó là đim mc mà t đó tt c các
ng dng Java đc khi đng.
‘String args[]’
là tham s dùng trong phng thc
‘main’
. Các bin s trong du ngoc đn
nhn tng thơng tin đc chuyn vào
‘main’
.
Nhng bin này là các tham s ca phng
thc. Thm chí ngay khi khơng có mt thơng tin nào đc chuyn vào
‘main’,
phng thc
vn đc thc hin vi các d liu rng – khơng có gì trong du ngoc đn.
‘args[]’
là mt mng kiu “String”. Các đi s (arguments) t các dòng lnh đc lu vào
mng. Mã nm gia du ngoc móc ca
‘main’
đc goi là
‘method block’
.
Các phát biu
đc thc thi trong
‘main’
cn đc ch rõ trong khi này.
System.out.println(“My first program in Java”);
Dòng lnh này hin th chui “My first program in Java” trên màn hình. Phát biu
‘println()’
to ra mt cng xut (output). Phng thc này cho phép hin th mt chui nu chui đó
đc đa vào vi s tr giúp ca ‘System.out’. đây ‘System’ là mt lp đã đnh trc, nó
cho phép truy nhp vào h thng và ‘out’ là mt chui xut đc kt ni vi du nhc
(console).
3.2.2
Truyn đi s trong dòng lnh
Các mã sau đây cho ta thy các tham s (argument) ca các dòng lnh đc tip nhn nh th
nào trong phng thc
‘main’.
Program 3.2
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 ]);
}
}
Hình v sau đây mơ t các đi tng đc thc hin ti các dòng lnh nh th nào
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 5
Khi gp mt du trng (space), có th hiu mt chui đc kt thúc. Nhng thơng thng mt
chui đc kt thúc khi gp du nháy kép. Hình v di đây s mơ t đìu này.
3.3 C bn v ngơn ng Java
Chng trình là tp hp nhng hành đng đc sp xp theo mt trt t nht đnh đ máy tính
có th thc hin đc. Chng trình có th đc coi nh mt tài liu hng dn có cha các
thành phn đc gi là các bin và danh sách các hng dn đc gi là phát biu. Các phát
biu nói cho máy tính bit cn phi làm gì vi các bin.
Bin là các giá tr có th đc thay đi ph thuc vào điu kin hoc thơng tin đc nhp vào
máy tính. Các bin đc xác đnh nh các kiu d liu. Kiu d liu là mt tp các d liu vi
các giá tr có các đc tính đã đc xác đnh trc.
Các phát biu dng điu khin quyt đnh vic thc thi tng phn trong chng trình. Chúng
còn quyt đnh trt t vic thc thi chng trình và s ln chng trình cn thc hin. Giá tr
np vào bin có th đnh hng cho chng trình hot đng.
Chúng ta hãy bt đu vi nhng khái nim nn tng ca ngơn ng Java nh lp và phng
thc, kiu d liu, bin, tốn t và cu trúc điu khin.
3.4 Các lp đi tng trong Java
Trong ngơn ng Java, lp là mt đn v mu có cha các s liu và các mã liên quan đn mt
thc th nào đó. Chúng hình thành nn tng ca tồn b ngơn ng Java. D liu hoc mã
ngun đc vit ra ln đt bên trong mt lp. Khi xác đnh mt lp, bn thc cht xác đnh
mt kiu d liu. Loi d liu mi này đc s dng đ xác đnh các bin mà ta thng gi là
“đi tng”. i tng là các th hin (instance) ca lp. Tt c các đi tng đu thuc v
mt lp có chung đc tính và hành vi. Mi lp xác đnh mt thc th, trong khi đó mi đi
tng là mt th hin thc s.
Bn còn có th đnh ngha mt lp bên trong. ây là mt lp kiu xp lng vào nhau, các th
hin (instance) ca lp này tn ti bên trong th hin ca mt lp che ph chúng. Nó chi phi
vic truy nhp đn các th hin thành phn ca th hin bao ph chúng.
3.4.1
Khai báo lp
Khi ban khai báo mt lp, bn cn xác đnh d liu và các phng thc xây dng nên lp đó.
Cú pháp:
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
6 Aptech 9/2002
class name
{ var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}
Trong đó:
class - T khố xác đnh lp
classname - Tên ca lp
var_datatype
- kiu d liu ca bin
variablename - Tên ca bin
met_datatype
- Kiu d liu tr v ca phng thc
methodname - Tên ca phng thc
parameter_lits
– Các tham s đc dùng trong phng thc
Hình 3.3 mơ t bng hình nh lp “Khách hàng”. Nhng đc đim ca lp xác đnh các khon
mc d liu đc lu ct, và các hành vi xác đnh các phng thc đc tính đn. i tng
ca lp này s lu l các chi tit cá nhân cu khách hàng.
Hình 3.3
Trong lp “Khách hàng”, các khon mc d liu bao gm:
Tên khách hàng
a ch
Kiu xe
Tên ngi bán hàng
Các phng thc gm:
Chp thun các chi tit ca khách hàng
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 7
In các hố đn
3.4.2
Các lp xp lng vào nhau (nested classes)
Vic đnh ngha mt lp bên trong mt lp khác đc gi là lp lng (nesting). Lp lng ch
nm trong phm vi lp bao quanh nó.Có hai loi lp lng:
Lp kiu tnh (static)
Lp kiu tnh đc đnh ngha vi t khố
static.
Lp tnh có th truy nhp vào các thành
viên ca lp ph nó thơng qua mt đi tng. Do vy lp tnh thng ít đc s dng.
Lp kiu đng (non static)
Lp bên trong (inner) thuc loi quan trng nht ca các lp kiu lng. ó là các lp non-
static. nh ngha lp bên trong ch có th xác đnh đc trong phm vi lp ngồi cùng. Lp
bên trong có th truy nhp tt c các thành viên ca lp bao nó, song khơng th ngc li.
on chng trình sau mơ t lp đc to lp ra sao và s dng nh th nào:
class Outer
{
//Outer class constructor
class Inner
{
//Inner class constructor
}
}
Cú pháp sau đây cho phép truy nhp vào lp bên trong
Outer.Inner obj=new Outer().new Inner();
3.5 Kiu d liu
Các ng dng ln u cu mt cng xut (output). Cng nhp, cng xut, và kt qu ca các
q trình tính tốn to ra các d liu. Trong mơi trng tính tốn, d liu đc phân lp theo
các tiêu chí khác nhau ph thuc vào bn cht ca nó. mi tiêu chí, d liu có mt tính cht
xác đnh và có mt kiu th hin riêng bit.
Java cung cp mt vài kiu d liu. Chúng đc h tr trên tt c các nn. Ví d, d liu loi
int (integer) ca Java đc th hin bng 4 bytes trong b nh ca tt c các loi máy bt lun
đâu chy chng trình Java. Bi vy các chng trình Java khơng cn phi thay đi khi
chy trên các nn khác nhau.
Trong Java kiu d liu đc chia thành hai loi:
Các kiu d liu ngun thy (primitive)
Các kiu d liu tham chiu (reference)
3.5.1
D liu kiu ngun thu
Java cung cp tám kiu d liu ngun thu
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
8 Aptech 9/2002
Kiu d
liu
dài
theo s bit
Phm vi Mơ t
byte 8 -128 đn 127 S liu kiu byte là mt loi đin
hình dùng đ lu tr mt giá tri
bng mt byte. Chúng đc s
dng rng rãi khi x lý mt file
vn bn
char 16 ‘\uoooo’ to ’u\ffff ’ Kiu Char s dng đ lu tên hoc
các d liu ký t .Ví d tên ngI
lao đng
Boolean 1 “True” hoc “False” D liu boolean dùng đ lu các
giá tr “úng” hoc “sai” Ví d :
Ngi lao đơng có đáp ng đc
u cu ca cơng ty hay khơng ?
short 16 -32768 đn 32767 Kiu short dùng đ lu các s có
giá tr nh di 32767.Ví d s
lng ngi lao đng.
Int 32 -2,147,483,648 đn
+2,147,483,648
Kiu int dùng đ lu mt s có giá
tr ln đn 2,147,483,648.Ví d
tng lng mà cơng ty phi tr cho
nhân viên.
long 64 -9,223,372,036’854,775,808
đn
+9,223,372,036’854,775,808
Kiu long đc s dng đ lu
mt s c giá tr rt ln đn
9,223,372,036’854,775,808 .Ví d
dân s ca mt nc
Float 32 -3.40292347E+38 đn
+3.40292347E+38
Kiu float dùng đ lu các s thp
phân đn 3.40292347E+38 Ví d :
giá thành sn phm
double 64 -1,79769313486231570E+308
đn
+1,79769313486231570E+30
8
Kiu double dùng đ lu các s
thp phân có giá tr ln đn
1,79769313486231570E+308 Ví
d giá tr tín dng ca ngân hàng
nhà nc.
Bng 3.1 D liu kiu ngun thu
3.5.2 Kiu d liu tham chiu (reference)
Trong Java có 3 kiu d liu tham chiu
Kiu d liu Mơ t
Mng (Array) Tp hp các d liu cùng loi.Ví d : tên sinh viên
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 9
Lp (Class) Tp hp các bin và các phng thc.Ví d : lp “Sinhviên”
cha tồn b các chi tit ca mt sinh viên và các phng thc
thc thi trên các chi tit đó.
Giao din
(Interface)
Là mt lp tru tng đc to ra đ b sung cho các k tha đa
lp trong Java.
Bng 3.2 D liu kiu tham chiu
3.5.3 Ép kiu (Type casting)
Có th bn s gp tình hung khi cng mt bin có dng
integer
vi mt bin có dng
float.
x lý tình hung này, Java s dng tính nng ép kiu (type casting) ca các phn mm
trc đó C, C++. Lúc này mt kiu d liu s chuyn đi sang kiu khác. Khi s dng tính
cht này, bn cn thn trng vì khi điu chnh d liu có th b mt.
on mã sau đây thc hin phép cng mt giá tr du phy đng (float) vi mt giá tr ngun
(integer).
Float c=34.896751F;
Int b = (int)c +10;
u tiên giá tr du phy đng
c
đc đi thành giá tr ngun 34. Sau đó nó đc cng vi
10 và kt qu là giá tr 44 đc lu vào
b.
S ni rng (widening) – q trình làm tròn s theo hng ni rng khơng làm mt thơng tin
v đ ln ca mi giá tr.Bin đi theo hng ni rng chuyn mt giá tr sang mt dng khác
có đ rng phù hp hn so vi ngun bn.Bin đi theo hng li thu nh li (narrowwing)
làm mt thơng tin v đ ln ca giá tr đc chuyn đi.Chúng khơng đc thc hin khi thc
hin phép gán. ví d trên giá tr thp phân sau du phy s b mt.
3.6 Các bin
Các ng dng s dng các bin đ lu tr các d liu cn thit hoc các d liu đc to ra
trong q trình thc thi chng trình. Các bin đc xác đnh bi mt tên bin và có mt
phm vi tác đng. Phm vi tác đng ca bin đc xác đnh mt cách rõ ràng trong chng
trình. Mi bin đc khai báo trong mt khi chng trình ch có tác đng trong phm vi khi
đó, khơng có ý ngha và khơng đc phép truy nhp t bên ngồi khi.
Vic khai báo mt bin bao gm 3 thành phn: kiu bin, tên ca nó và giá tr ban đu đc
gán cho bin (khơng bt buc). khai báo nhiu bin ta s dng du phy đ phân cách các
bin, Khi khai báo bin, ln nh rng Java phân bit ch thng và ch in hoa (case -
sensitive).
Cú pháp:
Datatype indentifier [=value] [, indentifier[=value]… ];
khai báo mt bin ngun (int) có tên là
counter
dùng đ lu giá tr ban đu là 1, ta có th
thc hin phát biu sau đây:
int counter = 1;
Java có nhng u cu hn ch đt tên bin mà bn có th gán giá tr vào. Nhng hn ch này
cng ging các hn ch khi đt tên cho các đnh danh mà ta đã tho lun các phn trc ca
chng này.
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
10 Aptech 9/2002
3.6.1 Khai báo mng
Mng đc dùng đ lu tr các khon mc (items) ca cùng mt kiu d liu trên nhng
vùng nh liên tc.Mi ln ta khai báo kích thc ca mt mng , nó s khơng b thay đi.D
liu trên mng có th là kiu d liu ngun thu hoc đi tng.Cng nh các bin ,ta có th
gán các giá tr vào mng ti các phn t đc to ra trong mng.Nu nhng giá tr này khơng
tn ti , Java s gán giá tr mc đnh vào tt c các phn t ca mng ph thuc vào kiu d
liu.Ví d : nu kiu d liu là ngun (int) thì giá tr mc đnh ban đu s là “zero”.
Mng có th đc khai báo bng ba cách :
Cách khai
báo
Mơ t Cú pháp Ví d
Ch đn
thun khai
báo
Ch đn thun khai
báo mng
Datatype identifier[]
char ch[ ]
;khai
báo mng ký t có
tên
ch
Khai báo và
to mng
Khai báo và cp
phát b nh cho các
phn t mng s
dng t “new’
Datatype identifier[]
=new datatype [size ]
char ch[] = new
char [10 ];
Khai b
áo mt mng
ch
và lu tr 10 ký t
Khai
báo,kin to
và khi to
Khai báo mng,cp
phát b nh cho nó
và gán các giá tr
ban đu cho các
phn t ca mng
Datatype identifier[]
= {value1,value2…valueN
};
char ch []
=
{‘A’,’B’,’C’,’D’
};
khai báo mng
ch
và lu 4 ch cái
kiu ký t
Bng 3.3 Khai báo mng
xác đnh tên và s phn t ca mng ta cn xem xét các phn t mng.S phn t bt đu
vi 0 cho phn t đu,1 cho phn t th hai và c tip nh vy.
3.7 Phng thc trong mt lp (method)
Phng thc xác đnh giao din cho phn ln các lp. Trong khi đó Java cho phép bn đnh
ngha các lp mà khơng cn phng thc. Bn cn đnh ngha phng thc truy cp d liu
mà bn đã lu trong mt lp.
Phng thc đc đnh ngha nh mt hành đng hoc mt tác v tht s ca đi tng. Nó
còn đc đnh ngha nh mt hành vi mà trên đó các thao tác cn thit đc thc thi.
Cú pháp
access_specifier modifier datatype method_name(parameter_list)
{ //body of method
}
Trong đó:
access_specifier: Ch đnh truy cp vào phng thc.
modifier: Cho phép bn gán các thuc tính cho phng thc.
datat
ype
:
K
iu d liu mà
g
iá t
r
ca nó
đ
c
p
hn
g
thc tr v.
N
u khơn
g
có mt
g
iá tr
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 11
nào đc tr v, kiu d liu có th là void.
method_name: Tên ca phng thc
parameter_list: Cha tên ca tham s đc s dng trong phng thc và kiu d liu. Du
phy đc dùng đ phân cách các tham s.
Ví d khai báo phng thc trong mt lp
on mã sau đây đnh ngha lp
Temp
cha mt giá tr ngun (int). Lp này cha hai
phng thc là:
show()
và
main()
. C hai phng thc đu có kh nng truy cp bên ngồi
lp khi chúng đc khai báo nh
public.
Nu chúng khơng tr v mt giá tr nào, kiu d liu
tr v đc đnh ngha nh kiu
void
.
Phng thc
show()
hin th mt giá tr ca bin
x.
phng thc
main(),
hai thí d ca đi
tng thuc lp
Temp
đc khai báo. i tng th nht gm giá tr mc đnh ca bin
x.
Nó đc hin th ngay khi gi phng thc
show()
ln đu tiên. Giá tr ca
x
đc thay đi
dùng cho cho đi tng th hai. Nó đc hin th khi ta gi phng thc
show()
ln th hai.
Chng trình 3.3
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
t1x=20;
t1.show();
}
}
3.7.1
Các ch đnh truy xut ca phng thc
Các ch đnh truy xut dùng đ gii hn kh nng truy nhp vào mt phng thc. Java cung
cp các ch đnh truy xut sau đây:
Cơng cng (Public)
: Phng thc có ch đnh truy xut public có th đc nhìn thy
t mi gói hoc mi lp.
Bo v (Protected):
Các lp m rng t lp hin hành trong cùng mt gói, hoc ti
các gói khác nhau có th truy cp các phng thc s dng ch đnh truy xut này.
Riêng t (Private):
Phng thc riêng t có th đc truy cp nh phng thc cơng
cng trên cùng mt lp.
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
12 Aptech 9/2002
3.7.2 Các b ngha loi phng thc
Các b ngha loi phng thc cho phép ta thit lp các thuc tính ca phng thc. Java
cung cp các b ngha sau:
Tnh (static)
: Các trng thái mà phng thc có th đc thay đi mà khơng cn đn
đi tng. Nó ch đc s dng đi vi các d liu và các phng thc tnh.
Tru tng (abstract)
: Ng ý rng phng thc khơng có mt mã c th (code) và
nó s đc b sung các lp con (subclass). Loi phng thc này đc s dng
trong các lp k tha.
Kt thúc (final)
: Phng thc khơng th đc tha k hoc ghi đè (Overridden).
T nhiên (native)
: Ch ra rng phn thân ca phng thc đc vit trên các ngơn
ng khác Java ví d C, hoc C++.
ng b (synchronized)
: S dng vi phng thc trong q trình thc thi threads.
Nó cho phép ch mt thread đc truy cp vào khi mã vào mt thi đim.
Linh hot (volatile)
: c s dng vi các bin đ thơng báo rng giá tr ca bin có
th đc thay đi vài ln khi thc thi chng trình và giá tr ca nó khơng đc ghi
vào thanh ghi.
Bng di đây ch ra ni mà các b ngha đc s dng:
B ngha Phng thc Bin Lp
public Yes Yes Yes
private Yes Yes Yes (Nested class)
protected Yes Yes Yes (Nested class)
abstrac Yes No Yes
final Yes Yes Yes
native Yes No No
volatile No Yes No
Bng 3.4 S dng các b ngha
3.7.3
Np chng (overloading) và Ghi đè (overriding) phng thc
Nhng phng thc đc np chng (
overload)
là nhng phng thc trong cùng mt lp,
có cùng mt tên song có danh sách các tham s khác nhau. S dng vic np chng phng
thc đ thc thi các phng thc ging nhau đi vi các kiu d liu khác nhau.Ví d phng
thc
swap()
có th b np chng (overload) bi các tham s ca kiu d liu khác nh
integer, double
và
float
Phng thc đc ghi đè (
overriden)
là phng thc có mt lp cha (superclasss) cng
nh các lp k tha. Phng thc này cho phép mt lp tng qt ch đnh các phng thc
s là phng thc chung trong các lp con.Ví d lp xác đnh phng thc tng qt ‘area()’.
Phng thc này có th đc hin thc trong mt lp con đ tìm din tích mt hình c th
nh hình ch nht, hình vng …
Phng thc np chng là mt hình thc đa hình (polymorphism) trong q trình biên dch
(compile). Còn phng thc ghi đè là mt hình thc đa hình trong q trình thc thi
(runtime).
on chng trình sau mơ t np chng phng thc đc thc hin nh th nào
//defined once
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 13
protected void perfomTask(double salary){
……….
System.out.prinln(“Salary is : ” + salary);
….
}
//overloaded –defined the second time with different parameters
protected void performTask(double salary,int bonus){
……
System.out.println(“Total Salary is: ” + salary+bonus);
….
}
Phng thc khi to (Contructor) ca lp có th b np chng (overload)
Phng thc ghi đè (Overriden) đc đnh ngha li các lp con. on mã sau đây mơ t
phng thc ghi đè
.
đây ta dùng t khố “this” biu th đi tng hin hành, trong khi đó ‘super’ đc s dng
đ ch đi tng lp cha.
Phng thc ghi đè khơng phi là phng thc tnh (static). Nó là loi đng (non-static).
Các đon mã sau đây mơ t vic thc thi ghi đè phng thc trong Java.
class SupperClass // To lp c bn
{
int a;
Super(Class() // constuctor
{
}
SuperClass(int b) //overloaded constructor
{
a=b;
}
class Subclass Extends SuperClass {// derriving a class
int a;
SubClass(int a) {//subclass constructor
Thí.a;
}
public void message(){ // overiding the base class message()
Sýtem.out.prinln(“In the sub class”);
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
14 Aptech 9/2002
}
}
Bây gi chúng ta s to ra mt đi tng lp cha và gán mt lp nh tham chiu đn nó nh
sau:
SuperClasss spObj=new Subclass(22);
Câu lnh ‘spObj.message’ thuc phng thc nhóm con. đây kiu đi tng đc gán cho
‘spObj’ s ch đc xác đnh khi chng trình thc thi. iu này đc bit di khái nim
‘liên kt đng’ (dinamic binding).
3.7.4
Phng thc khi to lp
Phng thc khi to lp là mt loi phng thc đc bit rt khác vi các kiu khi to c
bn. Nó khơng có kiu tr v. Nó có tên trùng vi tên ca lp. Hàm khi to lp thc thi nh
mt phng thc hoc mt chc nng bình thng song nó khơng tr v bt c mt giá tr
nào. Nói chung chúng đc dùng đ khi to các bin thành viên ca mt lp và nó đc gi
bt c lúc nào bn to ra đi tng ca lp đó.
Phng thc khi to lp có hai loi:
Tng minh (explicit): Bn có th lp trình nhng phng thc khi to lp khi đnh
ngha lp. Khi to mt đi tng ca mt lp, nhng giá tr mà bn truyn vào phi
khp vi nhng tham s ca phng thc khi to (s lng, th t và kiu d liu
ca các tham s)
Ngm đnh (Implicit): Khi bn khơng đnh ngha mt hàm khi to cho mt lp, JVM
cung cp mt giá tr mc đnh hay mt phng thc khi to ngm đnh.
Bn có th đnh ngha nhiu phng thc khi to cho mt lp. Ging nh các phng thc
khác, phng thc khi to lp có th b np chng (overload)
Ví d mt phng thc khi to:
on mã sau đây đnh ngha mt phng thc khi to tng minh (explicit) cho mt lp
Employee. Phng thc khi to bao gm tên và tui. Chúng đc coi nh các tham s và
gán các giá tr ca chúng vào các bin ca lp. Chú ý rng t khố ‘this’ đc s dng đ
tham chiu đn đi tng hin hành ca lp.
Chng trình 3.4
Class Employee
{ String name;
int age;
Employee (String var name,int varage)
{ this.name = varname;
this.age = varage;
}
public static void main (String arg[])
{
Employee e = new Employee (‘Allen”.30);
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 15
}
}
3.7.5
Phng thc khi to ca lp dn xut
Phng thc khi to ca mt lp dn xut có tên trùng vi tên ca lp dn xut đó. Câu lnh
dùng đ gi phng thc khi to ca mt lp dn xut phi là câu lnh đu tiên trên phng
thc khi to ca lp con đó. Lý do là lp cha hình thành trc khi có các lp dn xut.
3.8 Các tốn t
Mt chng trình thc t bao hàm vic to ra các bin. Các tốn t kt hp các giá tr đn
gin hoc các biu thc con thành nhng biu thc mi, phc tp hn và có th tr v các giá
tr. iu này có hàm ý to ra các tốn t lun lý, s hc, quan h và so sánh trên các biu
thc.
Java cung cp nhiu dng tốn t.Chúng bao gm:
Tốn t s hc
Tốn t dng bit
Tốn t quan h
Tốn t lun lý
Tốn t điu kin
Tóan t gán
3.8.1
Các tốn t s hc
Các tốn hng ca các tốn t s hc phi dng s. Các tốn hng kiu Boolean khơng s
dng đc, song các tốn hng ký t cho phép s dng loi tốn t này. Mt vài kiu tốn t
đc lit kê trong bng di đây.
Tốn t Mơ t
+ Cng.Tr v giá tr tng hai tốn hng
Ví d 5+3 tr v kt qu là 8
- Tr
Tr v giá tr khác nhau gia hai tốn hng hoc giá tr ph đnh ca tốn
hng. Ví d 5-3 kt qu là 2 và –10 tr v giá tr âm ca 10
* Nhân
Tr v giá tr là tích hai tốn hng. Ví d 5*3 kt qu là 15
/ Chia
Tr v giá tr là thng ca phép chia
Ví d 6/3 kt qu là 2
% Phép ly modulo
Giá tr tr v là phn d ca tốn t chia
Ví d 10%3 giá tr tr v là 1
++ Tng dn
Tng giá tr ca bin lên 1. Ví d a++ tng đng vi a= a+1
Gim dn
Gim giá tr ca bin 1 đn v. Ví d a tng đng vi a=a-1
+= Cng và gán giá tr
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
16 Aptech 9/2002
Cng các giá tr ca tốn hng bên trái vào tốn hng bên phi và gán giá
tr tr v vào tốn hng bên trái.
Ví d c+=a tng đng c=c+a
-= Tr và gán giá tr
Tr các giá tr ca tốn hng bên trái vào tốn tốn hng bên phi và gán
giá tr tr v vào tốn hng bên trái.
Ví d c-= a tng đng vI c=c-a
*= Nhân và gán
Nhân các giá tr ca tốn hng bên trái vi tốn tốn hng bên phi và gán
giá tr tr v vào tốn hng bên trái.
Ví d c *= a tng đng vi c=c*a
/= Chia và gán
Chia giá tr ca tốn hng bên trái cho tốn tốn hng bên phi và gán giá
tr tr v vào tốn hng bên trái.
Ví d c /= a tng đng vi c=c/a
%= Ly s d và gán
Chia giá tr ca tốn hng bên trái cho tốn tốn hng bên phi và gán giá
tr
s d
vào tốn hng bên trái.
V í d c%=a tng đng vi c=c%a
Bng 3.5 Các tốn t s hc
Chng trình sau mơ t vic s dng tốn t s hc
class ArithmeticOp {
public static void main(String args[]){
int p=5,q=12,r=20,s;
s=p+q;
System.out.println(“p+q is”+s);
s=p%q;
System.out.println(“p%q is”+s);
s*=r;
System.out.println(“s*=r is”+s);
System.out.println(“Value of p before operation is”+p);
p++;
System.out.println(“Value of p after operation is”+p);
double x=25.75,y=14.25,z;
z=x-y;
System .out.println(“x-y is” +z);
z-=2.50;
System.out.println(“z-=2.50 is “+z);
System.out.println(“Value of z before operation is”+z);
z ;
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 17
System.out.println(“Value of z after operation is”+z);
Z=x/y;
System .out.println(“x/y is” +z);
}
}
u ra ca chng trình là
p+q is 17
p%q is 5
s*=r is 100
Value of p before operation is 9.0
Value of z after operation is 8.0
x/y is 1.8070175438596429
3.8.2
Tốn t Bit
Các tốn t dang Bit cho phép ta to nhng Bit riêng bit trong các kiu d liu ngun thu.
Tốn t Bit da trên c s đi s Boolean. Nó thc hin phép tính trên hai đi s là các bit đ
to ra mt kt qa mi. Mt vài dng tốn t kiu này đc lit kê di đây
Tốn t Mơ t
~
Ph đnh (NOT)
Tr v giá tr ph đnh ca mt s .Ví d a=10 thì ~a=-10
&
Tốn t AND
Tr v giá tr là1 nu các tốn hng là 1 và 0 trong các trng hp
khác.Ví d nu a=1và b=0 thì a&b tr v giá tr 0
I
Tốn t OR
Tr v giá tr là1 nu mt trong các tốn hng là 1 và 0 trong các
trng hp khác.Ví d nu a=1và b=0 thì aIb tr v giá tr 1
^
Exclusive OR
Tr v giá tr là 1
nu ch mt
trong các tốn hng là 1 và tr v 0 trong
các trng hp khác. Ví d nu a=1và b=1 thì a^b tr v giá tr 0
>>
Dch sang phi
Chuyn tồn b các bít cu mt s sang phi mt v trí , gi ngun d
u
cu s âm.Tốn hng b ên trái l à s b dch còn s bên phi chi s v trí
mà các bít cn dch.
Ví d x=37 tc là 00011111 v y x>>2 s là 00000111.
<<
Dch sang trái
Chuyn tồn b các bít cu mt s sang trái mt v trí , gi ngun du
cu s âm.Tốn hng bên trái là s b dch còn s bên phi chi s v trí
mà các bít cn dch.
Ví d x=37 tc là 00011111 v y x>>2 s là 00000111
Bng 3.6 Các tốn t Bit
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
18 Aptech 9/2002
3.8.3 Các tốn t quan h
Các tốn t quan h kim tra mi quan h gia hai tốn hng. Kt qu ca mt biu thc có
dùng các tốn t quan h là nhng giá tr Boolean (logic “đúng” hoc “sai”). Các tốn t quan
h đc s dng trong các cu trúc điu khin.
Tốn t Mơ t
= = So sánh bng
Tốn t này kim tra s tng đng ca hai tốn hng
Ví d
if (a= =b)
tr v giá tri “True” nu giá tr ca a và b nh nhau
!= So sánh khác
Kim tra s khác nhau ca hai tốn hng
Ví d
if(a!=b)
Tr v giá tr “true” nu a khác b
> Ln hn
Kim tra giá tr ca tốn hng bên phi ln hn tốn hng bên trái hay
khơng
Ví du if(a>b) . Tr v giá tr “true” nu a ln hn b,ngc lai (nh hn
hoc bng ), tr v ‘False’
< Nh hn
Kim tra giá tr ca tốn hng bên phi có nh hn tốn hng bên trái
hay khơng
Ví du if(a<b) . Tr v giá tr “true” nu a nh hn b , ngc li (ln
hn hoc bng tr v ‘False’
>= Ln hn hoc bng
Kim tra giá tr ca tốn hng bên phi có ln hn hoc bng tốn hng
bên trái hay khơng
Ví du if(a>=b) . Tr v giá tr “true” nu a ln hn hoc bng b ,
ngc li (nh hn tr v ‘False’
<= Nh hn hoc bng
Kim tra giá tr ca tốn hng bên phi có nh hn hoc bng tốn
hng bên trái hay khơng
Ví du if(a<=b) . Tr v giá tr “true” nu a nh hn hoc bng b ,
ngc li (ln hn tr v ‘False’
Bng 3.6 Các tốn t quan h
on chng trình sau đây mơ t vic s dng các tốn t quan h
Chng trình 3.6
class RelationalOp {
public static void main (String args[]){
float a= 10.0F;
double b=10.0;
if (a= = b)
System.out.println(a and b are equal”);
else
System.out.println(“a and b are not equal”);
}
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 19
}
Kt qu chng trình s hin th
a and b are not equal
Trong chng trình trên c a và b là nhng s có du phy đng, dng d liu có khác nhau, a
là kiu float còn b là kiu double. Tuy vy chúng khơng phi là cùng mt kiu. Bi vy khi
kim tra giá tr ca các tốn hng, kiu d liu cn phi đc kim tra.
3.8.4
Các tốn t logic
Các tốn t logic làm vic vi các tốn hng Boolean. Mt vài tốn t kiu này đc ch ra
di đây
Tốn t Mơ t
&
Và (AND)
Tr v mt giá tr “úng” (True) nu ch khi c hai tốn t có giá tr
“True”
Ví d : if(sciencemarks>90) AND (mathmarks>75) thì gán “Y” - có
đ t cách ra nhp nhóm hc tp.
I
Hoc (OR)
Tr v giá tr “True” nu mt giá tr là True hoc c hai đu là True
Ví d Nu age_category is ‘Senior_citizen’OR special_category is
‘handicapped’ h giá tua l hành hoc c hai điu kin đu đc thc
hin
^
XOR
Tr v giá tr True nu ch mt trong các giá tr là True .các trng
hp còn li cho giá tr False (sai)
!
Tốn hng đn t NOT. Chuyn giá tr t True sang False và ngc
li.
Ví d : Q trình thc thi các dòng lnh tip tc cho đn khi kt thúc
chng trình.
Bng 3.8 Các tốn t logic
3.8.5
Các tốn t điu kin
Tốn t điu kin là mt loi tốn t đc bit vì nó gm ba thành phn cu thành biu thc
điu kin
Cú pháp :
biu thc 1?biu thc 2: biu thc 3;
biu thc 1
iu kin lun lý (Boolean) mà nó tr v giá tr True hoc False
biu thc 2
Giá tr tr v nu biu thc 1 xác đnh là True
biu thc 3
Giá tr tr v nu biu thc 1 xác đnh là False
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
20 Aptech 9/2002
Câu lnh sau đây kim tra có nhng ngi đi làm bng vé tháng có tui ln hn 65 khơng và
gán mt tiêu chun cho h. Nu nhng ngi này có tui là 55, tiêu chun gán là “Regular”
CommuterCategory = (CommuterAge>65)?”Senior Citizen”: “Regular”
3.8.6
Tốn t gán
Tốn t gán (=) dùng đ gán mt giá tr vào mt bin. Bn nên gán nhiu giá tr đn nhiu
bin cùng mt lúc.
Ví d đon lnh sau gán mt giá tr cho bin
num
. Thì giá tr trong bin
num
đc gán cho
nhiu bin trên mt dòng lnh đn.
int num = 20000;
int p,q,r,s;
p=q=r=s=num;
Dòng lnh cui cùng đc thc hin t phi qua trái. u tiên giá tr bin num đc gán
cho ‘s’, sau đó giá tr ca ‘s’ đc gán cho ‘r’ và c tip nh vy.
3.8.7
Th t u tiên ca các tốn t
Các biu thc đc vit ra nói chung gm nhiu tốn t. Th t u tiên quyt đnh trt t thc
hin các tốn t trên các biu thc. Bng di đây lit kê th t thc hin các tốn t trong
Java
Th t Tốn t
1. Các tốn t đn nh +,-,++,
2. Các tốn t s hc và các tốn t dch nh *,/,+,-,<<,>>
3. Các tốn t quan h nh >,<,>=,<=,= =,!=
4. Các tốn t logic và Bit nh &&,II,&,I,^
5. Các tốn t gán nh =,*=,/=,+=,-=
Bng 3.9 Trt t u tiên
3.8.8
Thay đi th t u tiên
thay đi th t u tiên trên mt biu thc, bn có th s dng du ngoc đn (). Tng
phn ca biu thc đc gii hn trong ngoc đn đc thc hin trc tiên. Nu bn s
dùng nhiu ngoc đn lng nhau thì tốn t nm trong ngoc đn phía trong s thc thi trc,
sau đó đn các vòng phía ngồi. Nhng trong phm vi mt ngoc đn thì quy tc th t u
tiên vn gi ngun tác dng.
3.9 nh dng d liu xut dùng chui thốt (Escape sequence)
Nhiu khi d liu xut đc hin th trên màn hình,chúng cn phi đc đnh dng.Vic đnh
dng này cn s tr giúp ca chui thốt (Escape sequences) do Java cung cp
Chúng ta hãy xem ví d di đây
System.out.println(“Happy\tBirthday”);
Cho ta d liu xut nh sau :
Happy Birthday
Bng di đây lit kê mt s chi thốt và cơng dng ca chúng
Chui thốt Mơ t
\n a con tr đn dòng k tip (Bt đu mt dòng mi )
\r a con tr v đu dòng (Ging ký t carriage return)
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 21
\t a con tr đn v trí Tab-Stop (Nh v trí Tab cu ký t)
\\ In vch chéo ngc (backslash)
\’ In du nháy đn (‘)
\” In du nháy kép (“)
Bng 3.10 Các chui thốt
3.10 iu khin lung
Tt c các mơi trng phát trin ng dng đu cung cp mt quy trình ra quyt đnh
(decision-making) đc gi là điu khin lung, nó trc típ thc thi các ng dng. iu
khin lung cho phép ngi phát trin phn mm to mt ng dng dùng đ kim tra s t ti
ca mt điu kin nào đó và ra quyt đnh phù hp vi điu kin đó.
Vòng lp là mt cu trúc chng trình giúp bn có th dùng đ thc hin vic lp li các hành
đng khi thc thi chng trình mà khơng cn vit li các đon chng trình nhiu ln.
iu khin r nhánh
Mnh đ if-else
Mnh đ swich-case
Vòng lp (Loops)
Vòng lp while
Vòng lp do-while
Vòng lp for
3.10.1
Câu lnh if-else
Câu lnh if-else kim tra kt qu ca mt điu kin và thc thi mt thao tác phù hp trên c
s kt qu đó. Dng ca câu lnh if-elsse rt đn gin
Cú pháp
If (conditon)
{ action 1 statements; }
else
{ action 2 statements; }
Condition
: Biu thc Boolean nh tốn t so sánh. Biu thc này tr v giá tr True hoc
False
action 1
: Các dòng lnh đc thc thi khi giá tr tr v là True
else
: T khố xác đnh các câu lnh tip sau đc thc hin nu điu kin tr v giá tr False
action 2:
Các câu lnh đc thc thi nu điu kin tr v giá tr False
on chng trình sau kim tra xem các s là chn hay l và hin th thơng báo phù hp
Chng trình 3.7
Class CheckNumber
{
public static void main(String args[]
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
22 Aptech 9/2002
{
int num =10;
if(num %2 = = 0
System.out.println (num+ “is an even number”);
else
System.out.println (num +”is an odd number”);
}}
đon chng trình trên num đc gán giá tr ngun là 10. Trong câu lnh
if-else
điu kin
num
%2 tr v giá tr 0 và điu kin thc hin là True. Thơng báo “10 is an even number”
đc in ra. Lu ý rng cho đn gi ch có mt câu lnh tác đng đc vit trong đon “if” và
“else”, bi vy khơng cn phi đc đa vào du ngoc móc.
Hình v di đây mơ t cách dùng
if-else
Tên Tom John Henry
iu kin
if
Giám đc
Else-if
else
Tng
lng
Hình 3.4 If-else
3.10.2
Câu lnh switch-case
Phát biu switch-case có th đc s dng ti câu lnh if-else. Nó đc s dng trong tình
hung mt biu thc cho ra nhiu kt qu. Vic s dng câu lnh switch-case cho phép vic
lp trình d dàng và đn gin hn.
Cú pháp
swich (expression)
{
case ‘value’:action 1 statement;
break;
case ‘value’:action 2 statement;
break;
:
:
case ‘valueN’: actionN statement (s);
}
expession
- Bin cha mt giá tr xác đnh
value1,value 2,….valueN
: Các giá tr hng s phù hp vi giá tr trên bin
expression
.
action1,action2…actionN
: Các phát biu đc thc thi khi mt trng hp tng ng có giá
tr True
break:
T khố đ
c s dn
g
đ b
q
ua tt c các câu lnh sau đó và
g
iành
q
u
y
n điu khin
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 23
cho cu trúc bên ngồi
switch
default
: T khóa tu chn đc s dng đ ch rõ các câu lnh nào đc thc hin ch khi tt
c các trng hp nhn giá tr False
default - action:
Các câu lnh đc thc hin ch khi tt c các trng hp nhn giá tr False
on chng trình sau xác đnh giá tr trong mt bin ngun và hin th ngày trong tun
đc th hin di dng chui. kim tra các giá tr nm trong khong 0 đn 6
chng trình s thơng báo li nu nm ngồi phm vi trên.
Chng trình 3.8
Class SwitchDemo
{
public static void main(String agrs[])
{
int day =4;
switch(day)
{
case 0 : system.out.println(“Sunday”);
break;
case 1 : System.out.println(“Monday”);
break;
case 2 : System.out.println(“Tuesday”);
break;
case 3 : System.out.println(“Wednesday”);
break;
case 4 : System.out.println(“Thursday”);
break;
case 5 :System.out.println(“Friday”);
break;
case 6 :System.out.println(“Satuday”);
break;
case 7 :System.out.println(“Saturday”);
break;
default :System.out.println(“Invalid day of week”);
}
}
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
24 Aptech 9/2002
}
Nu giá tr ca bín day là 4 ,chng trình s hin th
Thursday
,và c tip nh vy .
3.10.3
Vòng lp While
Vòng lp
while
đc s dng khi vòng lp đc thc hin mãi cho đn khi điu kin thc thi
vn là True. S lng vòng lp khơng đc xác đnh trc song nó s ph thuc vào tng
điu kin.
Cú pháp
while(condition)
{
action statement;
:
:
}
condition:
Biu thc Boolean, nó tr v giá tr True hoc False. Vòng lp s tip tc cho đn
khi nào giá tr True đc tr v.
action statement:
Các câu lnh đc thc hin nu
condition
nhn giá tr True
on chng trình sau tính giai tha ca s 5.Giai tha đc tính nh tích 5*4*3*2*1.
Chng trình 3.9
Class WhileDemo
{
Public static void main(String args[])
{
int a = 5,fact = 1;
while (a.>= 1)
{
fact *=a;
a ;
}
System.out.println(The Factorial of 5 is “+fact);
}
}
ví d trên, vòng lp đc thc thi cho đn khi điu kin a>=1 là
True
. Bin
a
đc khai
báo bên ngồi vòng lp và đc gán giá tr là 5. Cui mi vòng lp, giá tri ca
a
gim đi 1.
Sau nm vòng giá tr ca
a
bng 0. iu kin tr v giá tr False và vòng lp kt thúc. Kt qu
s đc hin th
“ The factorial of 5 is 120”
on chng trình sau hin thi tng ca 5 s chn đu tiên
Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
Aptech 9/2002 25
Chng trình 3.11
Class ForDemo
{
public static viod main(String args[])
{
int i=1,sum=0;
for (i=1;i<=10;i+=2)
sum+=i;
System.out.println (“sum of first five old numbers is “+sum);
}
}
ví d trên, i và sum là hai bin đc gán các giá tr đu là 1 và 0 tng ng. iu kin đc
kim tra và khi nó còn nhn giá tr True, câu lnh tác đng trong vòng lp đc thc hin.
Tip theo giá tr ca i đc tng lên 2 đ to ra s chn tip theo. Mt ln na, điu kin li
đc kim tra và câu lnh tác đng li đc thc hin. Sau nm vòng, i tng lên 11, điu kin
tr v giá tr False và vòng lp kt thúc. Thơng báo:
Sum of first five odd numbers is 25
đc hin th.
Tóm tt bài hc
•
Phát biu
import
đc s dng trong chng trình đ truy cp các gói Java.
•
Chng trình Java cha mt tp hp các gói. Chng trình có th cha các dòng gii
thích. Trình biên dch s b qua các dòng gii thích này.
•
“Token” là thành phn nh nht ca chng trình. Có nm loi “token”
inh danh (identifiers)
T khóa (keywords)
Ký t phân cách (separators)
Ngun dng (Literals)
Các tốn t
•
Java có các kiu cu trúc d liu nh kiu ngun thu mà ta đã bit. Các bin đc
khai báo cho tng kiu d liu xác đnh. Hãy thn trng khi khai báo tên bin đ loi
tr kh nng hn lon.
•
Java cung cp các ch đnh truy xut sau đây :
Cơng cng (public)
Bo v (protected)
Riêng t (private)
•
Java cung cp các b ngha (modifiers) sau đây:
Tnh (static)
Tru tng (abstract)
Final