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

Bài giảng ngôn ngữ lập trình 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 (1.82 MB, 179 trang )

Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 1

MC LC
CHNG 1. GII THIU TNG QUAN V NGÔN NG LP TRÌNH JAVA 6
1. Lch s ra đi và phát triển ca Java 6
2. Mt s đặc trng ca Java 6
2.1. Đn gin 7
2.2. Hng đi tng 7
2.3. Đc lp vi h nn 7
2.4. Mnh m 7
2.5. H tr lp trình đa tuyn 8
2.6. Phân tán 8
2.7. H tr Internet 8
2.8. Thông dch 8
3. Các kiểu ng dụng Java 8
3.1. ng dụng Applets 8
3.2. ng dụng dòng lnh (console) 9
3.3. ng dụng đ họa(Window form) 9
3.4 JSP/Servlet 9
3.5. ng dụng c s d liu 9
3.6. ng dụng mng 9
3.7. ng dụng nhiu tầng(multi-tier) 9
3.8. ng dụng cho các thit b di đng 9
4. Máy o Java (JVM-Java Virtual Machine) 9
5. B công cụ phát triển JDK (Java Development Kit) 10
6. Java Core API 12
7. Chng trình Java đầu tiên 13
7.1 Cu trúc chng trình Java 13
7.2 Chng trình Java đầu tiên 15


7.3 Biên dch và chy chng trình 15
CHNG 2. LP TRỊNH HNG ĐI TNG TRONG JAVA 17
BÀI 1. NN TNG LP TRÌNH JAVA 17
1. T khóa ca Java 17
2. Đnh danh trong Java (tên) 19
3. Chú thích trong chng trình 20
4. Kiểu d liu 20
4.1. D liu kiểu nguyên thuỷ 20
4.2. Kiểu d liu tham chiu (reference) 21
4.3. Ép kiểu (Type casting) 21
5. Bin, mng và hằng trong Java 22
5.1 Khai báo bin 22
5.2. Khai báo mng 22
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 2

5.2.1 Mng mt chiu 22
5.2.2 Mng nhiu chiu 26
5.3. Xâu ký tự 28
5.3.1. Lp String 28
5.3.2. Lp StringBuffer 31
5.3.3. Lp StringTokenizer 34
BÀI 2. CÁC CU TRÚC LP TRÌNH 37
1. Cu trúc r nhánh 37
1.1. Phát biểu if 37
1.2. Biểu thc điu kin 37
1.3. Cu trúc switch 38
2. Cu trúc lặp while và do-while 39
2.1. Lặp kiểm tra điu kin trc 39

2.2. Lặp kiểm tra điu kin sau 40
3. Cu trúc for 41
4. Lnh break và continue 43
BÀI 3. LP TRỊNH HNG ĐI TNG TRONG JAVA 46
1. Đnh nghĩa lp 47
1.1. Khai báo lp 47
1.1.1 Khai báo thuc tính 49
1.1.2 Khai báo phng thc 50
1.2 Chi tit v khai báo mt phng thc 51
1.2.1. Tng quát mt phng thc đc khai báo nh sau 51
1.2.2 Nhn giá tr tr v t phng thc 52
1.2.3 Truyn tham s cho phng thc 52
1.2.4. Thân ca phng thc 54
2. S dụng lp 54
2.1 Khai báo mt bin, mng đi tng 54
2.2 Truy xut ti các thành phần ca lp 55
3. Phng thc to dựng (constructor) 55
3.1. Công dụng 55
3.2. Cách vit hàm to 55
3.2.1 Đặc điểm ca phng thc to dựng 55
3.2.2. Hàm to mặc đnh 56
3.2.3. Gọi hàm to t hàm to 57
3.3. Khi khi đầu vô danh và khi khi đầu tĩnh 58
3.3.1. Khi vô danh 58
3.3.2. Khi khi đầu tĩnh 59
4. Dọn dẹp: kt thúc và thu rác 60
4.1. Phng thc finalize 60
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 3


4.2. C ch gom rác ca java 61
5. T khóa this 61
6. Điu khiển vic truy cp đn các thành viên ca mt lp 61
6.1. Các thành phần private 62
6.2. Các thành thành phần protected 62
6.3. Các thành phần public 63
6.4. Các thành phần có mc truy xut gói 63
7. Np chng phng thc 63
7.1. Khái nim v phng thc bi ti 63
7.2. Yêu cầu ca các phng thc bi ti 64
BÀI 4 K THA (INHERITANCE), ĐA HỊNH 65
1. Lp c s và lp dn xut 65
2. Cách xây dựng lp dn xut 65
3. Tha k các thuc tính 65
4. Tha k phng thc 65
5. Phng thc khi to ca lp c s 65
5.1. Trt tự khi đầu 68
5.2. Trt tự dọn dẹp 68
6. Ghi đè phng thc (Override) 68
7. T khoá final 69
7.1. Thuc tính final 69
7.2. Đi s final 70
7.3. Phng thc final 70
7.4. Lp final 70
8. Lp c s tru tng 71
9. Đa hình thái 71
BÀI 5. GIAO DIN, LP TRONG, GÓI 73
1. Giao din (Interface) 73
1.1. Phần khai báo ca giao din 73

1.2. Phần thân 74
1.3. Triển khai giao din 74
2. Lp trong 75
CHNG 3. LP TRỊNH ĐA TUYN(MULTITHREAD) 77
LP TRÌNH SOCKET 77
BÀI 1. LP TRỊNH ĐA TUYN 77
1. Các kin thc liên quan 77
1.1. Tin trình ( process) 77
1.2. Tiểu trình ( thread ) 77
1.3. H điu hƠnh đn nhim, đa nhim 77
1.4. Các trng thái ca tin trình 78
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 4

