Tải bản đầy đủ (.pdf) (60 trang)

lap trinh java - Chuơng 3. Nền Tảng Của Ngôn Ngữ Java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (819.96 KB, 60 trang )


Chương trình đào tạo kỹ thuật viên quốc tế
Core Java

Aptech 9/2002 1
Chng 3. Nn Tng Ca Ngơn Ng Java
Mc tiêu ca bài:
Kt thúc chng này bn có th :

c hiu mt chng trình vit bng Java

Nm bt nhng khái nim c bn v ngơn ng Java

Nhn dng các kiu d liu

Nhn dng các tốn t

nh dng kt qu xut liu (output) s dng các chui thốt (escape sequence)

Nhn bit các cu trúc lp trình c bn
3.1 Cu trúc mt chng trình Java
Phn đu ca mt chng trình Java xác đnh thơng tin mơi trng.  làm đc vic này,
chng trình đc chia thành các lp hoc các gói riêng bit. Nhng gói này s đc ch dn
trong chng trình. Thơng tin này đc ch ra vi s tr giúp ca phát biu nhp “import”.
Mi chng trình có th có nhiu hn mt phát biu nhp. Di đây là mt ví d v phát biu
nhp:
import java. awt.*;
Phát biu này nhp gói ‘awt’. Gói này dùng đ to mt đi tng GUI.  đây java là tên ca
th mc cha tt c các gói ‘awt’. Ký hiêu “*” ch tt c các lp thuc gói này.
Trong java, tt c các mã, bao gm các bin và cách khai báo nên đc thc hin trong phm
vi mt lp. Bi vy, tng khai báo lp đc tin hành sau mt phát biu nhp. Mt chng


trình đn gin có th ch có mt vài lp. Nhng lp này có th m rng thành các lp khác.
Mi phát biu đu đc kt thúc bi du chm phy “;”. Chng trình còn có th bao gm
các ghi chú, ch dn. Khi dch, chng trình dch s t loi b các ghi chú này.
Dng c bn ca mt lp đc xác đnh nh sau :
Class classname
{
/* ây là dòng ghi chú*/
int num1,num2; // Khai báo bin vi các du phy gia các bin
Show()
{
// Method body
statement (s); // Kt thúc bi du chm phy
}
}
“Token” là đn v riêng l, nh nht, có ý ngha đi vi trình biên dch ca mt chng trình
Java. Mt chng trình java là tp hp ca 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 nm loi:

nh danh (identifiers): Dùng đ th hin tên bin, phng thc, hoc các lp.
Chng trình biên dch s xác đnh các tên này là duy nht trong chng trình. Khi
khai báo đnh danh cn lu ý các đim sau đây :

Mi đnh danh đc bt đu bng mt ch cái, mt ký t gch di hay du
đơla ($). Các ký t tip theo có th là ch cái, ch s, du $ hoc mt ký t
đc gch di.


Mi đnh danh ch đc cha hai ký t đc bit, tc là ch đc cha mt ký t
gch di và mt ký t du $. Ngồi ra khơng đc phép s dng bt k ký t
đc bit nào khác.

Các đnh danh khơng đc s dng du cách “ ” (space).

T khố/t d phòng (Keyword/Reserve Words): Mt s đnh danh đã đc Java xác
đnh trc. Ngi lp trình khơng đc phép s dng chúng nh mt đnh danh. Ví d
‘class’, ‘import’ là nhng t khố.

Ký t phân cách (separator): Thơng báo cho trình biên dch vic phân nhóm các phn
t ca chng trình. Mt vài ký t phân cách ca java đc ch ra di đây:
{ } ; ,

Ngun dng (literals): Là các giá tr khơng đi trong chng trình. Ngun dng có
th là các s, chui, các ký t hoc các giá tr Boolean. Ví d 21, ‘A’, 31.2, “This is a
sentence” là nhng ngun dng.

Các tốn t: Các q trình xác đnh, tính tốn đc hình thành bi d liu và các đi
tng. Java có mt tp ln các tốn t. Chúng ta s tho lun chi tit  chng này.
3.2 Chng trình JAVA đu tiên
Chúng ta hãy bt đu t chng trình Java c đin nht vi mt ng dng đn gin. Chng
trình sau đây cho phép hin th mt thơng đip:
Chng 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ò rt quan trng trong Java. Chng trình biên dch Java chp nhn phn
m rng
.java.
Trong Java các mã cn phi gom thành các lp. Bi vy tên lp và tên file có
th trùng nhau. Do đó Java phân bit rch ròi ch in hoa và ch in thng (case-sensitive).
Nói chung tên lp 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 dch mã ngun, ta x dng trình biên dch
java
. Trình biên dch xác đnh tên ca file
ngun ti dòng lnh nh mơ t di đây:
C:\jdk1,2,1\bin>javac First.Java
Trình dch java to ra file First.class cha các mã “bytecodes”. Nhng mã này cha th thc
thi đc.  chng trình thc thi đc ta cn dùng trình thơng dch “
java interpreter”
Lnh đc thc hin nh sau:
C:\jdk1,1,1\bin>java First
Kt qu s hin th trên màn hình nh sau:
My first program in Java
3.2.1
Phân tích chng trình đu tiên
// This is a simple program called “First.java”
Ký hiu “// ” dùng đ thuyt minh dòng lnh. Trình biên dch s b qua dòng thuyt minh này.

Java còn h tr thuyt minh nhiu dòng. Loi thuyt minh này có th bt đu vi /* và kt
thúc vi *
/

/*This is a comment that
extends to two lines*/
/ *This is
a multi line
comment */
Dòng k tip khai báo lp có tên ‘First’.  to mt lp thêm ta bt đu vi t khố ‘class’,
k đn là tên lp (và cng chính là tên file).
class First
Tên lp nói chung nên bt đu bng ch in hoa.
T khố ‘class’ khai báo đnh ngha lp. ‘First’ là đnh danh cho tên ca lp. Mt đnh ngha
lp trn vn khơng nm gia hai ngoc móc (curly braces) đóng và m. Các ngoc này đánh
du bt đu và kt thúc mt khi các lp đc đnh nghiã.
public static void main(String args[ ])

