Giáo trình Lập trình Java - Phạm Đình Nam

Y BAN NHÂN DÂN TỈNH LÂM ĐỒNG  
TRƢỜNG CAO ĐẲNG NGHỀ ĐÀ LẠT  
GIÁO TRÌNH  
MÔN HỌC/ MÔ ĐUN: LP TRÌNH JAVA  
NGÀNH/ NGH: THIT KTRANG WEB  
TRÌNH ĐỘ: CAO ĐẲNG  
Ban hành kèm theo Quyết định s: 1157/QĐ-CĐNĐL ngày 11 tháng 12 năm  
2019 ca Hiệu trưởng Trường Cao đẳng Nghề Đà Lạt  
(LƢU HÀNH NỘI B)  
Lâm Đồng, năm 2019  
LỜI GIỚI THIỆU  
Vài nét về xuất xứ giáo trình:  
Giáo trình này đƣợc viết theo căn cứ Thông tƣ số 03/2017/TT-BLĐTBXH ngày 01  
tháng 03 năm 2017 của Bộ Lao động – Thƣơng binh và Xã hội về việc Quy định về quy  
trình xây dựng, thẩm định và ban hành chƣơng trình; tổ chức biên soạn, lựa chọn, thẩm  
định giáo trình đào tạo trình độ trung cấp, trình độ cao đẳng.  
Quá trình biên soạn:  
Giáo trình này đƣợc biên soạn có sự tham gia tích cực của các giáo viên có kinh  
nghiệm, cùng với những ý kiến đóng góp quý báu của các chuyên gia về lĩnh vực công  
nghệ thông tin.  
Mối quan hệ của tài liệu với chương trình, mô đun/môn học:  
Căn cứ vào chƣơng trình đào tạo nghề Thiết kế trang web, giáo trình giúp cung cấp  
cho ngƣời học những kiến thức cơ bản về ngôn ngữ lập trình Java cũng nhƣ kỹ năng lập  
trình giao diện ngƣời dùng theo phƣơng pháp hƣớng đối tƣợng.  
Để học đƣợc mô đun này ngƣời học cần có kiến thức cơ bản vlập trình cơ bản.  
Cấu trúc chung của giáo trình này bao gồm 5 chương:  
Lời cảm ơn  
Giáo trình đƣợc biên soạn trên cơ sở các văn bản quy định của Nhà nƣớc và tham  
khảo nhiều tài liệu liên quan có giá trị. Song chắc hẳn quá trình biên soạn không tránh  
khỏi những thiếu sót nhất định. Ban biên soạn mong muốn và thực sự cảm ơn những ý  
kiến nhận xét, đánh giá của các chuyên gia, các thầy cô đóng góp cho việc chỉnh sửa để  
giáo trình ngày một hoàn thiện hơn.  
Lâm Đồng, ngày 10 tháng 12 năm 2019  
Tham gia biên soạn  
1. Phạm Đình Nam  
2. Ngô Thiên Hoàng  
3. Nguyn Quỳnh Nguyên  
4. Phan Ngọc Bảo  
Trang 2  
Trang 3  
Tên môn hc: LP TRÌNH JAVA  
I. Vị trí, tính chất của môn học:  
1. Vị trí: đƣc btrí ging sau môn hc: Lập trình căn bản.  
2. Tính cht: Là môn hc tchn áp dụng cho trình độ Cao đẳng Công nghthông tin  
(ng dng phn mm).  
II. Mục tiêu môn học:  
1. Vkiến thc:  
-
Xác định rõ đặc điểm, môi trƣờng phát trin - hoạt động, khả năng ứng dng ca  
ngôn ngJava;  
-
-
Trình bày đƣợc qui trình biên son, biên dch và thc thi mt ng dng Java;  
Trình bày đƣợc khái niệm, tính năng, cách sử dng ca các nn tng ca Java  
nhƣ các kiểu dliu, các cấu trúc điều khin, kthuật hƣớng đối tƣợng,... ca  
Java;  
-
Liệt kê đƣợc tính năng, đặc điểm của thƣ viện đồ họa AWT cũng nhƣ cách xử lý  
các biến ctrong giao din ng dng;  
-
-
Trình bày đƣợc vkhái nim, cách xlý vi các lung vào ra dliu, tp tin;  
Trình bày đƣợc cách kết ni ng dng Java với cơ sở dliu và các thao tác  
tƣơng tác dữ liu: cp nht, truy vn,....  
2. Vkỹ năng:  
-
Viết và thực thi đƣợc các chƣơng trình ứng dng Java xlý mt syêu cầu đơn  
gin;  
Thiết kế đƣc các ng dng vi các giao diện đồ họa đp, thân thin vi các tính  
-
năng thông dụng, kết nối đƣợc và tƣơng tác đƣợc trên các hệ cơ sở dliu: thêm,  
xem, xóa,... dliu;  
3.  
Về năng lực tchvà trách nhim:  
-
Có khả năng tự nghiên cứu, tự học, tham khảo tài liệu liên quan đến môn học để  
vận dụng vào hoạt động hoc tập.  
-
Vận dụng đƣợc các kiến thức tự nghiên cứu, học tập và kiến thức, kỹ năng đã  
đƣợc học để hoàn thiện các kỹ năng liên quan đến môn học một cách khoa học,  
đúng quy định.  
III. Nội dung môn học:  
Trang 4  
 