1.5. Min găng ( Critical Section ) 78
1.6. Khoá cht (deadlock) 78
2. Lp trình đa tuyn trong Java 79
2.1. Lp Thread 79
2.2. Vòng đi ca Thread 82
2.3. Lung chy ngầm (deamon) 82
2.4. Giao din Runnable 82
2.5. Thit lp đ u tiên cho tuyn 83
2.6. Nhóm tuyn (Thread Group) 84
2.7. Đng b các tuyn thi hành 84
BÀI 2. LP TRÌNH SOCKET 86
1. Các kin thc liên quan 86
1.1. Gii thiu Socket 86
1.2. Lp trình Socket trong java 87
2. Kho sát mt s lp trong gói java.net 87

2.1. Lp InetAddress 87
2.2. Lp URL và URI 93
2.3. Lp Socket 101
2.3.1 Mt s hàm to ca lp Socket 102
2.3.2. Ly v thông tin gắn vi Socket 103
2.3.3. Đóng Socket 106
2.3.4. Truyn trong ch đ haft duplex 107
2.4. Lp ServerSocket 108
2.4.1. Mt s hàm to ca lp ServerSocket 108
2.4.2. Chp nhn vƠ đóng kt ni 111
2.5. Lp DatagramSocket 113
2.6. Lp DatagramPacket 113
3. TCP Socket 113
CHNG 4 CÔNG NGH JSP/SERVLET VÀ LP TRÌNH KT NI C S D
LIU TRONG JAVA 133
1. Công ngh Jsp/Servlet 133
1.1. Gii thiu 133
1.2. So sánh JSP/Servlet và CGI, ASP, ISAPI 133
1.3. Servlet là gì 134
1.3.1 Gii pháp vi Servlet 135
1.3.2 Môi trng runtime ca servlet 135
1.3.3 Giao tip vƠ vòng đi ca servlet 136
1.3.4 Các đi tng request và response 137
1.3.5 D liu chia sẻ và c đnh (Persistent and shared data) 141
1.3.6 Các thuc tính ServletContext 143
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 5

1.3.7 Các thuc tính và tài nguyên yêu cầu (Request attributes and resources) 144

1.3.8 Đa tuyn (Multithreading) 145
2. Truy cp c s d liu trong java 146
2.1. Tng quan 146
2.2. Các lp trong JDBC API dùng để truy cp CSDL 146
2.2.1. Mt s giao din và lp trong gói java.sql 146
2.2.2. Mt s giao din và lp trong gói javax.sql 147
2.3. Kt ni CSDL vi JDBC 147
2.4 Tng tác vi CSDL 152
2.4.1. To ra mt JDBC Statements 152
2.4.2. S dụng đi tng Prepared Statements 161
2.5. Gọi th tục lu tr bằng JDBC 162
2.6. Qun lý giao dch 162
CHNG 5. LP TRÌNH THIT B DI ĐNG VI J2ME 163
1. Gii thiu v J2ME và lp trình cho thit b di đng 163
2. Kin trúc ca J2ME 164
2.1. Gii thiu các thành phần trong nn tng J2ME 164
2.2. Đnh nghĩa v Profile 165
3. Lp trình vi J2ME 166
3.1. MIDlet ậ Vòng đi ca mt MIDlet 166
3.2. Đi tng Display 169
3.3. Đi tng Displayable 169
3.4. Giao din ngi dùng cp cao 169
3.4.1. Đi tng Display, Displayable và Screens 169
3.4.2. Thành phần Form và Items 170
3.4.3. Thành phần List, Textbox, Alert, và Ticker 171
4. Chng trình J2ME đầu tiên 171
4.1. Thit lp môi trng lp trình 171
4.2. To project 172
4.2.1. To ng dụng MIDP Using Source Editor 172
4.2.2. To ng dụng MIDP Using the Visual Mobile Designer 173

4.3. Đóng gói vƠ ti ng dụng j2me vƠo đin thoi 174
4.3.1. Đóng gói ng dụng 174
4.3.2. Ti ng dụng vào thit b di đng qua Internet 177
TÀI LIU THAM KHO 179

Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 6

CHNG 1. GII THIU TNG QUAN V NGÔN NG LP
TRÌNH JAVA
Ni dung ca chng nƠy tp trung trình bày các vn đ sau:
 Lch s ra đi và phát triển ca Java
 Mt s đặc trng ca Java
 Các kiểu ng dụng Java
 Máy o Java
 B công cụ phát triển JDK
 Java Core API
 Chng trình Java đầu tiên
1. Lch s ra đi và phát triển của Java
Năm 1991, mt nhóm kỹ s ca Sun Microsystems mun lp trình để điểu
khiển các thit b điển t nh tivi, t lnh, máy giặt, lò nng,… Ban đầu họ đnh dùng
C/C++ nhng trình biên dch ca C/C++ li phụ thuc vào tng loi CPU. Do đó họ bắt
tay vào xây dựng mt ngôn ng chy nhanh, gọn, hiu qu, đc lp vi thit b và ngôn
ng có tên là OAK (Oak- là cây si mọc  phía sau văn phòng ca nhà thit k chính ông
Jame Gosling sau này ông thy rằng đư có ngôn ng lp trình tên Oak ri, do vy nhóm
thit k quyt đnh đi tên, “Java” lƠ cái tên đc chọn, Java là tên ca mt quán cafe mà
nhóm thit k java hay đn đó ung).
Ngôn ng lp trình Java đc Sun Microsystems đa ra gii thiu vào tháng 6
năm 1995 vƠ đư nhanh chóng tr thành mt ngôn ng lp trình ca các lp trình viên