ây là phng thc chính, t đây chng trình bt đu vic thc thi ca mình. Tt c các ng
dng java đu s dng mt phng pháp “
main”
này. Chúng ta s tìm hiu tng t trong phát
biu này.
T khố ‘public’ là mt ch đnh truy xut. Nó cho bit thành viên ca lp có th đc truy
xut t bt c đâu trong chng trình. Trong trng hp này, phng thc
“main”
đc khai
báo ‘public’, bi vy JVM có th truy xut phng thc này.
T khố
‘static’

cho phép
main
đc gi ti mà khơng cn to ra mt th hin (instance) ca
lp. Nhng trong trng hp này, bn copy ca phng thc
main
đc phép tn ti trên b
nh, thm chí nu khơng có mt th hin ca lp đó đc to ra. iu này rt quan trng vì
JVM trc tiên gi phng thc
main
đ thc thi chng trình. Vì lý do này phng thc
main
cn phi là tnh (static). Nó khơng ph thuc vào các th hin ca lp đc to ra.
T khố
‘void’
thơng báo cho máy tính bit rng phng thc s khơng tr li bt c giá tr
nào khi thc thi chng trình.

Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
4 Aptech 9/2002
Phng thc
‘main()’
s thc hin mt s tác v nào đó, nó là đim mc mà t đó tt c các
ng dng Java đc khi đng.
‘String args[]’
là tham s dùng trong phng thc
‘main’
. Các bin s trong du ngoc đn
nhn tng thơng tin đc chuyn vào
‘main’

.

Nhng bin này là các tham s ca phng
thc. Thm chí ngay khi khơng có mt thơng tin nào đc chuyn vào
‘main’,
phng thc
vn đc thc hin vi các d liu rng – khơng có gì trong du ngoc đn.
‘args[]’
là mt mng kiu “String”. Các đi s (arguments) t các dòng lnh đc lu vào
mng. Mã nm gia du ngoc móc ca
‘main’
đc goi là
‘method block’
.

Các phát biu
đc thc thi trong
‘main’
cn đc ch rõ trong khi này.
System.out.println(“My first program in Java”);
Dòng lnh này hin th chui “My first program in Java” trên màn hình. Phát biu
‘println()’
to ra mt cng xut (output). Phng thc này cho phép hin th mt chui nu chui đó
đc đa vào vi s tr giúp ca ‘System.out’.  đây ‘System’ là mt lp đã đnh trc, nó
cho phép truy nhp vào h thng và ‘out’ là mt chui xut đc kt ni vi du nhc
(console).
3.2.2
Truyn đi s trong dòng lnh
Các mã sau đây cho ta thy các tham s (argument) ca các dòng lnh đc tip nhn nh th
nào trong phng thc

‘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 tng đc thc hin ti các dòng lnh 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 gp mt du trng (space), có th hiu mt chui đc kt thúc. Nhng thơng thng mt
chui đc kt thúc khi gp du nháy kép. Hình v di đây s mơ t đìu này.

3.3 C bn v ngơn ng Java
Chng trình là tp hp nhng hành đng đc sp xp theo mt trt t nht đnh đ máy tính
có th thc hin đc. Chng trình có th đc coi nh mt tài liu hng dn có cha các
thành phn đc gi là các bin và danh sách các hng dn đc gi là phát biu. Các phát
biu nói cho máy tính bit cn phi làm gì vi các bin.
Bin là các giá tr có th đc thay đi ph thuc vào điu kin hoc thơng tin đc nhp vào
máy tính. Các bin đc xác đnh nh các kiu d liu. Kiu d liu là mt tp các d liu vi
các giá tr có các đc tính đã đc xác đnh trc.

Các phát biu dng điu khin quyt đnh vic thc thi tng phn trong chng trình. Chúng
còn quyt đnh trt t vic thc thi chng trình và s ln chng trình cn thc hin. Giá tr
np vào bin có th đnh hng cho chng trình hot đng.
Chúng ta hãy bt đu vi nhng khái nim nn tng ca ngơn ng Java nh lp và phng
thc, kiu d liu, bin, tốn t và cu trúc điu khin.
3.4 Các lp đi tng trong Java
Trong ngơn ng Java, lp là mt đn v mu có cha các s liu và các mã liên quan đn mt
thc th nào đó. Chúng hình thành nn tng ca tồn b ngơn ng Java. D liu hoc mã
ngun đc vit ra ln đt bên trong mt lp. Khi xác đnh mt lp, bn thc cht xác đnh
mt kiu d liu. Loi d liu mi này đc s dng đ xác đnh các bin mà ta thng gi là
“đi tng”. i tng là các th hin (instance) ca lp. Tt c các đi tng đu thuc v
mt lp có chung đc tính và hành vi. Mi lp xác đnh mt thc th, trong khi đó mi đi
tng là mt th hin thc s.
Bn còn có th đnh ngha mt lp bên trong. ây là mt lp kiu xp lng vào nhau, các th
hin (instance) ca lp này tn ti bên trong th hin ca mt lp che ph chúng. Nó chi phi
vic truy nhp đn các th hin thành phn ca th hin bao ph chúng.
3.4.1
Khai báo lp
Khi ban khai báo mt lp, bn cn xác đnh d liu và các phng thc xây dng nên lp đó.
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 lp
classname - Tên ca lp
var_datatype
- kiu d liu ca bin
variablename - Tên ca bin
met_datatype
- Kiu d liu tr v ca phng thc
methodname - Tên ca phng thc
parameter_lits
– Các tham s đc dùng trong phng thc
Hình 3.3 mơ t bng hình nh lp “Khách hàng”. Nhng đc đim ca lp xác đnh các khon
mc d liu đc lu ct, và các hành vi xác đnh các phng thc đc tính đn. i tng
ca lp này s lu l các chi tit cá nhân cu khách hàng.