Chƣơng 1: GII THIU TNG QUAN VNGÔN NGLP TRÌNH  
JAVA  
Mã bài : 1  
Mc tiêu:  
- Trình bày khái nim vJava: bn cht, lch sphát trin;  
- Nêu đƣợc mt số ứng dụng cơ bản, kiểu chƣơng trình Java;  
- Mô tả đƣợc môi trƣng phát trin (JDK), công cson tho Java;  
- Cài đặt đƣợc môi trƣờng phát trin, công cson tho, máy o Java;  
- Thái độ nghiêm túc, cn thn.  
1.  
Gii thiu vngôn nglp trình Java  
1.1 Java là gì?  
Java là ngôn nglập trình hƣớng đối tƣợng (tựa C++) do Sun Microsystem đƣa  
ra vào gia thp niên 90.  
Chƣơng trình viết bng ngôn nglp trình java có thchy trên bt khthng  
nào có cài máy o java (Java Virtual Machine).  
1.2 Lch sphát trin ca ngôn nglp trình Java  
Ngôn nglp trình Java do James Gosling và các công sca Công ty Sun  
Microsystem phát trin.  
Đầu thp niên 90, Sun Microsystem tp hp các nhà nghiên cu thành lp nên  
nhóm đặt tên là Green Team. Nhóm Green Team có trách nhim xây dng công nghệ  
mới cho ngành điện tử tiêu dùng. Để gii quyết vấn đề này nhóm nghiên cu phát trin  
đã xây dng mt ngôn nglp trình mới đặt tên là Oak tƣơng tự nhƣ C++ nhƣng loại bỏ  
mt số tính năng nguy hiểm ca C++ và có khả năng chạy trên nhiu nn phn cng  
khác nhau. Cùng lúc đó world wide web bắt đầu phát trin và Sun đã thấy đƣợc tim  
năng của ngôn ngOak nên đã đầu tƣ cải tiến và phát triển. Sau đó không lâu ngôn ngữ  
mi vi tên gọi là Java ra đời và đƣợc gii thiệu năm 1995.  
Java là tên gi ca một hòn đảo ở Indonexia, Đây là nơi nhóm nghiên cứu phát  
triển đã chọn để đặt tên cho ngôn nglp trình Java trong mt chuyến đi tham quan và  
làm việc trên hòn đảo này. Hòn đảo Java này là nơi rất ni tiếng vi nhiều khu vƣờn  
trồng cafe, đó chính là lý do chúng ta thƣờng thy biểu tƣợng ly café trong nhiu sn  
phm phn mm, công clp trình Java của Sun cũng nhƣ một shãng phn mm khác  
đƣa ra.  
1.3 Mt số đặc điểm ni bc ca Java  
Máy o Java (JVM - Java Virtual Machine).  
Tt cả các chƣơng trình muốn thực thi đƣợc thì phải đƣợc biên dch ra mã máy.  
Mã máy ca tng kiến trúc CPU ca mi máy tính là khác nhau (tp lnh mã máy ca  
CPU Intel, CPU Solarix, CPU Macintosh … là khác nhau), vì vậy trƣớc đây một chƣơng  
trình sau khi đƣợc biên dch xong chcó thchạy đƣợc trên mt kiến trúc CPU cthể  
nào đó. Đối vi CPU Intel chúng ta có thchy các hệ điều hành nhƣ Microsoft  
Windows, Unix, Linux, OS/2, … Chƣơng trình thực thi đƣợc trên Windows đƣợc biên  
dịch dƣới dạng file có đuôi .EXE còn trên Linux thì đƣợc biên dịch dƣới dng file có  
đuôi .ELF, vì vậy trƣớc đây một chƣơng trình chạy đƣợc trên Windows mun chy đƣợc  
trên hệ điều hành khác nhƣ Linux chẳng hn thì phi chnh sa và biên dch li. Ngôn  
nglập trình Java ra đời, nhvào máy ảo Java mà khó khăn nêu trên đã đƣợc khc  
phc. Một chƣơng trình viết bng ngôn nglp trình Java sẽ đƣợc biên dch ra mã ca  
máy o java (mã java bytecode). Sau đó máy ảo Java chu trách nhim chuyn mã java  
bytecode thành mã máy tƣơng ứng. Sun Microsystem chu trách nhim phát trin các  
máy o Java chy trên các hệ điều hành trên các kiến trúc CPU khác nhau.  
Trang 5  
   