chuyên nghip. Java đc xây dựng dựa trên nn tng ca C vƠ C++, nghĩa lƠ Java s
dụng cú pháp ca C vƠ đặc trng hng đi tng ca C++. Java là ngôn ng va biên
dch va thông dch.
Ngày nay, Java đc s dụng rng rãi, không ch để vit các ng dụng trên máy
cục b hay trên mng để xây dựng các trình điu khiển thit b di đng.
2. Mt s đặc trng của Java
Ngôn ng lp trình Java có các đặc trng c bn sau:
 Đn gin
 Hng đi tng
 Đc lp vi h nn
 Mnh m
 H tr lp trình đa tuyn
 Lp trình phân tán
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 7

 H tr Internet
 Thông dch
2.1. Đơn giản
Nhng ngi thit k mong mun phát triển mt ngôn ng d học và quen thuc
vi đa s ngi lp trình. Java tựa nh C++, nhng đư lc b đi các đặc trng phc tp,
không cần thit ca C vƠ C++ nh: thao tác con tr, thao tác đnh nghĩa chng toán t
(operator overloading),… Java không s dụng lnh “goto” cũng nh file header (.h). Cu
trúc “struct” vƠ “union” cũng đc loi b khi Java. Nên có ngi bo Java lƠ “C++ “,
ngụ ý bo java lƠ C++ nhng đư b đi nhng th phc tp, không cần thit.
2.2. Hướng đối tượng
Có thể nói java là ngôn ng lp trình hoƠn toƠn hng đi tng, tt c trong java
đu là sự vt, đơu đơu cũng lƠ sự vt.
2.3. Độc lập với hệ nền

Mục tiêu chính ca các nhà thit k Java lƠ đc lp vi h nn hay còn gọi lƠ đc
lp phần cng và h điu hƠnh. Đơy lƠ kh năng mt chng trình đc vit ti mt máy
nhng có thể chy đc bt kỳ đơu
Tính đc lp vi phần cng đc hiểu theo nghĩa mt chng trình Java nu chy
đúng trên phần cng ca mt họ máy nƠo đó thì nó cũng chy đúng trên tt c các họ máy
khác. Mt chng trình ch chy đúng trên mt s họ máy cụ thể đc gọi là phụ thuc
vào phần cng.
Tính đc lp vi h điu hƠnh đc hiểu theo nghĩa mt chng trình Java có thể
chy đc trên tt c các h điu hành. Mt chng trình ch chy đc trên mt s h
điu hƠnh đc gọi là phụ thuc vào h điu hành.
Các chng trình vit bằng java có thể chy trên hầu ht các h nn mà không cần
phi thay đi gì, điu nƠy đư đc nhng ngi lp trình đặt cho nó mt khẩu hiu ‘viết
một lần, chạy mọi nơi’, điu này là không thể có vi các ngôn ng lp trình khác.
Đi vi các chng trình vit bằng C, C++ hoặc mt ngôn ng nào khác, trình
biên dch s chuyển tp lnh thành mã máy (machine code), hay lnh ca b vi x lý.
Nhng lnh này phụ thuc vào CPU hin ti trên máy bn. Nên khi mun chy trên loi
CPU khác, chúng ta phi biên dch li chng trình.
2.4. Mạnh mẽ
Java là ngôn ng yêu cầu chặt ch v kiểu d liu, vic ép kiểu tự đng ba bãi
ca C, C++ nay đc hn ch trong Java, điu nƠy lƠm chng trình rõ rƠng, sáng và ít
li hn. Java kiểm tra lúc biên dch và c trong thi gian thông dch vì vy Java loi b
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 8

mt mt s loi li lp trình nht đnh. Java không s dụng con tr và các phép toán con
tr. Java kiểm tra tt c các truy nhp đn mng, chui khi thực thi để đm bo rằng các
truy nhp đó không ra ngoƠi gii hn kích thc.
Trong các môi trng lp trình truyn thng, lp trình viên phi tự mình cp phát
b nh. Trc khi chng trình kt thúc thì phi tự gii phóng b nh đư cp. Vn đ ny

sinh khi lp trình viên quên gii phóng b nh đư xin cp trc đó. Trong chng trình
Java, lp trình viên không phi bn tơm đn vic cp phát b nh. Quá trình cp phát, gii
phóng đc thực hin tự đng, nh dch vụ thu nhặt nhng đi tng không còn s dụng
na (garbage collection).
C ch by li ca Java giúp đn gin hóa qúa trình x lý li và hi phục sau li.
2.5. Hỗ trợ lập trình đa tuyến
Đơy lƠ tính năng cho phép vit mt chng trình có nhiu đon mã lnh đc chy
song song vi nhau. Vi Java ta có thể vit các chng trình có kh năng chy song song
mt cách d dƠng, hn th na vic đng b tƠi nguyên dùng chung trong Java cũng rt
đng gin. Điu này là không thể có đi vi mt s ngôn ng lp trình khác nh C/C++,
pascal …
2.6. Phân tán
Java h tr đầy đ các mô hình tính toán phân tán: mô hình client/server, gọi th
tục t xa…
2.7. Hỗ trợ Internet
Mục tiêu quan trọng ca các nhƠ thit k Java lƠ to điu kin cho các nhƠ phát
triển ng dụng có thể vit các chng trình ng dụng internet vƠ web mt cách d dƠng,
vi Java ta có thể vit các chng trình s dụng các giao thc TCP, UDP mt cách d
dàng, v lp trình web phía máy khách Java có công ngh Java applet, v lp trình web
phía máy ch Java có công ngh Servlet/JSP, v lp trình phơn tán Java có công ngh
RMI, CORBA, EJB, Web Service.
2.8. Thông dịch
Các chng trình Java cần đc thông dch trc khi chy, mt chng trình Java
đc biên dch thƠnh mư byte code mư đc lp vi h nn, chng trình thông dch Java
s ánh x mã byte code này lên mi nn cụ thể, điu này khin Java chm chp đi phần
nào.
3. Các kiểu ng dng Java
Vi Java ta có thể xây dựng các kiểu ng dụng sau:
3.1. ng dụng Applets
Bài ging Ngôn ng lp trình Java