Hình 3.3
Trong lp “Khách hàng”, các khon mc d liu bao gm:

Tên khách hàng

a ch

Kiu xe

Tên ngi bán hàng
Các phng thc gm:

Chp thun các chi tit ca 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 lp xp lng vào nhau (nested classes)
Vic đnh ngha mt lp bên trong mt lp khác đc gi là lp lng (nesting). Lp lng ch
nm trong phm vi lp bao quanh nó.Có hai loi lp lng:

Lp kiu tnh (static)
Lp kiu tnh đc đnh ngha vi t khố
static.
Lp tnh có th truy nhp vào các thành
viên ca lp ph nó thơng qua mt đi tng. Do vy lp tnh thng ít đc s dng.

Lp kiu đng (non static)
Lp bên trong (inner) thuc loi quan trng nht ca các lp kiu lng. ó là các lp non-
static. nh ngha lp bên trong ch có th xác đnh đc trong phm vi lp ngồi cùng. Lp
bên trong có th truy nhp tt c các thành viên ca lp bao nó, song khơng th ngc li.
on chng trình sau mơ t lp đc to lp ra sao và s dng nh th nào:
class Outer
{
//Outer class constructor
class Inner
{
//Inner class constructor
}
}
Cú pháp sau đây cho phép truy nhp vào lp bên trong

Outer.Inner obj=new Outer().new Inner();
3.5 Kiu d liu
Các ng dng ln u cu mt cng xut (output). Cng nhp, cng xut, và kt qu ca các
q trình tính tốn to ra các d liu. Trong mơi trng tính tốn, d liu đc phân lp theo
các tiêu chí khác nhau ph thuc vào bn cht ca nó.  mi tiêu chí, d liu có mt tính cht
xác đnh và có mt kiu th hin riêng bit.
Java cung cp mt vài kiu d liu. Chúng đc h tr trên tt c các nn. Ví d, d liu loi
int (integer) ca Java đc th hin bng 4 bytes trong b nh ca tt c các loi máy bt lun
 đâu chy chng trình Java. Bi vy các chng trình Java khơng cn phi thay đi khi
chy trên các nn khác nhau.
Trong Java kiu d liu đc chia thành hai loi:

Các kiu d liu ngun thy (primitive)

Các kiu d liu tham chiu (reference)
3.5.1
D liu kiu ngun thu
Java cung cp tám kiu d liu ngun thu

Chương trình đào tạo kỹ thuật viên quốc tế
Core Java
8 Aptech 9/2002
Kiu d
liu
 dài
theo s bit
Phm vi Mơ t
byte 8 -128 đn 127 S liu kiu byte là mt loi đin
hình dùng đ lu tr mt giá tri
bng mt byte. Chúng đc s

dng rng rãi khi x lý mt file
vn bn
char 16 ‘\uoooo’ to ’u\ffff ’ Kiu Char s dng đ lu tên hoc
các d liu ký t .Ví d tên ngI
lao đng
Boolean 1 “True” hoc “False” D liu boolean dùng đ lu các
giá tr “úng” hoc “sai” Ví d :
Ngi lao đơng có đáp ng đc
u cu ca cơng ty hay khơng ?
short 16 -32768 đn 32767 Kiu short dùng đ lu các s có
giá tr nh di 32767.Ví d s
lng ngi lao đng.
Int 32 -2,147,483,648 đn
+2,147,483,648
Kiu int dùng đ lu mt s có giá
tr ln đn 2,147,483,648.Ví d
tng lng mà cơng ty phi tr cho
nhân viên.
long 64 -9,223,372,036’854,775,808
đn
+9,223,372,036’854,775,808
Kiu long đc s dng đ lu
mt s c giá tr rt ln đn
9,223,372,036’854,775,808 .Ví d
dân s ca mt nc
Float 32 -3.40292347E+38 đn
+3.40292347E+38
Kiu float dùng đ lu các s thp
phân đn 3.40292347E+38 Ví d :
giá thành sn phm

double 64 -1,79769313486231570E+308
đn
+1,79769313486231570E+30
8
Kiu double dùng đ lu các s
thp phân có giá tr ln đn
1,79769313486231570E+308 Ví
d giá tr tín dng ca ngân hàng
nhà nc.
Bng 3.1 D liu kiu ngun thu
3.5.2 Kiu d liu tham chiu (reference)
Trong Java có 3 kiu d liu tham chiu
Kiu d liu Mơ t
Mng (Array) Tp hp các d liu cùng loi.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
Lp (Class) Tp hp các bin và các phng thc.Ví d : lp “Sinhviên”
cha tồn b các chi tit ca mt sinh viên và các phng thc
thc thi trên các chi tit đó.
Giao din
(Interface)
Là mt lp tru tng đc to ra đ b sung cho các k tha đa
lp trong Java.
Bng 3.2 D liu kiu tham chiu
3.5.3 Ép kiu (Type casting)
Có th bn s gp tình hung khi cng mt bin có dng
integer

vi mt bin có dng
float.
 x lý tình hung này, Java s dng tính nng ép kiu (type casting) ca các phn mm
trc đó C, C++. Lúc này mt kiu d liu s chuyn đi sang kiu khác. Khi s dng tính
cht này, bn cn thn trng vì khi điu chnh d liu có th b mt.
on mã sau đây thc hin phép cng mt giá tr du phy đng (float) vi mt giá tr ngun
(integer).
Float c=34.896751F;
Int b = (int)c +10;
u tiên giá tr du phy đng
c
đc đi thành giá tr ngun 34. Sau đó nó đc cng vi
10 và kt qu là giá tr 44 đc lu vào
b.