Thông dch:  
Java là mt ngôn nglp trình va biên dch va thông dịch. Chƣơng trình nguồn  
viết bng ngôn nglập trình Java có đuôi *.java đầu tiên đƣợc biên dch thành tp tin có  
đuôi *.class và sau đó sẽ đƣợc trình thông dch thông dch thành mã máy.  
Độc lp nn:  
Mt chƣơng trình viết bng ngôn ngJava có thchy trên nhiu máy tính có hệ  
điều hành khác nhau (Windows, Unix, Linux, …) miễn sao ở đó có cài đặt máy o java  
(Java Virtual Machine). Viết mt ln chy mọi nơi (write once run anywhere).  
Hƣớng đối tƣợng:  
Hƣớng đối tƣợng trong Java tƣơng tự nhƣ C++ nhƣng Java là một ngôn nglp  
trình hƣớng đối tƣợng hoàn toàn. Tt cmi thứ đề cập đến trong Java đều liên quan  
đến các đối tƣợng đƣợc định nghĩa trƣớc, thm chí hàm chính ca mt chƣơng trình viết  
bằng Java (đó là hàm main) cũng phải đặt bên trong mt lớp. Hƣớng đối tƣợng trong  
Java không có tính đa kế thừa (multi inheritance) nhƣ trong C++ mà thay vào đó Java  
đƣa ra  
khái niệm interface để htrợ tính đa kế tha. Vấn đề này sẽ đƣợc bàn chi tiết  
trong chƣơng 3.  
Đa nhim - đa lung (MultiTasking - Multithreading):  
Java htrlập trình đa nhiệm, đa luồng cho phép nhiu tiến trình, tiu trình có  
thchy song song cùng mt thời điểm và tƣơng tác với nhau.  
Khchuyn (portable):  
Chƣơng trình ng dng viết bng ngôn ngJava chcn chạy đƣợc trên máy o  
Java là có thchạy đƣợc trên bt kmáy tính, hệ điều hành nào có máy ảo Java. “Viết  
mt ln, chy mọi nơi” (Write Once, Run Anywhere).  
Htrmnh cho vic phát trin ng dng:  
Công nghJava phát trin mnh mnhờ vào “đại gia Sun Microsystem” cung  
cp nhiu công cụ, thƣ viện lp trình phong phú htrcho vic phát trin nhiu loi  
hình ng dng khác nhau cthể nhƣ: J2SE (Java 2 Standard Edition) hỗ trphát trin  
nhng ng dụng đơn, ứng dng client-server; J2EE (Java 2 Enterprise Edition) htrợ  
phát trin các ng dụng thƣơng mại, J2ME (Java 2 Micro Edition) htrphát trin các  
ng dng trên các thiết bị di động, không dây, …  
2.  
Các ng dng Java  
2.1. Java và ng dng Console  
ng dng Console là ng dng nhp xut chế độ văn bản tƣơng tự nhƣ màn  
hình Console ca hệ điều hành MS-DOS. Lọai chƣơng trình ứng dng này thích hp vi  
những ai bƣớc đầu làm quen vi ngôn nglp trình java. Các ng dng kiu Console  
thƣờng đƣợc dùng để minh ha các ví dụ cơ bản liên quan đến cú pháp ngôn ng, các  
thuật toán, và các chƣơng trình ứng dng không cn thiết đến giao diện ngƣời dùng đồ  
ha.  
Hình 1.1 ng dng Console  
Trang 6  
 