Biên son: Nguyn Th Điu Page 9

Applet lƠ chng trình Java đc to ra để s dụng trên Internet thông qua các
trình duyt h tr Java nh IE hay Netscape. Applet đc nhúng bên trong trang Web.
Khi trang Web hiển th trong trình duyt, Applet s đc ti v và thực thi ti trình duyt.
3.2. ng dụng dòng lệnh (console)
Các chng trình nƠy chy t du nhắc lnh và không s dụng giao din đ họa.
Các thông tin nhp xut đc thể hin ti du nhắc lnh.
3.3. ng dụng đồ họa(Window form)
Đơy lƠ các chng trình Java chy đc lp cho phép ngi dùng tng tác qua
giao din đ họa.
3.4 JSP/Servlet
Java thích hp để phát triển ng dụng nhiu lp. Applet lƠ chng trình đ họa
chy trên trình duyt ti máy trm.  các ng dụng Web, máy trm gi yêu cầu ti máy
ch. Máy ch x lý và gi kt qu tr li máy trm. Các Java API chy trên máy ch chu
trách nhim x lý ti máy ch và tr li các yêu cầu ca máy trm. Các Java API chy
trên máy ch này m rng kh năng ca các ng dụng Java API chuẩn. Các ng dụng
trên máy ch nƠy đc gọi là các JSP/Servlet. hoặc Applet ti máy ch. X lý Form ca
HTML là cách s dụng đn gin nht ca JSP/Servlet. Chúng còn có thể đc dùng để
x lý d liu, thực thi các giao dch vƠ thng đc thực thi thông qua máy ch Web.
3.5. ng dụng cơ sở dữ liệu
Các ng dụng này s dụng JDBC API để kt ni ti c s d liu. Chúng có thể là
Applet hay ng dụng, nhng Applet b gii hn bi tính bo mt.
3.6. ng dụng mạng
Java là mt ngôn ng rt thích hp cho vic xây dựng các ng dụng mng. Vi th
vin Socket bn có thể lp trình vi hai giao thc: UDP và TCP.
3.7. ng dụng nhiều tầng(multi-tier)
Vi Java bn có thể xây dựng phân tán nhiu tầng vi nhiu h tr khác nhau nh:
RMI, CORBA, EJB, Web Service

3.8. ng dụng cho các thiết bị di động
Hin nay phần ln các thit b di đng nh: Đin thoi di đng, máy tr giúp cá
nhơn… đu h tr Java. Th nên bn có thể xây dựng các ng dụng chy trên các thit b
di đng nƠy. Đơy lƠ mt kiểu ng dụng khá hp dãn, bi vì các thit b di đng này ngày
càng ph bin và nhu cầu có các ng dụng chy trên đó, đặc bit là các ng dụng mang
tính cht gii trí nh game…
4. Máy o Java (JVM-Java Virtual Machine)
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 10

Máy o là mt phần mm mô phng mt máy tính tht (máy tính o). Nó có tp
hp các lnh logic để xác đnh các hot đng ca máy tính và có mt h điu hành o.
Ngi ta có thể xem nó nh mt máy tính tht (máy tính có phần cng o, h điu hành
o). Nó thit lp các lp tru tng cho: Phần cng bên di, h điu hƠnh, mư đư biên
dch.
Trình biên dch chuyển mã ngun thành tp các lnh ca máy o mà không phụ
thuc vào phần cng và h điu hành cụ thể. Trình thông dch trên mi máy s chuyển
tp lnh nƠy thƠnh chng trình thực thi. Máy o to ra mt môi trng bên trong để thực
thi các lnh bằng cách:
 Np các file .class
 Qun lý b nh
 Dọn “rác”
Vic không nht quán ca phần cng làm cho máy o phi s dụng ngăn xp để
lu tr các thông tin sau:
 Các “Frame” cha các trng thái ca các phng thc.
 Các toán hng ca mã bytecode.
 Các tham s truyn cho phng thc.
 Các bin cục b.
Khi JVM thực thi mã, mt thanh ghi cục b có tên “Program Counter” đc s

dụng. Thanh ghi này tr ti lnh đang thực hin. Khi cần thit, có thể thay đi ni dung
thanh ghi để đi hng thực thi ca chng trình. Trong trng hp thông thng thì
tng lnh mt ni tip nhau s đc thực thi.
Mt khái nim thông dụng khác trong Java là trình biên dch “Just In Time-JIT”.
Các trình duyt thông dụng nh Netscape, IE, NetBeans, Jcreator đu có JIT bên trong để
tăng tc đ thực thi chng trình Java. Mục đích chính ca JIT là chuyển tp lnh
bytecode thành mã máy cụ thể cho tng loi CPU. Các lnh này s đc lu tr và s
dụng mi khi gọi đn.
5. B công c phát triển JDK (Java Development Kit)
Sun Microsystem đa ra ngôn ng lp trình Java qua sn phẩm có tên là Java
Development Kit (JDK). Ba phiên bn chính là:
 Java 1.0 - S dụng lần đầu vƠo năm 1995.
 Java 1.1 ậ ợa ra năm 1997 vI nhiu u điểm hn phiên bn trc.