S ni rng (widening) – q trình làm tròn s theo hng ni rng khơng làm mt thơng tin
v đ ln ca mi giá tr.Bin đi theo hng ni rng chuyn mt giá tr sang mt dng khác
có đ rng phù hp hn so vi ngun bn.Bin đi theo hng li thu nh li (narrowwing)
làm mt thơng tin v đ ln ca giá tr đc chuyn đi.Chúng khơng đc thc hin khi thc
hin phép gán.  ví d trên giá tr thp phân sau du phy s b mt.
3.6 Các bin
Các ng dng s dng các bin đ lu tr các d liu cn thit hoc các d liu đc to ra
trong q trình thc thi chng trình. Các bin đc xác đnh bi mt tên bin và có mt
phm vi tác đng. Phm vi tác đng ca bin đc xác đnh mt cách rõ ràng trong chng
trình. Mi bin đc khai báo trong mt khi chng trình ch có tác đng trong phm vi khi
đó, khơng có ý ngha và khơng đc phép truy nhp t bên ngồi khi.
Vic khai báo mt bin bao gm 3 thành phn: kiu bin, tên ca nó và giá tr ban đu đc
gán cho bin (khơng bt buc).  khai báo nhiu bin ta s dng du phy đ phân cách các
bin, Khi khai báo bin, ln nh rng Java phân bit ch thng và ch in hoa (case -
sensitive).

Cú pháp:
Datatype indentifier [=value] [, indentifier[=value]… ];
 khai báo mt bin ngun (int) có tên là
counter
dùng đ lu giá tr ban đu là 1, ta có th
thc hin phát biu sau đây:
int counter = 1;
Java có nhng u cu hn ch đt tên bin mà bn có th gán giá tr vào. Nhng hn ch này
cng ging các hn ch khi đt tên cho các đnh danh mà ta đã tho lun  các phn trc ca
chng 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 mng
Mng đc dùng đ lu tr các khon mc (items) ca cùng mt kiu d liu trên nhng
vùng nh liên tc.Mi ln ta khai báo kích thc ca mt mng , nó s khơng b thay đi.D
liu trên mng có th là kiu d liu ngun thu hoc đi tng.Cng nh các bin ,ta có th
gán các giá tr vào mng ti các phn t đc to ra trong mng.Nu nhng giá tr này khơng
tn ti , Java s gán giá tr mc đnh vào tt c các phn t ca mng ph thuc vào kiu d
liu.Ví d : nu kiu d liu là ngun (int) thì giá tr mc đnh ban đu s là “zero”.
Mng có th đc khai báo bng ba cách :
Cách khai
báo
Mơ t Cú pháp Ví d
Ch đn
thun khai
báo
Ch đn thun khai
báo mng

Datatype identifier[]
char ch[ ]
;khai
báo mng ký t có
tên
ch

Khai báo và
to mng
Khai báo và cp
phát b nh cho các
phn t mng s
dng t “new’
Datatype identifier[]
=new datatype [size ]
char ch[] = new
char [10 ];
Khai b
áo mt mng
ch

và lu tr 10 ký t
Khai
báo,kin to
và khi to
Khai báo mng,cp
phát b nh cho nó
và gán các giá tr
ban đu cho các
phn t ca mng

Datatype identifier[]
= {value1,value2…valueN
};
char ch []
=
{‘A’,’B’,’C’,’D’
};
khai báo mng
ch
và lu 4 ch cái
kiu ký t
Bng 3.3 Khai báo mng
 xác đnh tên và s phn t ca mng ta cn xem xét các phn t mng.S phn t bt đu
vi 0 cho phn t đu,1 cho phn t th hai và c tip nh vy.
3.7 Phng thc trong mt lp (method)
Phng thc xác đnh giao din cho phn ln các lp. Trong khi đó Java cho phép bn đnh
ngha các lp mà khơng cn phng thc. Bn cn đnh ngha phng thc truy cp d liu
mà bn đã lu trong mt lp.
Phng thc đc đnh ngha nh mt hành đng hoc mt tác v tht s ca đi tng. Nó
còn đc đnh ngha nh mt hành vi mà trên đó các thao tác cn thit đc thc thi.
Cú pháp
access_specifier modifier datatype method_name(parameter_list)
{ //body of method
}
Trong đó:
access_specifier: Ch đnh truy cp vào phng thc.
modifier: Cho phép bn gán các thuc tính cho phng thc.
datat
ype
:

K
iu d liu mà
g
iá t
r
 ca nó
đ
c
p
hn
g
thc tr v.
N
u khơn
g
có mt
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, kiu d liu có th là void.
method_name: Tên ca phng thc
parameter_list: Cha tên ca tham s đc s dng trong phng thc và kiu d liu. Du
phy đc dùng đ phân cách các tham s.

Ví d khai báo phng thc trong mt lp
on mã sau đây đnh ngha lp

Temp
cha mt giá tr ngun (int). Lp này cha hai
phng thc là:
show()

main()
. C hai phng thc đu có kh nng truy cp bên ngồi
lp khi chúng đc khai báo nh
public.
Nu chúng khơng tr v mt giá tr nào, kiu d liu
tr v đc đnh ngha nh kiu
void
.
Phng thc
show()
hin th mt giá tr ca bin
x.
 phng thc
main(),
hai thí d ca đi
tng thuc lp
Temp
đc khai báo. i tng th nht gm giá tr mc đnh ca bin
x.
Nó đc hin th ngay khi gi phng thc
show()
ln đu tiên. Giá tr ca
x
đc thay đi
dùng cho cho đi tng th hai. Nó đc hin th khi ta gi phng thc

show()
ln th hai.

Chng 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 xut ca phng thc
Các ch đnh truy xut dùng đ gii hn kh nng truy nhp vào mt phng thc. Java cung
cp các ch đnh truy xut sau đây:
 Cơng cng (Public)