public class HelloWorld  
{
public static void main(String args[])  
{
System.out.print("Hello World! Chao cac ban lop Cao Dang Lap Trinh May  
Tinh\n");  
}
}
2.2 Java và ng dng Applet  
Java Applet là loi ng dng có thnhúng và chy trong trang web ca mt trình  
duyt web. Tkhi internet mới ra đời, Java Applet cung cp mt khả năng lập trình  
mnh mcho các trang web. Nhƣng gần đây khi các chƣơng trình duyệt web đã phát  
trin vi khả năng lập trình bng VB Script, Java Script, HTML, DHTML, XML,  
cùng vi scanh tranh khc lit của Microsoft và Sun đã làm cho Java Applet lu m.  
Và cho đến bây gign nhƣ các lập trình viên đều không còn "mn mà" vi Java Applet  
na. (trình duyệt IE đi kèm trong phiên bản Windows 2000 đã không còn mặc nhiên hỗ  
trthc thi mt ng dụng Java Applet). Hình bên dƣới minh ha một chƣơng trình java  
applet thc thi trong mt trang web.  
Hình 1.2 ng dng Applet  
2.3 . Java và phát trin ng dng Desktop dùng AWT và JFC  
Vic phát triển các chƣơng trình ứng dng có giao diện ngƣời dùng đồ ha trc  
quan giống nhƣ những chƣơng trình đƣợc viết dùng ngôn nglp trình VC++ hay  
Visual Basic đã đƣợc java gii quyết bằng thƣ viện AWT và JFC. JFC là thƣ viện rt  
phong phú và htrmnh mẽ hơn nhiều so với AWT. JFC giúp cho ngƣời lp trình có  
thto ra mt giao din trc quan ca bt kỳ ứng dng nào. Liên quan đến vic phát  
trin các ng dng  
có giao diện ngƣời dùng đồ ha trc quan chúng ta stìm hiu chi tiết trong  
chƣơng 4.  
2.4. Java và phát trin ng dng Web  
Java htrmnh mẽ đối vi vic phát trin các ng dng Web thông qua công  
nghJ2EE (Java 2 Enterprise Edition). Công nghJ2EE hoàn toàn có thto ra các ng  
dng Web mt cách hiu qukhông thua kém công nghệ .NET mà Microsft đang quảng  
cáo.  
Hin nay có rt nhiu trang Web ni tiếng Việt Nam cũng nhƣ khắp nơi trên  
thế giới đƣợc xây dng và phát trin da trên nn công nghJava. Số ứng dng Web  
đƣợc xây dng dùng công nghJava chc chn không ai có thbiết đƣợc con schính  
Trang 7  
xác là bao nhiêu, nhƣng chúng tôi đƣa ra đây vài ví dụ để thy rng công nghJava ca  
Sun là một "đối thủ đáng gm" ca Microsoft.  
Chắc không ít ngƣời trong chúng ta biết đến trang web thông tin nhà đất ni tiếng  
ở TPHCM đó là: http://www.nhadat.com/. Ứng dụng Web này cũng đƣợc xây dng da  
trên nn công nghjava. Bn có thtìm hiu chi tiết hơn về công nghJ2EE tạo địa ch:  
2.5. Java và phát trin các ng dng nhúng  
Java Sun đƣa ra công nghệ J2ME (The Java 2 Platform, MicroEdition J2ME) hỗ  
trphát triển các chƣơng trình, phần mm nhúng. J2ME cung cp một môi trƣờng cho  
những chƣơng trình ứng dng có thchạy đƣợc trên các thiết bị cá nhân nhƣ: điện thai  
di động, máy tính bỏ túi PDA hay Palm, cũng nhƣ các thiết bnhúng khác. Bn có thể  
tìm hiu chi tiết hơn về công nghJ2ME tại đa ch: http://java.sun.com/j2me/  
3.  
Dch và thc thi một chƣơng trình viết bng Java  
Vic xây dng, dch và thc thi một chƣơng trình viết bng ngôn nglp trình  
java có thtóm tắt qua các bƣớc sau:  
- Viết mã ngun: dùng một chƣơng trình son thảo nào đấy (NotePad hay  
Jcreator chng hn) để viết mã nguồn và lƣu lại với tên có đuôi ".java"  
- Biên dch ra mã máy o: dùng trình biên dịch javac để biên dch mã ngun  
".java" thành mã ca máy ảo (java bytecode) có đuôi ".class" và lƣu lên đĩa  
- Thông dch và thc thi: ng dụng đƣợc load vào bnh, thông dch và thc thi  
dùng trình thông dch Java thông qua lnh "java".  
Đƣa mã java bytecode vào bộ nhớ: đây là bƣớc "loading". Chƣơng trình  
phải đƣợc đặt vào trong bnhớ trƣớc khi thc thi. "Loader" sly các files cha mã  
java bytecode có đuôi ".class" và np chúng vào bnh.  
Kiểm tra mã java bytecode: trƣớc khi trình thông dch chuyn mã  
bytecode thành mã máy tƣơng ứng để thc thi thì các mã bytecode phải đƣợc kim tra  
tính hp l.  
Thông dch & thc thi: cuối cùng dƣới sự điều khin ca CPU và trình  
thông dch ti mi thời điểm scó một mã bytecode đƣợc chuyn sang mã máy và thc  
thi.  
4.  
Công clập trình và chƣơng trình dịch  
4.1. JDK7  
Download JDK phiên bn mi nhất tƣơng ứng vi hệ điều hành đang sử dng từ  
địa chỉ java.sun.com và cài đặt lên máy tính (phiên bản đƣợc chúng tôi sdng khi viết  
giáo trình này là JDK 1.7.0). Sau khi cài xong, chúng ta cn cp nhật đƣờng dn PATH  
hthng chỉ đến thƣ mục chứa chƣơng trình dịch ca ngôn ngjava.  
Trang 8  
   
Hình 1.3 Cp nhật đƣờng dn  
4.2.Công cson tho mã ngun Java.  
Để viết mã ngun java chúng ta có thsdng trình son tho NotePad hoc mt  
số môi trƣờng phát trin htrngôn ngữ java nhƣ: Jbuilder của hãng Borland, Visual  
Café ca hãng Symantec, JDeveloper ca hãng Oracle, Visual J++ ca Microsoft,  
Trong khuôn khổ giáo trình này cũng nhƣ để hƣớng dn sinh viên thc hành  
chúng tôi dùng công cJCreator LE ca hãng XINOX Software. Các bn có thể  
download  
5.  
Bài tp  
Bài tp 1:.Trình bày khả năng của ngôn nglp trình Java  
Bài tp 2:.Hãy nêu những đặc điểm ca ngôn nglp trình Java  
Bài tp 3:Trình bày các ng dng ca ngôn nglp trình Java  
Bài tp 4: Download JDK phiên bn mi nht tƣơng ứng vi hệ điều hành đang  
sdng từ địa chỉ java.sun.com và cài đặt lên máy tính. Thực thi chƣơng trình  
HelloWorld.  
Trang 9  
 
CHƢƠNG 2 NN TNG CA JAVA  
Mã bài : 2  
Mc tiêu:  
Trình bày đƣợc khái niệm cơ bản vngôn ngJava: tp kí t, tkhóa, cu trúc  
chƣơng trình, các kiu dliu, các toán t, biến, hng,...;  
Xác định đƣợc các cấu trúc điều khiển cơ bản ca ngôn nglp trình Java;  
Đọc hiu và thc thi mt số chƣơng trình đầu tiên viết bng Java;  
Viết mt số chƣơng trình Java thực hin các yêu cầu đơn gin;  
Nghiêm túc, cn thn, sáng to trong hc lý thuyết và thc hành.  
2.1 Tp ký t, từ khóa, định danh  
2.1.1 Ký hiệu cơ sở  
Ngôn ngJava đƣợc xây dng tbký hiệu cơ sở sau:  
B26 chcái La-Tinh viết thƣờng (nh): a,b,...,z.  
B26 chcái La-Tinh viết hoa (ln): A,B,...,Z.  
B10 chshthp phân : 0,1,...,9.  
Bdu các toán tshc : + - * /  
Bdu các toán tso sánh: < > =  
Ký tgch ni:  
_ ( Khác du tr- ).  
Các ký hiu khác: ' " ; ,.: [ ] # $ & { } % ! . . .  
Đặc bit có khong trng dùng để ngăn cách các từ (phím Space). Các ký hiệu cơ  
sở đều có trên bàn phím.  
2.1.2 Các từ  
Ttrong Java đƣợc xây dng bi các ký hiệu cơ sở trên. Có 2 loi t: Tkhóa và  
tên.  
a. Tkhóa (Key Word)  
Là nhng từ có ý nghĩa hoàn toàn xác định, chúng thƣờng đƣợc dùng để khai báo  
các kiu dliệu, để viết các toán t, và các câu lệnh. Sau đây là mt stkhóa trong  
Java:  
asm  
clas  
dou  
frie  
auto  
cons  
else  
goto  
oper  
shor  
tem  
brea  
cont  
enu  
if  
case  
defa  
exte  
Inli  
catc  
dele  
float  
int  
char  
do  
for  
long  
regi  
stru  
type  
whil  
new  
retu  
swit  
unio  
priv  
sign  
this  
virt  
Prot  
Size  
thro  
void  
publ  
stati  
try  
unsi  
vola  
cdec  
hug  
_cs  
_ds  
_loa  
_ss  
_es  
_ex  
far  
inter  
_seg  
Nea  
pasc  
_reg  
_sav  
b. Tên hoc danh hiu (identifier):  
Là từ do ngƣời sdng tự đặt để gii quyết bài toán ca mình. Ttự đặt dùng để  
đặt tên cho hng, biến, hàm, tên kiu dliu mi,...  
Tên đƣợc đặt theo quy tc: phi bắt đầu bng mt chcái hoc du gch ni,sau  
đó là các chcái, chshoc du gch nối, và không đƣợc trùng vi tkhóa.  
Trang 10  
   
Tên có thviết bng chữ thƣờng hoc chhoa. Trong java có phân bit chữ  
thƣờng và chhoa.  
2.2 Cu trúc ca một chƣơng trình Java  
Java là mt ngôn ngthuần đối tƣợng (pure object). Tt ccác thành phần đƣợc  
khai báo nhhng, biến, hàm thtục đều phi nm trong phm vi ca mt lớp nào đó.  
Mt ng dng trong Java là mt tp hp các lp liên quan nhau, bao gm các lp trong  
thƣ viện do Java cung cp và các lớp đƣợc định nghĩa bởi ngƣi lp trình. Trong mt  
ng dng chcó mt Lp thực thi đƣợc. Đây là lớp đầu tiên đƣợc xem xét đến khi chúng  
ta thc thi ng dng.  
Lp thực thi đƣợc này có các đặc điểm sau:  
Có tên lp trùng vi tên tp tin cha nó.  
Phi khai báo phm vi là public  
Có chứa phƣơng thức:  
public static void main (String args[]){  
. . .  
}
là phƣơng thức đƣợc thực thi đầu tiên.  
Nếu nhiều lớp đƣợc định nghĩa trong một tập tin, chỉ có một lớp đƣợc khai báo  
public.  
2.3 Chƣơng trình java đầu tiên  
2.3.1. Chƣơng trình HelloWorld  
Trong ví dnày, chúng ta viết mt chƣơng trình ng dng in ra màn hình dòng  
ch"Hello World !". Đây là ng dng đơn gin chcó mt lp thc thi đƣợc  
tên là HelloWorld. Lp này đƣợc khai báo là public, có phƣơng thc main(), cha  
trong tp tin cùng tên là HelloWorld.java (phn mrng bt buc phi là .java).  
Hình 2.1 Dùng Notepad biên son tp tin cùng tên là HelloWorld.java  
Phƣơng thức System.out.print() sin tt ccác tham strong du () ca nó ra  
màn hình.  
Ta có thdùng bt kỳ chƣơng trình sọn thảo nào để biên soạn chƣơng trình,  
nhƣng chú ý phải ghi lại chƣơng trình với phn mrng là .java  
2.3.2. Biên son chƣơng trình bng phn mm Notepad ca Ms Windows  
Notepad là trình son thảo đơn giản có sn trong MS Windows mà ta có thdùng  
để biên soạn chƣơng trình HelloWorld. Hãy thực hiện các bƣc sau:  
.
Chy chƣơng trình Notepad:  
+ Chn menu Start \ Programs \ Accessories \ Notepad  
.
Nhp ni dung sau vào Notepad  
public class HelloWorld {  
public static void main(String args[]) {  
System.out.print("Hello World! Chao cac ban lop Cao Dang Lap Trinh May  
Tinh\n");  
Trang 11  
   
}
}
.
Save tp tin vi tên HelloWorld.java  
+ Chn menu File \ Save  
+ Ti ca sSave As hãy nhp vào:  
.
.
.
.
Save in: Thƣ mc nơi slƣu tp tin  
File Name: HelloWorld.java  
Save as type: All Files  
Nhp vào nút Save  
2.3.4. Biên dch và thc thi chƣơng trình  
Mca sMS-DOS: Chn menu Start \ Programs \ Accessories \  
Command Prompt.  
.
.
.
Chuyn vào thƣ mc cha tp tin HelloWorld.java  
Dùng chƣơng trình javac để biên dch tp tin HelloWorld.java  
javac HelloWorld.java  
+ Nếu có li, trên màn hình sxut hin thông báo li vi du ^ chvtrí li.  
+ Nếu không có li, tp tin thc thi HelloWorld.class đƣợc to ra.  
.
Thực thi chƣơng trình HelloWorld.class  
java HelloWorld  
Hình 2.2 Kết quthc thi chƣơng trình HelloWorld  
Trên màn hình sxut hin dòng chHello World! Chao cac ban lop Cao Dang  
Lap Trinh May Tinh  
2.4 Biến, hng  
2.4.1. Biến  
- Biến là vùng nhớ dùng để lƣu trữ các giá trcủa chƣơng trình. Mi biến gn lin  
vi mt kiu dliu và một định danh duy nht gi là tên biến.  
- Tên biến thông thƣờng là mt chui các ký tự  
(Unicode), ký s.  
Tên biến phi bắt đầu bng mt chcái, mt du gạch dƣới hay du  
Tên biến không đƣợc trùng vi các tkhóa (xem phlc các tkhóa  
Tên biến không có khong trng gia tên.  
dollar.  
trong java).  
- Trong java, biến có thể đƣợc khai báo bt kỳ nơi đâu trong chƣơng trình.  
Cách khai báo  
<kiu_d_liu> <tên_biến>;  
<kiu_d_liu> <tên_biến> = <giá_tr>;  
Gán giá trcho biến  
<tên_biến> = <giá_tr>;  
Trang 12  
 
Biến công cng (toàn cc): là biến có thtruy xut khắp nơi trong chƣơng  
trình, thƣờng đƣc khai báo dùng tkhóa public, hoặc đặt chúng trong mt class.  
Biến cc b: là biến chcó thtruy xut trong khi lnh nó khai  
báo.  
Lƣu ý: Trong ngôn nglp trình java có phân bit chữ in hoa và in thƣờng. Vì  
vy chúng ta cần lƣu ý khi đặt tên cho các đối tƣơng dữ liệu cũng nhƣ các xử lý trong  
chƣơng trình.  
Ví d:  
Import java.lang.*;  
import java.io.*;  
class VariableDemo  
{
static int x, y;  
public static void main(String[] args)  
{
x = 10;  
y = 20;  
int z = x+y;  
System.out.println("x = " + x);  
System.out.println("y = " + y);  
System.out.println("z = x + y =" + z);  
System.out.println("So nho hon la so:" + Math.min(x, y));  
char c = 80;  
System.out.println("ky tu c la: " + c);  
}
}
2.4.2. Hng  
- Hng là mt giá trbt biến trong chƣơng trình  
- Tên hằng đƣợc đặt theo qui ƣớc giống nhƣ tên biến.  
- Hng số nguyên: trƣờng hp giá trhng dng long ta  
thêm vào cui chui schữ “l” hay “L”. (ví dụ: 1L)  
- Hng sthc: trung hp giá trhng có kiu float ta  
thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu sdouble thì ta  
thêm tiếp vĩ ngữ “d” hay “D”.  
- Hng Boolean: java có 2 hng boolean là true, false.  
- Hng ký t: là mt ký tự đơn nm gia nm gia 2 du  
ngoặc đơn.  
o Ví dụ: „a‟: hng ký ta  
o Mt shng ký tự đc bit  
Ký tự  
\b  
Ý nghĩa  
Xóa  
lùi  
\t  
Tab  
\n  
\r  
\”  
\‟  
Xung hàng  
Du enter  
Nháy kép  
Nháy đơn  
Số ngƣợc  
\\  
Trang 13  
\f  
Đẩy trang  
\uxxxx  
Ký tunicode  
- Hng chui: là tp hp các ký tự đƣợc đặt gia hai du nháy kép “”. Mt hng  
chui không có ký tnào là mt hng chui rng.  
Ví dụ: “Hello Wolrd”  
Lƣu ý: Hng chui không phi là mt kiu dliệu cơ sở nhƣng vẫn  
đƣợc khai báo và sdng trong các chƣơng trình.  
2.5  
.
Các kiu dliệu cơ sở  
Kiu số  
- Java cung cp 4 kiu snguyên khác nhau là: byte,short, int, long. Kích thƣớc,  
giá trnhnht, ln nhất, cũng nhƣ giá trmặc đnh ca các kiu dliu số nguyên đƣợc  
mô tchi tiết trong bng.  
- Kiu mặc định ca các snguyên là kiu int.  
- Các snguyên kiu byte và short rt ít khi đƣợc dùng.  
- Trong java không có kiu snguyên không dấu nhƣ  
trong ngôn ngC/C++.  
Tên kiu  
byte  
Kích thƣớc  
1 byte  
short  
int  
long  
float  
double  
2 bytes  
4 bytes  
8 bytes  
4 bytes  
8 bytes  
Mt số lƣu ý đi vi các phép toán trên snguyên:  
- Nếu hai toán hng kiu long thì kết qulà kiu long.  
Mt trong hai toán hng không phi kiu long sẽ đƣợc  
chuyn thành kiểu long trƣớc khi thc hin phép toán.  
- Nếu hai toán hạng đầu không phi kiu long thì phép tính sthc hin vi kiu  
int.  
- Các toán hng kiu byte hay short sẽ đƣợc chuyn sang kiểu int trƣớc khi thc  
hin phép toán.  
- Trong java không thchuyn biến kiu int và kiểu boolean nhƣ trong ngôn ngữ  
C/C++.  
.
Kiu du chấm đng  
Đối vi kiu du chấm động hay kiu thc, java htrhai kiu dliu là float và  
double.  
Kiểu float có kích thƣớc 4 byte và giá trmặc định là 0.0f  
Kiểu double có kích thƣớc 8 byte và giá trmặc định là 0.0d  
Skiu du chấm động không có giá trnhnhất cũng không có giá trị ln nht.  
Chúng có thnhn các giá tr:  
Trang 14  
 
- Sâm  
- Số dƣơng  
- Vô cc âm  
- Vô cực dƣơng  
Khai báo và khi to giá trcho các biến kiu du chấm động:  
float x = 100.0/7;  
double y = 1.56E6;  
Mt số lƣu ý đi vi các phép toán trên sdu chấm đng:  
- Nếu mi toán hạng đều có kiu dn chấm động thì phép  
toán chuyn thành phép toán du chấm đng.  
- Nếu có mt toán hng là double thì các toán hng còn li sẽ đƣợc chuyn thành  
kiểu double trƣc khi thc hin phép toán.  
- Biến kiu float và double có thép chuyn sang kiu dliu khác trkiu  
boolean.  
.
Kiu ký tchar  
Java dùng 2 bytes cho kiu ký t, theo chun mã UNICODE (127 ký tự đầu  
tƣơng thích vi mã ASCII). Do đó, ta sdng tƣơng tnhƣ bảng mã ASCII.  
Kiu ký ttrong ngôn nglập trình java có kích thƣớc là 2  
bytes và chỉ dùng để biu din các ký ttrong bmã Unicode.  
Nhƣ vậy kiu char trong java có thbiu din tt c216 = 65536  
ký tkhác nhau.  
Giá trmặc định cho mt biến kiu char là null.  
.
Kiu chui ký tString  
Thc cht đây là mt lp nm trong tvin chun ca Java (Core API),  
java.lang.String  
Kiu chui là tp hp các ký tự đƣợc đặt gia hai dấu nháy kép “”. Một hng  
chui không có ký tnào là mt hng chui rng.  
o
o
Ví dụ: “Hello Wolrd”  
Lƣu ý: Hằng chui không phi là mt kiu dliệu cơ sở nhƣng vẫn đƣợc  
khai báo và sdng trong các chƣơng trình.  
.
Kiu lun lý boolean  
Nhn 2 giá trlà : true và false.  
- Trong java kiu boolean không thchuyn thành kiểu nguyên và ngƣợc li.  
- Giá trmặc định ca kiu boolean là false.  
.
Kiu mng  
Khai báo:  
+ int[] a ; float[] yt; String[] names;  
+ hoc: int a[]; float yt[]; String names[];int maTran[][]; float  
bangDiem[][];  
Khi to:  
+ a = new int[3]; yt = new float[10]; names = new String[50];  
+ maTran = int[10][10];  
Sdng mng:  
+ int i = a[0]; float f = yt[9]; String str = names[20]; int x = matran [2][5];  
2.6 Lnh, khi lnh trong java  
Giống nhƣ trong ngôn ngữ C, các câu lnh trong java kết thúc bng mt du  
chm phy (;).  
Mt khi lệnh là đoạn chƣơng trình gồm hai lnh trở lên và đƣợc bắt đầu bng  
Trang 15  
 
du mngoc nhn ({) và kết thúc bng dấu đóng ngoc nhc (}).  
Bên trong mt khi lnh có thcha mt hay nhiu lnh hoc cha các khi lnh  
khác.  
{ // khi 1  
{ // khi 2  
lnh 2.1  
lệnh 2.2 …  
} // kết thúc khi lnh 2  
lnh 1.1  
lnh 1.2  
} // kết thúc khi lnh 1  
{ // bắt đầu khi lnh 3  
// Các lnh thuc khi lnh 3  
// …  
} // kết thúc thi lnh 3  
2.7 Toán tvà biu thc  
2.7.1.Toán tshc  
Toá  
+
Ý nghĩa  
Cng  
-
Trừ  
Nhân  
/
Chia nguyên  
Chia dƣ  
Tăng 1  
Gim 1  
%
++  
--  
2.7.2.Toán ttrên bit  
Toán  
Ý nghĩa  
t
ử  
&
AND  
|
OR  
^
XOR  
<<  
>>  
>>>  
~
Dch trái  
Dch phi  
Dch phải và điền 0 vào bit  
tr
ng  
Bù bit  
27.3.Toán tquan h& logic  
Toán tử  
Ý nghĩa  
==  
!=  
>
So sánh bng  
So sánh khác  
So sánh lớn hơn  
Trang 16  
 
<
So sánh nhỏ hơn  
>=  
<=  
||  
So sánh lớn hơn hay bằng  
So sánh nhỏ hơn hay bằng  
OR (biu thc logic)  
AND (biu thc logic)  
NOT (biu thc logic)  
&&  
!
2.7.4.Toán tép kiu  
-
Ép kiu rng (widening conversion): tkiu nhsang kiu ln (không mt  
mát thông tin)  
-
Ép kiu hp (narrow conversion): tkiu ln sang kiu nh(có khả năng  
mt mát thông tin)  
<tên biến> = (kiu_d_liu) <tên_biến>;  
Ví dfloat fNum = 2.2;  
int iCount = (int) fNum; // (iCount = 2)  
2.7.5.Toán tử điều kin  
Cú pháp: <điu kin> ? <biu thc 1> : < biu thc 2>  
Nếu điều kiện đúng thì có giá trị, hay thc hin <biu thức 1>, còn ngƣợc li là  
<biu thc 2>.  
<điều kin>: là mt biu thc logic  
<biu thc 1>, <biu thc 2>: có thlà hai giá tr, hai biu thc hoc hai hành  
động.  
Ví d: int x = 10;  
int y = 20;  
int Z = (x<y) ? 30 : 40;  
// Kết quz = 30 do biu thức (x < y) là đúng.  
2.7.6 Thtự ƣu tiên tính từ trái qua phi và ttrên xuống dƣới  
Trang 17  
Cao  
()  
[]  
++  
--  
~
!
/
%
+
-
>>  
>>> (dch  
<<  
<
phi và  
>
>=  
!=  
<
==  
&
^
|
&&  
||  
?:  
=
<toánt>=  
Thấ  
2.8 Cấu trúc điều khin  
2.8.1. Lnh if else  
Cú pháp:  
if (Condition) {  
// Các lnh sẽ đƣợc thc hin nếu giá trca Condition là true  
}
if (Condition) {  
// Các lnh sẽ đƣợc thc hin nếu giá trca Condition là true  
} else {  
// Các lnh sẽ đƣợc thc hin nếu giá trca Condition là false  
}
Ví d:  
Lƣu chƣơng trình sau vào tp tin IfDemo.java :  
import java.io.*;  
public class IfDemo {  
public static void main(String args[]) {  
System.out.print("Vui long nhap mot ky tu:");  
try {  
int ch = System.in.read();  
if (ch == 'A') {  
System.out.print("Ban rat may man !");  
}
else {  
System.out.print("Ban khong gap may !");  
}
} catch(IOException ie) { System.out.print("Error:"+ie);  
}
}
}
Biên dich và thc thi có kết qunhƣ sau:  
Trang 18  
 
Hình 2.3 Kết quthc thi tp tin IfDemo.java  
2.8.2. Phép toán ?  
Cú pháp:  
(condition) ? Operation1 : Operation2;  
Nếu điu kin condition có giá trlà true lnh strvgiá trca biu thc  
Operation1, ngƣợc li strvgiá trca biu thc Operation2.  
Ví d:  
Lƣu chƣơng trình sau vào tp tin QuestionOp.java :  
import java.io.*;  
public class QuestionOp {  
public static void main(String args[]) {  
System.out.print("Vui long nhap mot ky tu:");  
try {  
int ch = System.in.read();  
int point = (ch == 'A') ? 10:0;  
System.out.print("Diem cua ban la:"+point);  
}
catch(IOException ie) { System.out.print("Error:"+ ie);  
}
}
}
Biên dch và thực thi đƣợc kết quả nhƣ sau:  
Hình 2.4 Kết quthc thi tp tin QuestionOp.java  
2.8.3. Lnh switch  
Cú pháp  
switch ( variable ) {  
Trang 19  
Tải về để xem bản đầy đủ
pdf 97 trang baolam 10/05/2022 6440
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình Java - Phạm Đình Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_java_pham_dinh_nam.pdf