o JDK 1.1.4 (Sparkler) 12 tháng 9, 1997
o JDK 1.1.5 (Pumpkin) 3 tháng 12, 1997
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 11

o JDK 1.1.6 (Abigail) 24 tháng 4, 1998
o JDK 1.1.7 (Brutus) 28 tháng 9, 1998
o JDK 1.1.8 (Chelsea) 8 tháng 4, 1999
 Java 2:
o J2SE 1.2 (Playground) 4 tháng 12, 1998
o J2SE 1.2.1 (không có) 30 tháng 3, 1999
o J2SE 1.2.2 (Cricket) 8 tháng 7, 1999
o J2SE 1.3 (Kestrel) 8 tháng 5, 2000
o J2SE 1.3.1 (Ladybird) 17 tháng 5, 2001
o J2SE 1.4.0 (Merlin) 13 tháng 2, 2002
o J2SE 1.4.1 (Hopper) 16 tháng 9, 2002

o J2SE 1.4.2 (Mantis) 26 tháng 6, 2003
o J2SE 5 (1.5.0) (Tiger) 29 tháng 9, 2004
o Java SE 6 (còn gọi lƠ Mustang), đc công b 11 tháng 12 năm 2006
o JDK 6.18,2010
o Java SE 7 (còn gọi lƠ Dolphin), đc bắt đầu t tháng 8 năm 2006 vƠ công
b vƠo năm 2010.
JDK bao gm Java Plug-In, chúng cho phép chy trực tip Java Applet hay
JavaBean bằng cách dùng JRE thay cho s dụng môi trng thực thi mặ c đnh ca trình
duyt.
JDK cha các công c sau:
a) Trình biên dịch, 'javac'
Cú pháp:
javac [options] sourcecodename.java
b) Trình thông dịch, 'java'
Cú pháp:
java [options] classname
c) Trình dịch ngược, 'javap'
javap dch ngc bytecode và in ra thông tin v các thuc tính (các trng), các
phng thc ca mt lp.
Cú pháp:
javap [options] classname
d) Công cụ sinh tài liệu, 'javadoc'
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 12

Tin ích này cho phép ta to ra tp HTML dựa trên các li gii thích trong mã
chng trình (phần nằm trong cặp du /* */).
Cú pháp:
javadoc [options] sourcecodename.java

e) Chương trình tìm lỗi - Debug, 'jdb’
Cú pháp:
jdb [options] sourcecodename.java
hay
jdb -host -password [options] sourcecodename.java
f) Chương trình xem Applet , 'appletviewer‘
Cú pháp:
appletviewer [options] url
6. Java Core API
Nhơn Java API đc thay th bi phiên bn JFC 1.1. Mt s package thông dụng
đc:
a) java.lang
Cha các lp quan trọng nht ca ngôn ng Java. Chúng bao gm các kiểu d liu
c bn nh ký tự, s nguyên,… Chúng cũng cha các lp làm nhim vụ x lý li và các
lp vào ra chuẩn. Mt vài lp quan trọng khác nh String hay StringBuffer.
b) java.applet
Đơy là package nh nht cha mt mình lp Applet. Các Applet nhúng trong
trang Web hay chy trong appletviewer đu tha k t lp này.
c) java.awt
Package nƠy đc gọi là Abstract Window Toolkit (AWT). Chúng cha các lp
dùng để to giao din đ họa. Mt s lp bên trong là: Button, GridBagLayout, Graphics.
d) java.io
Cung cp th vin vào ra chuẩn. Chúng cho phép to và qun lý dòng d liu theo
nhiu cách.
e) java.util
Package này cung cp mt s công cụ hu ích. Mt vài lp ca package này là:
Date, Hashtable, Stack, Vector và StringTokenizer.
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 13


f) java.net
Cung cp kh năng giao tip vi máy t xa. Cho phép to và kt ni ti Socket
hoặc URL.
g) java.awt.event
Cha các lp, giao din dùng để x lý các sự kin trong chng trình nh chut,
bàn phím.
h) java.rmi
Công cụ để gọi hàm t xa. Chúng cho phép to đi tng trên máy khác và s
dụng các đi tng đó trên máy cục b.
i) java.security
Cung cp các công cụ cần thit để mư hóa vƠ đm bo tính an toàn ca d liu
truyn gia máy trm và máy ch.
k) java.sql
Package này cha Java DataBase Connectivity (JDBC), dùng để truy xut c s
d liu quan h nh Oracle, SQL Server,
7. Chng trình Java đầu tiên
7.1 Cấu trúc chương trình Java
- Mi ng dụng Java bao gm mt hoặc nhiu đn v biên dch (mi đn v biên
dch là mt tp tin có phần m rng .java)
- Mi đn v biên dch bao gm mt hoặc nhiu lp
- Mi ng dụng đc lp phi có duy nht mt phng thc main (điểm bắt đầu ca
ng dụng)
- Mi đn v biên dch có nhiu nht mt lp đc khai báo là public, nu nh
trong đn v biên dch có lp public thì tên ca đn v biên dch phi trùng vi tên ca
lp public (ging ht nhau c ký tự hoa ln ký tự thng)
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 14