: Phng thc có ch đnh truy xut public có th đc nhìn thy
t mi gói hoc mi lp.
 Bo v (Protected):
Các lp m rng t lp hin hành trong cùng mt gói, hoc ti
các gói khác nhau có th truy cp các phng thc s dng ch đnh truy xut này.
 Riêng t (Private):
Phng thc riêng t có th đc truy cp nh phng thc cơng
cng trên cùng mt lp.


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 ngha loi phng thc
Các b ngha loi phng thc cho phép ta thit lp các thuc tính ca phng thc. Java
cung cp các b ngha sau:
 Tnh (static)
: Các trng thái mà phng thc có th đc thay đi mà khơng cn đn
đi tng. Nó ch đc s dng đi vi các d liu và các phng thc tnh.
 Tru tng (abstract)
: Ng ý rng phng thc khơng có mt mã c th (code) và
nó s đc b sung  các lp con (subclass). Loi phng thc này đc s dng
trong các lp k tha.
 Kt thúc (final)
: Phng thc khơng th đc tha k hoc ghi đè (Overridden).
 T nhiên (native)
: Ch ra rng phn thân ca phng thc đc vit trên các ngơn
ng khác Java ví d C, hoc C++.

ng b (synchronized)
: S dng vi phng thc trong q trình thc thi threads.
Nó cho phép ch mt thread đc truy cp vào khi mã vào mt thi đim.
 Linh hot (volatile)
: c s dng vi các bin đ thơng báo rng giá tr ca bin có
th đc thay đi vài ln khi thc thi chng trình và giá tr ca nó khơng đc ghi
vào thanh ghi.
Bng di đây ch ra ni mà các b ngha đc s dng:
B ngha Phng thc Bin Lp
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
Bng 3.4 S dng các b ngha
3.7.3
Np chng (overloading) và Ghi đè (overriding) phng thc
Nhng phng thc đc np chng (
overload)
là nhng phng thc trong cùng mt lp,
có cùng mt tên song có danh sách các tham s khác nhau. S dng vic np chng phng
thc đ thc thi các phng thc ging nhau đi vi các kiu d liu khác nhau.Ví d phng
thc
swap()
có th b np chng (overload) bi các tham s ca kiu d liu khác nh
integer, double

float

Phng thc đc ghi đè (
overriden)
là phng thc có mt  lp cha (superclasss) cng
nh  các lp k tha. Phng thc này cho phép mt lp tng qt ch đnh các phng thc
s là phng thc chung trong các lp con.Ví d lp xác đnh phng thc tng qt ‘area()’.
Phng thc này có th đc hin thc trong mt lp con đ tìm din tích mt hình c th
nh hình ch nht, hình vng …
Phng thc np chng là mt hình thc đa hình (polymorphism) trong q trình biên dch
(compile). Còn phng thc ghi đè là mt hình thc đa hình trong q trình thc thi

(runtime).
on chng trình sau mơ t np chng phng thc đc thc hin 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);
….
}
Phng thc khi to (Contructor) ca lp có th b np chng (overload)
Phng thc ghi đè (Overriden) đc đnh ngha li  các lp con. on mã sau đây mơ t
phng thc ghi đè
.
 đây ta dùng t khố “this” biu th đi tng hin hành, trong khi đó ‘super’ đc s dng