- Bên trong thân ca mi lp ta khai báo các thuc tính, phng thc ca lp đó,
Java là ngôn ng hng đi tng, do vy mã lnh phi nằm trong lp nƠo đó. Mi lnh
đu đc kt thúc bằng du chm phy “;”.
- Trong ngôn ng Java, lp là mt đn v mu có cha d liu và mã lnh liên
quan đn mt thực thể nƠo đó. Khi xây dựng một lớp, thực chất bạn đang tạo ra một
một kiểu dữ liệu. Kiểu 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ự.
- Khi bn khai báo mt lp, bn cần xác đnh d liu vƠ các phng thc ca lp
đó. V c bn mt lp đc khai báo nh sau:
Cú pháp:
class classname
{
var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}
Trong đó:
class - T khoá xác đnh lp
//Nhập khẩu các thư viện
import thư_viện;
//Xây dựng các lớp
public class clsMain{

public static void main(String args[]){
//điểm bắt đầu của chương trình
}






Một đơn vị biên dịch là
một tệp tin .java
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 15

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_list ậ Các tham s đc ca phng thc
- Bn còn có thể đnh nghĩa mt lp bên trong mt lp khác. Đơy lƠ lp xp lng
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ành phần ca lp bao ph chúng. Có hai loi
lp trong đó lƠ lp trong tĩnh “static” vƠ lp trong không tĩnh “non static”
 Lp trong tĩnh (static)VISUAL BASIC
Lp trong tĩnh đc đnh nghĩa vi t khoá “static”. Lp trong tĩnh có thể truy
nhp vào các thành phần tĩnh ca lp ph nó.
 Lp trong không tĩnh (non static)
Lp bên trong (không phi là lp trong tĩnh) có thể truy nhp tt c các thành phần
ca lp bao nó, song không thể ngc li.
7.2 Chương trình Java đầu tiên
Ví d 1: HelloWorld.java
public class HelloWorld
{

public static void main(String[] args)
{
System.out.println("Hello World!");
}//end method
}//end class

7.3 Biên dịch và chạy chương trình
Chuẩn bị môi trường:
- JRE (Java Runtime Enviroment) môi trng thực thi ca java, nó bao gm: JVM
(Java Virtual Machine) máy o java vì các chng trình java đc thông dch và chy
trên máy o java và tp các th vin cần thit để chy các ng dụng java.
- B công cụ biên dch và thông dch JDK ca Sun Microsystem
Định nghĩa lớp có tên HelloWorld
Bắt đầu đoạn lệnh
Phương thức main
Xuất ra màn hình
Kết thúc đoạn lệnh
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 16

Sau khi cƠi đặt JDK (gi s th mục cƠi đặt là C:\Program files\Java) ta s nhn
đc mt cu trúc th mục nh sau:





- Để biên dch chng trình Java sang mã bytecode ta
dùng lnh sau:

javac TenTep.java
Nu không có li s to ra file HelloWorld.class
- Để thông dch và chy chng trình ta dùng lnh:
java TenTep
Lu ý: Phi khai báo đng dn ch đn th mục cƠi đặt java, và th mục cha
các class cần thực thi
Ví d: C:\> set path=C:\Java\jdk1.6.0_16\bin
C:\> set classpath = D:\BTJava\
Th mục cha các file thực thi
Th mục cha các file liên quan đn java
Th mục cha các file th vin ca java
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 17

CHNG 2. LP TRỊNH HNG ĐI TNG TRONG JAVA
Chng nƠy cung cp các ni dung sau:
 Nn tng lp trình Java.
 Mt s khái nim trong lp trình hng Đi tng (Object-oriented
Programming).
 Đnh nghĩa mt Lp (Class).
 Đnh nghĩa mt Đi tng (Object).
 Nhn thc đc sự khác bit gia Lp vƠ Đi tng.
 Nhn thc đc sự cần thit đi vi phng thc Thit lp (Construction) vƠ Hy
(Destruction).
 Đnh nghĩa v tính đóng gói d liu (Data Encapsulation)
 Hiểu bit v tính Tha k (Inheritance).
 Đnh nghĩa tính Đa hình (Polymorphism).
 Giao din (Interface), lp trong
BÀI 1. NN TNG LP TRÌNH JAVA

1. T khóa của Java
Mi ngôn ng lp trình có mt tp các t khoá, ngi lp trình phi s dụng t
khoá theo đúng nghĩa mƠ ngi thit k ngôn ng đư đ ra, ta không thể đnh nghĩa li
nghĩa ca các t khoá, nh s dụng nó để đặt tên bin, hƠm
Sau đây là một số từ khoá thường gặp:
T khóa
Mô t
abstract
S dụng để khai báo lp, phng thc tru tng
boolean
Kiểu d liu logic
break
Đc s dụng để kt thúc vòng lặp hoặc cu trúc switch
byte
kiểu d liu s nguyên
case
đc s dụng trong ln switch
cast
Cha đc s dụng (để dƠnh cho tng lai)
catch
đc s dụng trong x lý ngoi l
char
kiểu d liu ký tự
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 18

class
Dùng để khai báo lp
const

Cha đc dùng
continue
đc dùng trong vòng lặp để bắt đầu mt vòng lặp mi
default
đc s dụng trong lnh switch
do
đc dùng trong vòng lặp điu kin sau
double
kiểu d liu s thực
else
kh năng lựa chọn th hai trong câu lnh if
extends
ch rằng mt lp đực k tha t mt lp khác
false
Gía tr logic
final
Dùng để khai báo hằng s, phng thc không thể ghi đè, hoặc lp không
thể k tha
finally
phần cui ca khi x lý ngoi l
float
kiểu s thực
for
Câu lnh lặp
goto
Cha đc dùng
if
Câu lnh lựa chọn
implements
ch rằng mt lp triển khai t mt giao din

import
Khai báo s dụng th vin
instanceof
kiểm tra mt đi tng có phi là mt thể hin ca lp hay không
interface
s dụng để khai báo giao din
long
kiểu s nguyên
native
Khai báo phng thc đc vit bằng ngôn ng biên dch C++
new
to mt đi tng mi
null
mt đi tng không tn ti
package
Dùng để khai báo mt gói
private
đặc t truy xut
protected
đặc t truy xut
public
đặc t truy xut
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 19

return
Quay t phng thc v ch gọi nó
short
kiểu s nguyên

static
Dùng để khai báo bin, thuc tính tĩnh
super
Truy xut đn lp cha
switch
lnh lựa chọn
synchronized
mt phng thc đc quyn truy xut trên mt đi tng
this
Ám ch chính lp đó
throw
Ném ra ngoi l
throws
Khai báo phng thc ném ra ngoi l
true
Giá tr logic
try
s dụng để bắt ngoi l
void
Dùng để khai báo mt phng thc không tr v giá tr
while
Dùng trong cu trúc lặp
Bảng 2.1 Danh mục các từ khóa trong java
2. Đnh danh trong Java (tên)
Tên dùng để xác đnh duy nht mt đi lng trong chng trình. Trong java tên
đc đặt theo quy tắc sau:
- Không trùng vi t khoá
- Không bắt đầu bằng mt s, tên phi bắt đầu bằng kí tự hoặc bắt đầu bằng kí $,_
- Không cha du cách, các kí tự toán học nh +, -, *,/, %
- Không trùng vi mt đnh danh khác trong cùng mt phm vi

Chú ý:
- Tên nên đặt sao cho có thể mô t đc đi tng trong thực t
- Ging nh C/C++, java có phơn bit ch hoa ch thng
- Trong java ta có thể đặt tên vi đ dài tuỳ ý
- Ta có thể s dụng các kí tự ting vit để đặt tên
Quy ước về đặt tên trong java
Ta nên đặt tên bin, hằng, lp, phng thc sao cho nghĩa ca chúng rõ rƠng, d
hiểu, khoa học vƠ mang tính c l quc t. Do java có phơn bit ch hoa, ch thng
nên ta phi cẩn thn vƠ chú ý.
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 20

Sau đơy lƠ quy c đặt tên trong java (chú ý đơy ch lƠ quy c do vy không
bắt buc phi tuơn theo quy c nƠy):
- Đi vi bin và phng thc thì tên bao gi cũng bắt đầu bằng ký tự thng, nu
tên có nhiu t thì ghép li thì: ghép tt c các t thành mt, ghi t đầu tiên ch
thng, vit hoa kí tự đầu tiên ca mi t theo sau trong tên, ví dụ area, radius,
readInteger…
- Đi vi tên lp, giao din ta vit hoa các kí tự đầu tiên ca mi t trong tên, ví dụ
lp WhileTest, Circle
- Tên hằng bao gi cũng vit hoa, nu tên gm nhiu t thì chúng đc ni vi hau
bi kí tự ghch di ‘_’, ví dụ PI, MAX_VALUE
3. Chú thích trong chng trình
Trong java ta có 3 cách để ghi chú thích
- Cách 1: s dụng cặp
/* và */ ý nghĩa ca cặp chú thích này ging nh ca C, C++
- Cách 2: s dụng cặp // ý nghĩa ca cặp chú thích này ging nh ca C, C++
- Cách 3: s dụng cặp /** và */, đơy lƠ kiểu chú thích tài liu (không có trong
C/C++), nó dùng để to ra tài liu chú thích cho chng trình.

Vi cách th nht và cách ba ta có thể vit chú thích trên nhiu dòng, vi cách chú
thích hai ta ch có thể chú thích trên mt dòng.
Chú ý: trong java ta có thể đặt chú thích  đơu?, cơu tr li là:  đơu có thể đặt
đc mt du cách thì  đó có thể đặt chú thích.
4. Kiểu d liu
Các ng dụng luôn x lý d liu  đầu vƠo vƠ xut d liu kt qu  đầu ra. Đầu
vƠo, đầu ra, vƠ kt qu ca các quá trình tính toán đu liên quan đn d liu. Trong môi
trng tính toá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 nguyên thy (primitive)
 Các kiểu d liu tham chiu (reference)
4.1. Dữ liệu kiểu nguyên thuỷ
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 21

T khoá
Mô t
Kích c
Ti thiểu
Ti đa
Lp bao
(kiểu s nguyên)
byte

S nguyên 1 byte
8 bit
-128
127
Byte
short
s nguyên 2 byte
16 bit
-2
15

2
15
-1
Short
int
s nguyên 4 byte
32 bit
-2
31
2
31
-1
Integer
long
s nguyên 8 byte
64 bit
-2
63


-2
63
-1
Long
(kiểu s thực)
float
kiểu thực vi đ chính
xác đn 4 byte
32 bit
IEEE754
IEEE754
Float
double
du chm đng vi đ
chính xác đôi 8 byte
64 bit
IEEE754
IEEE754
Double
(kiểu khác)
char
kiểu kí tự 2 byte
16 bit
Unicode 0
Unicode 2
16
-1
Character
boolean
kiểu logic

true/false
-
-
Boolean
void
-
-
-
-
Void
Bảng 2.2. Kiểu dữ liệu nguyên thuỷ
4.2. Kiểu dữ liệu tham chiếu (reference)
Kiểu d liu
Mô t
Mng (Array)
Tp hp các d liu cùng kiểu. Ví dụ : tên sinh viên
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
toƠ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 cho phép cƠi đặt đa tha k
trong Java.
Bảng 2.3. Kiểu dữ liệu tham chiếu
4.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 sai giá

tr.
Đ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 nguyên (integer).
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 22

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 nguyên 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) ậ quá 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 nguyên 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.
5. Bin, mng và hằng trong Java
5.1 Khai báo 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 quá 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
ngoƠ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, luôn 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 nguyên (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 yê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.
5.2. Khai báo mảng
5.2.1 Mảng một chiều
a) Khai báo
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 23

Cú pháp khai báo:
- KDL tên_mảng[];//Khai báo mt con tr mng
- KDL []tên_mảng;//nh trên
- KDL tên_mảng[] = new KDL[spt];//To ra mt mng có spt phần t
Trong cú pháp trên thì:
- KDL là mt kiểu d liu bt kỳ nh: kiểu nguyên thy, kiểu đi tng… nó xác
đnh kiểu d liu ca tng phần t ca mng.
- Spt là s phần t ca mng.
Chú ý:
- Mng trong Java là mt đi tng
- Cũng nh các đi tng khác, mng phi đc to ra bằng toán t new nh sau:
Tên_mảng=new KDL[spt];
- Khi mng đc to ra thì mi phần t ca mng s nhn mt giá tr mặc đnh, quy
tắc khi to giá tr cho các phần t ca mng cũng chính lƠ quy tắc khi đầu giá tr
cho các thuc tính ca đi tng, tc là mi phần t ca mng s nhn giá tr:
 0 nu KDL là kiểu s

 ‘\0’ nu KDL là kí tự
 false nu KDL là boolean
 null nu KDL là mt lp nƠo đó.
Ví d 1. Khai báo mt mng s nguyên gm 100 phần t
Cách 1:
int mangInt[];//Khai báo một con trỏ đến mảng các số nguyên
mangInt=new int[100];//Tạo ra mảng
Cách 2:
int mangInt[]=new int[100];
Ví d 2: Gi s ta có lp SinhVien đư đc đnh nghĩa, hưy khai báo mt mng gm 100
đi tng ca lp SinhVien
SinhVien arraySinhVien[]=new SinhVien[100];
Chú ý: Lúc này mi phần t ca mng arraySinhVien là mt con tr ca lp SinhVien và
hin gi mi phần t ca mng đang tr đn giá tr null. Để khi to tng phần t ca
mng ta phi lƠm nh sau:
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 24