đ ch đi tng lp cha.
Phng thc ghi đè khơng phi là phng thc tnh (static). Nó là loi đng (non-static).
Các đon mã sau đây mơ t vic thc thi ghi đè phng thc trong Java.
class SupperClass // To lp c bn
{
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 to ra mt đi tng lp cha và gán mt lp nh tham chiu đn nó nh
sau:
SuperClasss spObj=new Subclass(22);

Câu lnh ‘spObj.message’ thuc phng thc nhóm con.  đây kiu đi tng đc gán cho
‘spObj’ s ch đc xác đnh khi chng trình thc thi. iu này đc bit di khái nim
‘liên kt đng’ (dinamic binding).
3.7.4
Phng thc khi to lp
Phng thc khi to lp là mt loi phng thc đc bit rt khác vi các kiu khi to c

bn. Nó khơng có kiu tr v. Nó có tên trùng vi tên ca lp. Hàm khi to lp thc thi nh
mt phng thc hoc mt chc nng bình thng song nó khơng tr v bt c mt giá tr
nào. Nói chung chúng đc dùng đ khi to các bin thành viên ca mt lp và nó đc gi
bt c lúc nào bn to ra đi tng ca lp đó.
Phng thc khi to lp có hai loi:

Tng minh (explicit): Bn có th lp trình nhng phng thc khi to lp khi đnh
ngha lp. Khi to mt đi tng ca mt lp, nhng giá tr mà bn truyn vào phi
khp vi nhng tham s ca phng thc khi to (s lng, th t và kiu d liu
ca các tham s)

Ngm đnh (Implicit): Khi bn khơng đnh ngha mt hàm khi to cho mt lp, JVM
cung cp mt giá tr mc đnh hay mt phng thc khi to ngm đnh.
Bn có th đnh ngha nhiu phng thc khi to cho mt lp. Ging nh các phng thc
khác, phng thc khi to lp có th b np chng (overload)
Ví d mt phng thc khi to:
on mã sau đây đnh ngha mt phng thc khi to tng minh (explicit) cho mt lp
Employee. Phng thc khi to bao gm tên và tui. Chúng đc coi nh các tham s và
gán các giá tr ca chúng vào các bin ca lp. Chú ý rng t khố ‘this’ đc s dng đ
tham chiu đn đi tng hin hành ca lp.
Chng 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
Phng thc khi to ca lp dn xut
Phng thc khi to ca mt lp dn xut có tên trùng vi tên ca lp dn xut đó. Câu lnh
dùng đ gi phng thc khi to ca mt lp dn xut phi là câu lnh đu tiên trên phng
thc khi to ca lp con đó. Lý do là lp cha hình thành trc khi có các lp dn xut.
3.8 Các tốn t
Mt chng trình thc t bao hàm vic to ra các bin. Các tốn t kt hp các giá tr đn
gin hoc các biu thc con thành nhng biu thc mi, phc tp hn và có th tr v các giá
tr. iu này có hàm ý to ra các tốn t lun lý, s hc, quan h và so sánh trên các biu
thc.
Java cung cp nhiu dng tốn t.Chúng bao gm:

Tốn t s hc

Tốn t dng bit

Tốn t quan h

Tốn t lun lý

Tốn t điu kin


Tóan t gán
3.8.1
Các tốn t s hc
Các tốn hng ca các tốn t s hc phi  dng s. Các tốn hng kiu Boolean khơng s
dng đc, song các tốn hng ký t cho phép s dng loi tốn t này. Mt vài kiu tốn t
đc lit kê trong bng di đây.
Tốn t Mơ t
+ Cng.Tr v giá tr tng hai tốn hng
Ví d 5+3 tr v kt qu là 8
- Tr
Tr v giá tr khác nhau gia hai tốn hng hoc giá tr ph đnh ca tốn
hng. Ví d 5-3 kt qu là 2 và –10 tr v giá tr âm ca 10
* Nhân
Tr v giá tr là tích hai tốn hng. Ví d 5*3 kt qu là 15
/ Chia
Tr v giá tr là thng ca phép chia
Ví d 6/3 kt qu là 2
% Phép ly modulo
Giá tr tr v là phn d ca tốn t chia
Ví d 10%3 giá tr tr v là 1
++ Tng dn
Tng giá tr ca bin lên 1. Ví d a++ tng đng vi a= a+1
Gim dn
Gim giá tr ca bin 1 đn v. Ví d a tng đng vi a=a-1
+= Cng 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
Cng các giá tr ca tốn hng bên trái vào tốn hng bên phi và gán giá

tr tr v vào tốn hng bên trái.
Ví d c+=a tng đng c=c+a
-= Tr và gán giá tr
Tr các giá tr ca tốn hng bên trái vào tốn tốn hng bên phi và gán
giá tr tr v vào tốn hng bên trái.
Ví d c-= a tng đng vI c=c-a
*= Nhân và gán
Nhân các giá tr ca tốn hng bên trái vi tốn tốn hng bên phi và gán
giá tr tr v vào tốn hng bên trái.
Ví d c *= a tng đng vi c=c*a
/= Chia và gán
Chia giá tr ca tốn hng bên trái cho tốn tốn hng bên phi và gán giá
tr tr v vào tốn hng bên trái.
Ví d c /= a tng đng vi c=c/a
%= Ly s d và gán
Chia giá tr ca tốn hng bên trái cho tốn tốn hng bên phi và gán giá
tr
s d
vào tốn hng bên trái.
V í d  c%=a tng đng vi c=c%a
Bng 3.5 Các tốn t s hc
Chng trình sau mơ t vic s dng tốn t s hc
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 ca chng 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 to nhng Bit riêng bit trong các kiu d liu ngun thu.
Tốn t Bit da trên c s đi s Boolean. Nó thc hin phép tính trên hai đi s là các bit đ
to ra mt kt qa mi. Mt vài dng tốn t kiu này đc lit kê di đây
Tốn t Mơ t
~
Ph đnh (NOT)
Tr v giá tr ph đnh ca mt s .Ví d a=10 thì ~a=-10
&
Tốn t AND
Tr v giá tr là1 nu các tốn hng là 1 và 0 trong các trng hp
khác.Ví d nu a=1và b=0 thì a&b tr v giá tr 0
I
Tốn t OR
Tr v giá tr là1 nu mt trong các tốn hng là 1 và 0 trong các
trng hp khác.Ví d nu a=1và b=0 thì aIb tr v giá tr 1
^
Exclusive OR
Tr v giá tr là 1
nu ch mt
trong các tốn hng là 1 và tr v 0 trong
các trng hp khác. Ví d nu a=1và b=1 thì a^b tr v giá tr 0
>>
Dch sang phi
Chuyn tồn b các bít cu mt s sang phi mt v trí , gi ngun d
u
cu s âm.Tốn hng b ên trái l à s b dch còn s bên phi chi s v trí
mà các bít cn dch.
Ví d x=37 tc là 00011111 v y x>>2 s là 00000111.
<<
Dch sang trái

Chuyn tồn b các bít cu mt s sang trái mt v trí , gi ngun du
cu s âm.Tốn hng bên trái là s b dch còn s bên phi chi s v trí
mà các bít cn dch.
Ví d x=37 tc là 00011111 v y x>>2 s là 00000111
Bng 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 kim tra mi quan h gia hai tốn hng. Kt qu ca mt biu thc có
dùng các tốn t quan h là nhng giá tr Boolean (logic “đúng” hoc “sai”). Các tốn t quan
h đc s dng trong các cu trúc điu khin.
Tốn t Mơ t
= = So sánh bng
Tốn t này kim tra s tng đng ca hai tốn hng
Ví d
if (a= =b)
tr v giá tri “True” nu giá tr ca a và b nh nhau
!= So sánh khác
Kim tra s khác nhau ca hai tốn hng
Ví d
if(a!=b)
Tr v giá tr “true” nu a khác b
> Ln hn
Kim tra giá tr ca tốn hng bên phi ln hn tốn hng bên trái hay
khơng
Ví du if(a>b) . Tr v giá tr “true” nu a ln hn b,ngc lai (nh hn
hoc bng ), tr v ‘False’
< Nh hn

Kim tra giá tr ca tốn hng bên phi có nh hn tốn hng bên trái
hay khơng
Ví du if(a<b) . Tr v giá tr “true” nu a nh hn b , ngc li (ln
hn hoc bng tr v ‘False’
>= Ln hn hoc bng
Kim tra giá tr ca tốn hng bên phi có ln hn hoc bng tốn hng
bên trái hay khơng
Ví du if(a>=b) . Tr v giá tr “true” nu a ln hn hoc bng b ,
ngc li (nh hn tr v ‘False’
<= Nh hn hoc bng
Kim tra giá tr ca tốn hng bên phi có nh hn hoc bng tốn
hng bên trái hay khơng
Ví du if(a<=b) . Tr v giá tr “true” nu a nh hn hoc bng b ,
ngc li (ln hn tr v ‘False’
Bng 3.6 Các tốn t quan h
on chng trình sau đây mơ t vic s dng các tốn t quan h
Chng 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
}
Kt qu chng trình s hin th

a and b are not equal
Trong chng trình trên c a và b là nhng s có du phy đng, dng d liu có khác nhau, a
là kiu float còn b là kiu double. Tuy vy chúng khơng phi là cùng mt kiu. Bi vy khi
kim tra giá tr ca các tốn hng, kiu d liu cn phi đc kim tra.
3.8.4
Các tốn t logic
Các tốn t logic làm vic vi các tốn hng Boolean. Mt vài tốn t kiu này đc ch ra
di đây
Tốn t Mơ t
&
Và (AND)
Tr v mt giá tr “úng” (True) nu 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 nhp nhóm hc tp.
I
Hoc (OR)
Tr v giá tr “True” nu mt giá tr là True hoc c hai đu là True
Ví d Nu age_category is ‘Senior_citizen’OR special_category is
‘handicapped’ h giá tua l hành hoc c hai điu kin đu đc thc
hin
^
XOR
Tr v giá tr True nu ch mt trong các giá tr là True .các trng
hp còn li cho giá tr False (sai)


!
Tốn hng đn t NOT. Chuyn giá tr t True sang False và ngc
li.
Ví d : Q trình thc thi các dòng lnh tip tc cho đn khi kt thúc
chng trình.
Bng 3.8 Các tốn t logic
3.8.5
Các tốn t điu kin
Tốn t điu kin là mt loi tốn t đc bit vì nó gm ba thành phn cu thành biu thc
điu kin
Cú pháp :
biu thc 1?biu thc 2: biu thc 3;
biu thc 1
iu kin lun lý (Boolean) mà nó tr v giá tr True hoc False
biu thc 2
Giá tr tr v nu biu thc 1 xác đnh là True
biu thc 3
Giá tr tr v nu biu thc 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 lnh sau đây kim tra có nhng ngi đi làm bng vé tháng có tui ln hn 65 khơng và
gán mt tiêu chun cho h. Nu nhng ngi này có tui là 55, tiêu chun 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 mt giá tr vào mt bin. Bn nên gán nhiu giá tr đn nhiu
bin cùng mt lúc.
Ví d đon lnh sau gán mt giá tr cho bin

num
. Thì giá tr trong bin
num
đc gán cho
nhiu bin trên mt dòng lnh đn.
int num = 20000;
int p,q,r,s;
p=q=r=s=num;
Dòng lnh cui cùng đc thc hin t phi qua trái. u tiên giá tr  bin num đc gán
cho ‘s’, sau đó giá tr ca ‘s’ đc gán cho ‘r’ và c tip nh vy.
3.8.7
Th t u tiên ca các tốn t
Các biu thc đc vit ra nói chung gm nhiu tốn t. Th t u tiên quyt đnh trt t thc
hin các tốn t trên các biu thc. Bng di đây lit kê th t thc hin 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 hc và các tốn t dch 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 =,*=,/=,+=,-=
Bng 3.9 Trt t u tiên
3.8.8
Thay đi th t u tiên
 thay đi th t u tiên trên mt biu thc, bn có th s dng du ngoc đn (). Tng
phn ca biu thc đc gii hn trong ngoc đn đc thc hin trc tiên. Nu bn s
dùng nhiu ngoc đn lng nhau thì tốn t nm trong ngoc đn phía trong s thc thi trc,
sau đó đn các vòng phía ngồi. Nhng trong phm vi mt ngoc đn thì quy tc th t u
tiên vn gi ngun tác dng.
3.9 nh dng d liu xut dùng chui thốt (Escape sequence)

Nhiu khi d liu xut đc hin th trên màn hình,chúng cn phi đc đnh dng.Vic đnh
dng này cn s tr giúp ca chui thốt (Escape sequences) do Java cung cp
Chúng ta hãy xem ví d di đây
System.out.println(“Happy\tBirthday”);
Cho ta d liu xut nh sau :
Happy Birthday
Bng di đây lit kê mt s chi thốt và cơng dng ca chúng
Chui thốt Mơ t
\n a con tr đn dòng k tip (Bt đu mt dòng mi )
\r a con tr v đu dòng (Ging 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 vch chéo ngc (backslash)
\’ In du nháy đn (‘)
\” In du nháy kép (“)
Bng 3.10 Các chui thốt
3.10 iu khin lung
Tt c các mơi trng phát trin ng dng đu cung cp mt quy trình ra quyt đnh
(decision-making) đc gi là điu khin lung, nó trc típ thc thi các ng dng. iu
khin lung cho phép ngi phát trin phn mm to mt ng dng dùng đ kim tra s t ti
ca mt điu kin nào đó và ra quyt đnh phù hp vi điu kin đó.
Vòng lp là mt cu trúc chng trình giúp bn có th dùng đ thc hin vic lp li các hành
đng khi thc thi chng trình mà khơng cn vit li các đon chng trình nhiu ln.
iu khin r nhánh

Mnh đ if-else


Mnh đ swich-case
Vòng lp (Loops)

Vòng lp while

Vòng lp do-while

Vòng lp for
3.10.1
Câu lnh if-else
Câu lnh if-else kim tra kt qu ca mt điu kin và thc thi mt thao tác phù hp trên c
s kt qu đó. Dng ca câu lnh if-elsse rt đn gin
Cú pháp
If (conditon)
{ action 1 statements; }
else
{ action 2 statements; }
Condition
: Biu thc Boolean nh tốn t so sánh. Biu thc này tr v giá tr True hoc
False
action 1
: Các dòng lnh đc thc thi khi giá tr tr v là True
else
: T khố xác đnh các câu lnh tip sau đc thc hin nu điu kin tr v giá tr False
action 2:
Các câu lnh đc thc thi nu điu kin tr v giá tr False
on chng trình sau kim tra xem các s là chn hay l và hin th thơng báo phù hp
Chng 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”);
}}
 đon chng trình trên num đc gán giá tr ngun là 10. Trong câu lnh
if-else
điu kin
num
%2 tr v giá tr 0 và điu kin thc hin là True. Thơng báo “10 is an even number”
đc in ra. Lu ý rng cho đn gi ch có mt câu lnh tác đng đc vit trong đon “if” và
“else”, bi vy khơng cn phi đc đa vào du ngoc móc.
Hình v di đây mơ t cách dùng
if-else

Tên Tom John Henry
iu kin

if
Giám đc
Else-if


else

Tng
lng

Hình 3.4 If-else
3.10.2
Câu lnh switch-case
Phát biu switch-case có th đc s dng ti câu lnh if-else. Nó đc s dng trong tình
hung mt biu thc cho ra nhiu kt qu. Vic s dng câu lnh switch-case cho phép vic
lp trình d dàng và đn gin hn.
Cú pháp
swich (expression)
{
case ‘value’:action 1 statement;
break;
case ‘value’:action 2 statement;
break;
:
:
case ‘valueN’: actionN statement (s);
}
expession
- Bin cha mt giá tr xác đnh
value1,value 2,….valueN
: Các giá tr hng s phù hp vi giá tr trên bin
expression
.
action1,action2…actionN
: Các phát biu đc thc thi khi mt trng hp tng ng có giá

tr True
break:
T khố đ

c s dn
g
đ b
q
ua tt c các câu lnh sau đó và
g
iành
q
u
y
n điu khin

Chương trình đào tạo kỹ thuật viên quốc tế
Core Java

Aptech 9/2002 23
cho cu trúc bên ngồi
switch

default
: T khóa tu chn đc s dng đ ch rõ các câu lnh nào đc thc hin ch khi tt
c các trng hp nhn giá tr False
default - action:
Các câu lnh đc thc hin ch khi tt c các trng hp nhn giá tr False
on chng trình sau xác đnh giá tr trong mt bin ngun và hin th ngày trong tun
đc th hin di dng chui.  kim tra các giá tr nm trong khong 0 đn 6

chng trình s thơng báo li nu nm ngồi phm vi trên.
Chng 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
}
Nu giá tr ca bín day là 4 ,chng trình s hin th
Thursday
,và c tip nh vy .
3.10.3
Vòng lp While
Vòng lp
while
đc s dng khi vòng lp đc thc hin mãi cho đn khi điu kin thc thi
vn là True. S lng vòng lp khơng đc xác đnh trc song nó s ph thuc vào tng
điu kin.
Cú pháp
while(condition)
{
action statement;
:
:
}

condition:
Biu thc Boolean, nó tr v giá tr True hoc False. Vòng lp s tip tc cho đn
khi nào giá tr True đc tr v.
action statement:
Các câu lnh đc thc hin nu
condition
nhn giá tr True
on chng trình sau tính giai tha ca s 5.Giai tha đc tính nh tích 5*4*3*2*1.
Chng 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 lp đc thc thi cho đn khi điu kin a>=1 là
True
. Bin
a
đc khai
báo bên ngồi vòng lp và đc gán giá tr là 5. Cui mi vòng lp, giá tri ca
a
gim đi 1.
Sau nm vòng giá tr ca
a
bng 0. iu kin tr v giá tr False và vòng lp kt thúc. Kt qu
s đc hin th
“ The factorial of 5 is 120”

on chng trình sau hin thi tng ca 5 s chn đu tiên

Chương trình đào tạo kỹ thuật viên quốc tế

Core Java

Aptech 9/2002 25
Chng 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 bin đc gán các giá tr đu là 1 và 0 tng ng. iu kin đc
kim tra và khi nó còn nhn giá tr True, câu lnh tác đng trong vòng lp đc thc hin.
Tip theo giá tr ca i đc tng lên 2 đ to ra s chn tip theo. Mt ln na, điu kin li
đc kim tra và câu lnh tác đng li đc thc hin. Sau nm vòng, i tng lên 11, điu kin
tr v giá tr False và vòng lp kt thúc. Thơng báo:
Sum of first five odd numbers is 25

đc hin th.

Tóm tt bài hc

Phát biu
import
đc s dng trong chng trình đ truy cp các gói Java.

Chng trình Java cha mt tp hp các gói. Chng trình có th cha các dòng gii

thích. Trình biên dch s b qua các dòng gii thích này.

“Token” là thành phn nh nht ca chng trình. Có nm loi “token”

inh danh (identifiers)

T khóa (keywords)

Ký t phân cách (separators)

Ngun dng (Literals)

Các tốn t

Java có các kiu cu trúc d liu nh kiu ngun thu mà ta đã bit. Các bin đc
khai báo cho tng kiu d liu xác đnh. Hãy thn trng khi khai báo tên bin đ loi
tr kh nng hn lon.

Java cung cp các ch đnh truy xut sau đây :

Cơng cng (public)

Bo v (protected)

Riêng t (private)

Java cung cp các b ngha (modifiers) sau đây:

Tnh (static)


Tru tng (abstract)

Final

×