arraySinhVien[0]=new SinhVien(“sv01”, “Nguyễn Văn An”, “Hưng Yên”);
arraySinhVien[1]=new SinhVien(“sv02”, “Nguyễn Thị Bình”, “Bắc Giang”);
….
arraySinhVien[99]=new SinhVien(“sv100”, “Đào Thị Mến”, “Hà Nam”);
Ngoài cách khai báo trên Java còn cho phép ta kt hp c khai báo và khi gán các
phần t ca mng theo cách sau:
int[] mangInt = {1, 3, 5, 7, 9};
To ra mt mng gm 5 phần t, các phần t ca mng lần lt đc gán các giá
tr là: 1, 3, 5, 7, 9
SinhVien[] mangSinhVien = {
new SinhVien(“sv01”, “Nguyễn Văn A”, “HY”),

new SinhVien(“sv02”, “Nguyễn Thị B”, “HN”),
new SinhVien(“sv03”, “Đỗ Thị Q”, “BG”),
null
};
Khai báo mt mng gm 4 phần t, giá tr ca các phần t lần lt đc khi gán
nh sau:
mangSinhVien [0]=new SinhVien(“sv01”, “Nguyễn Văn A”, “HY”)
mangSinhVien [1]=new SinhVien(“sv02”, “Nguyễn Thị B”, “HN”)
mangSinhVien [2]=new SinhVien(“sv03”, “Đỗ Thị Q”, “BG”)
mangSinhVien [3]=null
b) Truy xt đn các phần t ca mng mt chiu
Để truy xut đn phần t th ind ca mng ta s dụng cú pháp nh sau:
Tên_Mng[ind-1]
Chú ý: Phần t đầu tiên ca mng có ch s là 0.
Ví d:
int a[]=new int [3];//Khai báo và tạo ra mảng gồm 3 phần tử
Lúc này các phần t ca mng lần lt đc truy xut nh sau:
- Phần t đầu tiên ca mng là a[0]
- Phần t th 2 ca mng là a[1]
- Phần t th 3 đng thi là phần t cui cùng ca mng là a[2]
c) Ly v s phần t hin ti ca mng
Mng trong Java là mt đi tng, do vy nó cũng có các thuc tính và các
phng thc nh các đi tng khác. Để ly v s phần t ca mng ta s dụng thuc
tính length nh sau:
Bài ging Ngôn ng lp trình Java

Biên son: Nguyn Th Điu Page 25

Tên_mng.length
Ví d 1: Nhp vào mt mng và in ra màn hình

class ArrayDemo{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập số phần tử của mảng:");
int n=sc.nextInt();
//Khai báo mảng với số phần tử bằng n
int a[]=new int[n];
//Nhập dữ liệu cho mảng
for(int i=0;i<a.length;i++){
System.out.print("a[" + i + "]=");
a[i]=sc.nextInt();
}
//In mảng ra màn hình
System.out.println("Mảng vừa nhập là");
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
} }
Ví d 2: Nhp vào mt mng s thực sau đó kiểm tra xem mng có phi là mt dưy tăng
hay không?
class ArrayDemo2{
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
//Nhập số phần tử của mảng
System.out.print("Nhập số phần tử của mảng:");
int n=sc.nextInt();
//Khai báo mảng với số phần tử bằng n
int a[]=new int[n];
//Nhập dữ liệu cho mảng
for(int i=0;i<a.length;i++){
System.out.print("a[" + i + "]=");

a[i]=sc.nextInt();
}
//Kiểm tra dãy tăng
boolean kt=true;
for (int i = 0; i < a.length-1; i++)
if(a[i+1]-a[i]<0){
kt=false;//thay đổi trạng thái cờ

×