Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,74 MB
Nội dung
ĐOÀN VĂN BAN - ĐOÀN VĂN TRUNG ĐOÀN VĂN BAN - ĐỒN VĂN TRUNG G iá o trình ĩrữơng 'cầồ' đAn 'g CONG NGHÊ & KINH TE HA NỘI THƯ VIỆN NHÀ XUẤT BẢN G IÁO DỤC VIỆT NAM Công ty cổ phẩn Sách Đại học - Dạy nghề, Nhà xuất Giáo dục Việt Nam giữ quyền công bõ' tác phẩm _ 120 - 2011/CXB/7- 83/GD Mã sổ: 7B807Y1-DAI M ỤC LỤC LỜI NÓI ĐẦU Chương NHẬP MƠN LẬP TRÌNH JAVA 1.1 Giới thiệu ngốn ngữ lập trình Java 1.2 Máy ảo Java (JVM) ' 13 1.3 Bộ công cụ phát triển JDK (Java Development Kit) .15 1.4 Các loại chương trình Java .16 BÀI TẬP 27 Chương CÁC THÀNH PHẦN c BẢN CỦA JAVA 2.1 Cấu trúc chương trình Ja va .28 2.2 Các lớp đối tượng 32 2.3 Các kiểu liệu 39 2.4 Các phép toán Java 43 2.5 Cấu trúc điều khiển A 50 2.6 Xử lý ngoại lệ 62 BÀI TẬP 69 Chương HƯỚNG ĐỐI TƯỢNG TRONG JAVA 3.1 Giới thiệu 72 3.2 Lớp (class) đồi tượng 72 3.3 Phạm vi thuộc tính kiểm sốt truy nhập thành phần lớp 80 3.4 Truyền tham sổ cho lời gọi h m 97 3.5 Các tham sổ chương trình 102 3.6 Phương thức tạo lập đối tượng .102 3.7 Sự kết thúc đối tư ợ ng 108 3.8 Hàm đệ q u y 110 3.9 Quan hệ kế thừa lớ p 112 3.10 Đa xạ nạp chồng .120 3.11 Giao diện mở rộng quan hệ kế thừa Java 126 BÀI TẬP ! .130 Chương CÁC LỚP C BẲN VÀ CẤU TRÚC DỮ LIỆU 4.1 Cấu trúc mảng Java .134 4.2 Các lớp Java 141 4.3 Cấu trúc tuyển tập đối tư ợ ng 163 4.4 Các cấu trúc liệu động .177 BÀI TẬP 186 Chương APPLET VÀ LẬP TRÌNH Đ HOẠ 5.1 Lập trinh applet 189 5.2 Các thành phần AW T 194 5.3 Các lớp xử lý đồ hoạ 202 5.4 Chọn mode để vẽ đồ hoạ 220 5.5 Xử lý hình ảnh âm 223 5.6 Bố trí sẳp xếp thành phần chương trinh ứng dụng 226 5.7 Xử lý kiện 231 BÀI TẬP 246 Chương LUỒNG VÀO/ RA VÀ TỆP TIN 6.1 Các 'luồng vào/ra 248 6.2 Gói java.io 249 6.3 Lập F ile 253 6.4 Các lớp xử lý tệp 258 6.5 Truy nhập tệp ngẫu nhiên 269 6.6 Truy nhập tệp theo đối tư ợ ng 270 BÀI TẬP .283 Chương LẬP TRÌNH C SỞ DƯ LIỆU VỞI JDBC 7.1 Giới thiệu 285 ODBC.’ 285 7.3 JD BC 286 7.4 Các lớp giao diện JDBC API 289 7.5 Kết nối sở liệu qua JD B C 290 7.6 Kiểu liệu SQL vả JAVA 294 7.7 Chương trình ứng dụng JDBC .295 BÀI TẬP 306 Chương BẢO MẬT VÀ AN NINH THÔNG TIN 8.1 Giới thiệu vấn đề bảo mật, an toàn hệ thống thông tin .308 8.2 Bộ nạp lớp kiểm tra byte code 310 8.3 Lớp SecurityManager vả Permission 317 8.4 Vấn đề bảo mật gói java.security 330 8.5 Vấn đề chứng thự c 340 BÀI TẬP 353 TÀI LIỆU THAM KHẢO 354 J2ịí n ói đau gơn ngữ lập trình J a v a Sun ( h t t p ĩ//ja v a s u n com) phát triển từ đầu năm 90 kỷ XX, nỏ trở thành ngơn ngữ lập trình hưởng đốt tượng ưa chng Cơng nghệ thơng ỉ ìn nhờ sô đặc điếm phù hợp cho công nghệ mạng I n t e r n e t , N dùng phổ biến toàn giới nhằm đáp ứng yêu cầu phớt triển ứng dụng mạng (W eb-baseđ '), phục vụ cho nhiều người sử dụng với môi trường thực ( p la t fo r m ) khác J a v a lị ngơn ngữ lập trình hồn chỉnh, thiết kê theo cách tiếp cận hưởng đổi tượng kế thừa, sử dụng lại; nâng cap ngơn ngữ lập trình trước Vê mặt cú pháp, J a v a giống với C++, ngơn ngừ lập trình hướng đoi tượng mở rộng c loại so tính dụng phức tạp dùng, thừa mặt ngơn ngừ lập trình như: loại bỏ kế thừa bội chúng có thê tạo nhữrtg lược đo liệu dạng đo thị lờ nguyên nhân gây phức tạp (rong hệ thơng VCỈ khơng đảm báo tỉnh nhẩt qn, tính đắn quan hệ hệ thong thông tin J a v a không cho phép thao tác so học kiêu (rỏ ngn gơc "con bọ" khó phái biên dịch, thực chương trình, Mịtc đích chỉnh J a v a đơn giản, thán thiện, hưởng đổi tượng vờ cách tân nhằm tạo phan mềm ứng dụng độc lập với môi trường sử dụng Nội dung cùa giáo trình trình bày tám chương Chương ỉ giới thiệu đặc trưng noi trội J a v a loại chương trình ứng dụng độc lập, chương trình a p p l e t , chương trình lai ghép J a v a Chương trình bày khái niệm sở cúa ngôn ngữ lập trình nêu cách xây dựng, tổ chức lớp đoi tượng chương trình ứng dụng; lệnh điểu khiển dịng thực chương trình, đạc biệt let chế xử lý ngoại ỉệ ho trợ đế tạo chương trình hoạt động tơt tình huống, thích ứng với điều kiện trơn sớ kiếm sốt loi, tình xảy Chương cung cấp khái niệm đặc trưng bán lập trình hướng đổi tượng, phân lích cách sử dụng chế đóng gói, che giấu thông tin, tinh đa xạ moi quan hệ, đặc biệt let quan hệ kế thừa lớp đổi tượng Chương để cập đến sổ ỉởp sở cửa J a v a kiểu cẩu trúc liệu phổ dụng, vấn để phát triển ứng dụng a p p l e t sử dụng giao diện đồ hoạ, âm thanh, hình ảnh dạng trang Web với nhiều vỉ dụ minh hoạ giới thiệu chương Chương giới thiệu lớp xử lý luồng liệu vào/ra chuân Vứ phương pháp, kỹ thuật tổ chức đọc, ghi lên loại tệp liệu Chirơng trình bày vẩn để kết sở liệu với JDBC nhăm tạo hệ thong phần mềm tích hợp từ nhiều loại hệ thong thông tin khác mạng Chương cuối giới thiệu số kỹ thuật báo mật thông tin, chữ ký sổ ủng dụng mật mã RSA đề đảm bảo an ninh cho hệ thống thông tin Trong chương cỏ nhiều vỉ dụ chương trình hoàn chỉnh, minh hoạ cho cách sử dụng khái niệm nêu Giáo trình biên soạn dựa kinh nghiệm giảng dạy tác giả nhiều năm khoá đào tạo đợi học, cao học ngành Công nghệ thông tin Đại học Quốc gia Hà Nội, Đại học Bách khoa Hà Nội, Đại học Khoa học Huê, Đại học Sư phạn Hà Nội, Đại học Bách khoa Đà iVang, Đại học Thái Ngun, Đọi học Cơng nghiệp Hà Nội, Giáo trình biên soạn ve Lập trình J a v a , ngồi sử dụng làm tài liệu học tập Lập trình hưởng đơi tượng ccm ngôn ngữ J a v a cho sinh viên hệ kỹ sư, cử nhân, học viên cao học ngành Công nghệ thông tin cho quan tâm đến phương pháp lập trình hướng đoi tượng đê phớt triển ứng dụng độc ỉập với môi trường, hay để xây dựtĩg Web s i t e mạng Các tác giả bày tỏ lỏng biết ơn chân thành tới bạn đong nghiệp đơn vị đào tạo kê Phòng Các hệ thong Phần mềm tích hợp, Viện Cơng nghệ Thơng tin, Viện Khoa học Công nghệ Việt Nam động viên, gỏp ỷ giúp đõ' đê hoàn chỉnh nội dung giảo trình Mặc dù CO gang rat nhiều, khó tránh khỏi thiêu sót, chúng tơi mong nhận ỷ kiến đóng góp bạn đọc để giáo trình ngày tot Thư góp ý xin gửi Công ty Co phần Sách Đại học - Dạy nghề, Nhà xuất Giáo dục Việt Nam, 25 Hàn Thuyên, Hà Nội Xin chân thành cảm on! CÁC TÁC GIẢ C hương NHẬP MƠN LẬP TRÌNH JAVA Chương giới thiệu khái quát ngôn ngữ lập trình J a v a : ■ Các đặc trưng nỗi bật ngơn ngữ lập trình J a v a ■ Các loại chương trình J a v a ■ Máy ảo J a v a ( J a v a V i r t u a l M a c h i n e ) ■ Mơi trường phát triển chương trình JDK ( J a v a D e v e l o p m e n t K i t ) 1.1 Giới thiệu ngơn ngữ lập trình Java 1.1.1 Java gì? J a v a phát triển Jam es G o s l in g bạn đồng nghiệp Sun M ic ro s y s te m , ban đẩu ngôn ngữ gọi Oak (cây sồi) vào năm 1991, sau năm 1995 đưọc đổi tên thành J a v a Ngôn ngữ J a v a tạo với mục tiêu "Viết (code) lần, thục thi nơi" (" W rite O nce, Run A nyw here") J a v a ngôn ngữ vừa biên dịch, vừa thông dịch Đầu tiên, mã chương trình nguồn biên dịch chương trình ja v a c c o m (trong JDK) dể chuyển thành dạng B y te Code Sau đó, thực thi loại máy cụ thể nhờ chương trình thơng dịch máy ảo JVM ( J a v a V i r t u a l M ach in e) Mục tiêu nhà thiết kế J a v a cho phép người lập trình viết chương trình lần, chạy phẩn cứng, môi trường cụ thể Môi trường thực thi S un M ic r o s y s te m hỗ trợ Sun S o l a r i s , L in u x Mac OS, FreeB SD , W indows, Mặc dù mục tiêu ban đầu cho I n t e r n e t , đặc trưng không phụ thuộc vào ( P la tf o r m ) , nên J a v a trở thành ngơn ngũ' lập trình cho I n t e r n e t Ngày nay, J a v a sử dụng rộng rãi để viết chương trình chạy I n t e r n e t Nó ngơn ngừ lập trình hướng đối tượng độc lập thiết bị, khơng phụ thuộc vào hệ điều hành J a v a không dùng để viết ứng dụng chạy độc lập hay chương trình a p p l e t , mà để xây dựng trinh điều khiển thiết bị cho điện thoại di động, PDA, thiết bị nhúng, 1.1.2 Một số đặc điểm nối bật ngơn ngữ lập trình Java Các đặc trưng ngơn ngữ lập trình J a v a là: ■ Đơn giản, thân thiện; ■ Hướng đối tượng; ■ ■ ■ ■ ■ Độc lập với ( p la tf o r m ) : phần cứng hệ điều hành; Mạnh mẽ an toàn; Lập trình mạng, phân tán; Thực đa luồng; Chuẩn hố a) Đơn giản, thân thiện Những người thiết kế ngôn ngữ lập trình mong muốn phát triển ngơn ngữ dê học quen thuộc với đa số người lập trình J a v a xây dựng tảng C/C+ + , có cú pháp giống c có đặc trưng hướng đối tượng C+ + Để đảm bảo đon giản lập trình, J a v a loại bỏ đặc trưng phức tạp C/C++ thao tác trỏ số học, không hỗ trợ định nghĩa nạp chồng toán tử ( o p e r a t o r o v e r lo a d in g ) , J a v a không sử dụng lệnh g o to f i l e h e a d e r (,h) không hỗ trợ kế thừa bội ( M u l t i p l e I n h e r i t a n c e ) C++, mà thay vào đó, J a v a đưa khái niệm giao diện ( i n t e r f a c e ) để hồ trợ tính kế thừa bội b) Hướng đối tưọìig Các dù' liệu phương thức kết hợp vào đơn vị cấu trúc tạo nên đối tượng Đối tượng xem thành phần chương trình hướng đối tượng (Obj e c t - O r i e n t e d ) , gồm hai thành phần chính: phần phương thức (m eth o d ) phần thuộc tính ( a t t r i b u t e ) Trong lập trình, phương thức đối tượng hàm thuộc tính biến, tham số hay hàng nội đối tượng (hay nói cách khác, tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng, thuộc tính mơ tả tính chất đặc trưng đối tượng Các đổi tượng thường đưọc trừu tượng hoá ( A b s t r a c t i o n ) bao gói ( E n c a p s u l a t i o n ) thành lớp ( c l a s s ) Hay nói cách khác, lớp nguyên mẫu ( p r o t o t y p e ) đối tượng giống tính chất đặc trung (các thuộc tính), tương tự hành vi ứng xử (các phương phức) có mối quan hệ với đối tượng lớp khác J a v a ngôn ngữ lập trình hướng đối tượng thực sự: ■ Hỗ trợ tất khái niệm hướng đối tượng bản: lớp, đối tượng, trừu tượng hố, bao gói, che giấu thông tin, kế thừa ( I n h e r i t a n c e ) , đa xạ (P o ly m o rp h ism ) bao gồm nạp chồng ( O v e r lo a d in g ) , viêt đè ( O v e r r id in g ) liên kết động (D ynam ic B in d in g ) ■ Mọi thực thể chương trình coi đối tượng, tức thể cụ thể lóp xác định ■ Chương trình tập hợp lớp ( c l a s s ) Các lóp xem kiểu đối tượng, sủ' dụng để tạo đổi tượng trao đổi vói nhằm thực thi nhiệm vụ giao Tất thứ đề cập J a v a liên quan đến đổi tượng định nghĩa trước, chí hàm chương trình viết J a v a (đỏ hàm m ain()) phải đặt bên lớp Một cách khái quát ta viết: Chương trình hướng đổi tượng = Các lớp + Ke thừa c) Độc lập với Đối với ngơn ngữ lập trình truyền thong B a s ic , P a s c a l , C/C+ +, phưong pháp biên dịch thực hình 1.1 Hình 1.1 Chu trình phát triển thực chương trình C/C++ Vói phần cứng (kiến trúc máy - mã máy) khác nhau, có trinh biên dịch khác để biên dịch mã nguồn chương trình cho phù hợp với phần cứng Do vậy, chạy phần cúng hay hệ điều hành khác bắt buộc phải biên dịch lại, nghĩa tất chương trình viết ngơn ngữ lập trình truyền thống phụ thuộc vào mơi trường mà chúng biên dịch Công nghệ mạng I n t e r n e t phát triển mạnh mẽ cung cấp nhiều dịch vụ tiện lợi cho nhiều ứng dụng khác (phần cứng, hệ điều hành, chưong trình tiện ích) khác nhau, ứng dụng mạng công nghệ Web Điều mà người dùng muốn lả cần có ngơn ngữ lập trình thật mạnh để khắc phục nhược điểm nêu trên, đặc biệt đế phát triển dễ dàng ứng dụng với Web mạng J a v a ngôn ngũ' thiết kể để đưa yếu tố lập trình lên mạng kết hợp với Web J a v a vượt qua nhược điểm cách dịch chương trình nguồn sang ngơn ngữ máy ảo không phụ thuộc vào phần cứng hệ lệnh cụ thể cả; sau cần thực hiện, thơng dịch sang hệ máy cụ thể hình 1.2 Ket chương trình dịch chuỗi b y t e co d e sở' bao gồm mã lệnh thực (Opcode) tham số máy lý thuyết (máy ảo) máv ảo J a v a (JVM - J a v a V i r t u a l M ach in e) 1.4,2 Chương trình applet J a v a a p p l e t loại ứng dụng nhúng chạy trang web trình duyệt web (Web B ro w se r), a p p l e t v i e w e r JDK Từ I n t e r n e t đời, J a v a a p p l e t cung cấp khả lập trình mạnh mẽ cho trang web A p p le t sử dụng để cung cấp tính tương tác với ứng dụng web mà thân HTML khơng hỗ trợ Q trinh phát triển chương trình J a v a a p p l e t với SDK tương tự chương trinh ứng dụng độc lập, bao gồm bước soạn thảo chương trình nguồn ( J a v a S o u rc e Code) ghi vào tệp F ile N a m e j a v a , dịch vó'i j a v a c đê tạo tệp lóp J a v a F ile N a m e c l a s s , sau chưa sử dụng chương trình thơng dịch mà phải nhúng vào tệp chủ HTML (HTML H o st F i l e ) sử dụng a p p l e t v i e w e r đế thông dịch cho kết chương trình Ngồi ra, dịch sử dụng chương trình ja v a d o c để chuyển sang tệp tâi liệu hoá HTML (HTML D o c u m e n ta tio n F ile ) , sử dụng ja v a h đề chuyển thành tệp đầu C/C++ (C/C++ H e a d e r F i l e ) dùng i db để gỡ lỗi chương trình Quá trình phát triển chương trình J a v a a p p l e t mơ tả hình 1.5 Ạ , Java I Tot Cditñ — tv ? I n r — _ _ d U i E ü ü J -H I Hình 1.5 Quá trinh phát triển chương trinh Java applet với SDK Một J a v a a p p l e t lả mở rộng, kể thừa lớp j a v a a p p l e t A p p l e t, trưòng hợp S w in g A p p le t, j a v a x s w i n g J A p p l e t Lớp ứng dụng a p p l e t phải viết đè phương thức từ lớp A p p le t J A p p l e t để thiết lập giao diện người dùng bên > Chương trình Ị.2: // Chương trình A p p le t P ro g ja v a im p o rt j ava a p p l e t A p p let ; im p o rt j a v a a w t.* ; //A p p le t hiển thị "Xin moi cac ban den voi lap trinh Java!" p u b li c c l a s s A p p letP ro g e x te n d s A p p let { // Đây hàm uỷ thác, trống p u b li c v o id ỉ n i t () { } // Đây hàm uỷ thác, nỏ trống p u b lic v o id s to p (} { } 2l // Viết đè hàm p a i n t () để hiển thị thông báo toạ độ (x = 40, y = 50) p u b l i c v o id p a i n t ( G r a p h i c s g ) { g d r a w s t r i n g ( "Xin moi cac ban den voi lap trinh J a v a ! ", 0, ) ; // Viết đè hàm d r a w A r c () để vẽ hình trịn (x = 60, y = 60) g d r a w O v a l (60, 60, 00, 0 ) ; } } Lóp A p p le t thuộc gói (p a c k a g e ) j a v a a p p l e t Lóp A p p le t bao gồm nhiều phương thức để điều khiển trình thực thi a p p l e t Để tạo lập a p p l e t , ta cần im p o r t hai gói thư viện sau: ■ java.applet javax.swing; ■ java.awt Lóp Applet Prog lớp con, kể thừa từ lớp Applet Các phương thức AppletProg: ìnit(), start(), stopO, destroyO thừa ká từ Applet mặc định phương thức không thực thi thao tác Phương thức paint () viểt đè để vẽ thông báo "xin moi cac ban den voi lap trinh Java !" lên hình đồ hoạ toạ độ (40, 50) vẽ hình tròn nội tiếp hỉnh chữ nhật cỏ toạ độ đỉnh góc trái (60, 60) chiều rộng chiều cao, 100 Lưu ý: thứ hiển thị lên hình đồ hoạ thực thi theo chể độ vẽ Sử dụng cú pháp sau để dịch a p p l e t tương tự dối với chương trình ứng dụng độc lập: j a v a c A p p l e t P r o g j a v a Dịch thành công lưu kết A p p l e t P r o g c l a s s thư mục thời Đẻ thực thi a p p l e t , ta cần tạo f i l e HTML F i l e HTML sử dụng thẻ a p p l e t co d e Thẻ a p p l e t lấy tham số đường dẫn f i l e a p p l e t Ví dụ sau tạo f i l e P ro g h tm l sử dụng thẻ a p p l e t với tham số w id th , h e i g h t xác định chiều rộng, chiều cao khung chương trình: < ! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML T n sitio n al//E N " > < h tm l> < c e n te r> < ap p let code = "A p p le tP ro g c la s s " w id th = " 300" h e i g h t = "200 " > < /a p p le t> < /b o d y > < /h tm l> 22 Lúc này, ta thực thi A p p le t P r o g bàng cách đùng trình duyệt web để mở f i l e P ro g h tm l, JDK để chạy file HTML, ta gõ câu lệnh sau; a p p l e t v i e w e r P ro g h tm l Ket thực P ro g h tm l hình 1.6 Hình 1.6 Kết q thực chương trình Prog2 Ta thấy có khác chương trình ứng dụng độc lập chương trình a p p le t: “ Đe thực thi chương trình úng dụng độc lập, ta dùng trình thơng dịch j ava, a p p l e t chạy trình duyệt (có hỗ trợ J a v a ) IE sử dụng công cụ a p p l e tv ie w e r , cơng cụ kèm với JDK ■ Q trình thực thi chương trình ứng dụng dộc lập bắt đầu kểt thúc phương thức m a in () Tuy nhiên, chương trình a p p l e t khơng làm Q trình thực a p p l e t xét sau ■ Các chương trình ửng dụng độc lập sử dụng S y s te m o u t p r i n t l n () để hiển thị kết hình đó, a p p l e t sử dụng phương thức d r a w s t r i n g () để xuất hình đồ hoạ Một câu hỏi đặt trình thực a p p l e t nào? Đe có câu trả lời, ta xét chu trình sổng a p p l e t mơ tả sơ đồ hình 1.7 Hình 1.7 Chu trình sống applet 23 ■ Trước tiên, a p p l e t tạo trình duyệt web trình thơng dịch a p p le tv ie w e r ■ Bước lả khởi tạo Điều xảy a p p l e t nạp xuống Quá trình bao gồm việc tạo lập đối tượng mà a p p l e t cần Phương thức i n i t định nghĩa đè để cung cấp hành vi để khởi tạo chương trình a p p l e t * Một a p p l e t khởi tạo, a p p l e t khởi động để bắt đầu thực thi lệnh s t a r t {} A p p le t khởi động ngừng trước Ví dụ, trình duyệt nhảy đến liên kết ỏ' trang khác, lúc a p p l e t bị dừng s t o p ( ), khởi động trở lại người sử dụng quay trang đó, Sự khác trình khởi tạo trình khởi động a p p l e t khởi động nhiều lần, trình khởi tạo xảy lần Phương thức s t a r t {) viết đè ( o v e r r i d e ) để cung cấp thao tác khởi động cho a p p l e t Phương thức s to p O gọi người sử dụng khơng cịn trang nữa, trang thu nhỏ lại dưói t a s k b a r ■ Kế tiếp phương thức d e s t r o y Phương thức giúp a p p l e t dọn dẹp trước giải phóng khỏi vùng nhớ, trước trình duyệt kết thúc Phương thức dùng để huỷ luồng ( t h r e a d ) hay trình chạy Phương thức d e s t r o y (} khác với phương thức f i n a l i z e () phương thức d e s t r o y chi’ dùng cho a p p l e t , f i n a l i z e () cách tổng quát để dọn dẹp nhớ Bảng 1.1 Các phương thức Applet Phương thức i n ì t {) s t a r t () s t o p {) d e s t r o y () r e p a i n t (} p a i n t () Chức Được gọi trinh khởi tạo a p p l e t , Trong trinh khởi tạo, tạo đối tượng để cung cấp cho a p p l e t Phương thức đưực dùng để tải hỉnh ảnh đồ hoạ, khởi tạo biến vả tạo đối tượng Được gọi a p p l e t bắt đầu thực thi Một trinh khởi tạo hoàn tất, thỉ a p p l e t khởi động Phương thức dùng đề khởi động lại a p p l e t sau ngừng trước Được gọi ngừng thực a p p l e t Một a p p l e t bị ngừng trước bị huỷ Được dùng để huỷ a p p l e t Khi a p p l e t bị huỷ nhớ, thời gian thực thi vi xử lý, không gian lưu trữ trả cho hệ thống Được dùng cửa sổ cần cập nhật lại Phương thức cần thông số đối tượng lớp G r a p h i c s Phương thức dùng để hiẻn thị đường thẳng ( l i n e ) , t e x t , hỉnh ảnh trẽn a p p l e t Đối số phương thức đối tưựng lớp G r a p h i c s ■ Phương thức p a i n t {) phương thức quan trọng khác Phương thức cho phép ta hiển thị hình, có the văn ( t e x t ) , đường thắng, màu nền, hình ánh, Phương thức xảy 24 nhiều lần suốt trình a p p l e t tồn Nó lặp lặp lại di chuyến từ cửa sổ trình duyệt sang cửa sổ khác Nó xảy cửa sơ trình duyệt thay đổi vị trí cùa hình Phương thức p a i n t () có tham số đối tượng lớp G r a p h ic s Lớp G r a p h ic s thuộc gói j a v a a w t, phải im p o r t vào chương trình a p p l e t 1.4.3 Chương trình lai ghép Một điều đáng lưu ý chương trình J a v a vừa chương trình ứng dụng độc lập, vừa a p p l e t Chức a p p l e t bỏ qua nỏ thực thi chương trinh ứng dụng độc lập ngược lại Nghĩa là, J a v a cho phép xãy dựng chương trình chạy Web B ro w s e r lẫn ứng dụng độc lập Một chương trình phải: ■ Định nghĩa lớp ứng dụng mớ rộng, kế thừa từ lớp A p p le t, J A p p le t; ■ Trong lớp ứng dụng phải có hàm m a in () Chương trình 1.3 sau minh hoạ điều > Chương trình 1.3: // Chương trình lai A p p A p p l e t j a v a im p o rt j av a a w t.G p h ic s; i m p o r t j a v a x s w in g J f ram e; im p o rt j a v a a p p l e t A p p le t; p u b l i c c l a s s A p p A p p let e x t e n d s A p p le t { p u b l i c v o i d i n i t (} { r e s i z e ( 0 , ) ; // Đặt lại kích thước } p u b l i c v o i d p a i n t ( G r a p h i c s g) { g d r a w s t r i n g { " X i n c h a o c a c b a n ! ", , ) ; } // Hàm m a i n (} đàm bảo chương trình chạy độc lập p u b l i c s t a t i c v o i d m a i n ( S t r i n g a r g s [] ) { A p p A p p l e t h = n e w A p p A p p l e t () ; //Tạo lập đối tượng A p p A p p l e t h i n i t (); // Khới lạo khung chương trình f lớp F r a m e J f r a m e f = n e w J f r a m e ( "Chương trình lai A p p A p p l e t " } ; f r e s i z e (2 0 ,1 ); // Đặt lại kích thước // Đặt đối tượng h vào trung tâm f f a d d ( " C e n t e r ", h ) ; f s h o w () ; // Hiến thị F r a m e f } } Sử dụng j a v a c để dịch hai trường họp Sau biên dịch chương trình, thực thi chương trình ứng dụng độc lập, nghTa sử dụng trình thơng dịch j a v a để thực thi cho kết hình 1.8 25 Hình 1.8 Chương trinh lai chạy chưcmg trinh ứng dụng độc lập Nhưng đồng thời chương trình A p p A p p le t lại thực thi a p p p l e t Tất nhiên, để a p p l e t thực thi phải tạo thẻ HTML thực nỏ vói trình thơng dịch a p p l e t v i e w e r sử dụng trình duyệt web Thực chương trình vó'i a p p l e t v i e w e r nhận được: Hình 1.9 Chương trình AppApplet thực thi applet Khi a p p l e t chạy trình duyệt web, đặc điểm thực hữu ích bạn muốn tải a p p l e t fra m e mới, Ví dụ, a p p l e t tạo để trao đổi ( c h a t) , số W e b s ite sir dụng cửa sổ c h a t riêng biệt để C h at Bạn kểt hợp đặc điểm fra m e a p p l e t vào chương trình Tóm ỉạì, chương trình ứng dụng độc lập chương trình a p p l e t có đặc trưng riêng phù hợp với loại ứng dụng khác Bảng 1.z Các chương trình ứng dụng độc lập Applet ứ ng dụng độc lập Java applet Khai báo Là lớp bẩt kỳ lớp Phải lớp gói thư viện lớp JApplet Giao diện đồ hoạ Tuỳ chọn Bộ nhớ tối thiểu Yêu cầu nhớ Cách nạp chương Nạp dịng lệnh trình Dữ liệu vào Appl e t Do trinh duyệt w eb định Bộ nhớ dành cho trình duyệt applet Thơng qua trang web Các tham số đặt tệp HTML Thông qua tham số dòng lệnh gồm địa kích thước trinh duyệt thực Mọi hoạt động bắt đầu kết Gọi hàm: init(), start(), thủcởmainO C/C+ + stop(), destroyO, paìnt(), Kiểu ừng dụng - ứng dụng máy chủ Server Các ứng dụng web - Công cụ phát triển phần mềm - ứng dụng máy khách Cách 26 thức BÀI TẬP 1.1 Trong số nhận định sau, câu đúng, câu sai? a) Bạn viết chương trình dạng thủ tục bang J a v a b) J a v a ngơn ngừ có kiểu liệu chặt chẽ c) J a v a ngơn ngũ lập trình hưóng đối tượng d) Ngôn ngữ J a v a cho phép phát triển chương trình ứng dụng độc lập với e) J a v a hỗ trợ để xây dựng w e b s i t e động g) J a v a ngôn ngữ biên dịch h) Chương trình ứng dụng độc lập viết J a v a thực thi thơng qua trình duyệt web i) Có phát triển chương trình chạy độc lập lẫn chạy thơng qua trình duyệt web 1.2 Sử dụng từ thích họp để điền vào c h ỗ mệnh đề sau: a) Trình j a v a làm nhiệm v ụ chương trình ứng dụng b) Sử d ụ n g để dịch chương trình J a v a từ f i l e j a v a sang d ạn g JVM l c) L ệnh .được sử dụng để thông dịch chương trình a p p l e t d) Lóp chương trình a p p l e t phải l A p p le t, J a p p l e t e) Chương trình a p p l e t chương trình nhúng v o hay chạy bàng J a v a g) Tên f i l e chưong trình J a v a tên c ủ a h) Chương trình a p p l e t sau dịch thành công p h ả i t h ẻ i HTML 1.3 Cài đặt JDK: Hãy cài đặt môi trường phát triển phần mềm, ví dụ E c l i p s e J C re a to r 1.4 Viết chạy chương trình chương trình 1.1, 1.2, 1.3 27 C hưong CÁC THÀNH PHÀN c BẢN CỦA JAVA Chương giới thiệu khái niệm, thành phần ngôn ngữ lập trình Java: ■ Các thành phần chương trình Ja v a ■ Cách tổ chức lớp đối tượng ■ Các kiẻu liệu ■ Biến, biểu thức phép toán xử lý liệu ■ Các cấu trúc điều khiển chương trình ■ Cơ chế xử lý ngoại lệ chương trình J a v a ■ Một sổ lớp cấu trúc liệu phổ dụng: mảng, s t r i n g , s t r i n g B u f f e r 2.1 Cấu trúc chương trình Java Các chương trình ứng dụng J a v a (ứng dụng độc lập J a v a a p p l e t ) thường tổ chức thực theo Dự án ( P r o j e c t ) Khi tạo dự án phần mềm tạo thư mục ( F o ld e r , D i r e c t o r y ) tương ứng máy tính Hệ thống phần mềm (chương trình) thường phức tạp nên phân tích thiết kế thường phải sử dụng "Nguyên lý chia để trị" để chia chúng thành số gói (P a c k a g e ), gói nhóm (Team) thực Mỗi gói tạo thành thư mục (S u b F o ld e r ) tương ứng chứa nhiều lớp hru trữ thành tệp ( F i l e ) lóp ( C la s s ) bao gồm thuộc tính phương thức (m eth o d ) để xử lý liệu, cấu trúc chương trình ứng dụng J a v a tổng quát có dạng: • Folder• • SubFolder • File Hình 2.1 Cấu trúc tổng quát chương trình Java 28 Phần đầu chương trình J a v a xác định gỏị thư viện cần tạo lập nhập vào sử dụng chương trinh Những gói dẫn nhập vào đe sử dụng chương trình với trợ giúp lệnh nhập im p o r t Ví dụ lệnh: im p o r t j a v a a w t * ; nhập gói j a v a aw t chứa lớp, giao diện để tạo đối tượng giao diện đồ hoạ GUI ( G r a p h ic s U s e r I n t e r f a c e ) Ký hiệu để tất lớp, giao diện thuộc gói Trường hợp muốn tạo gói thư viện lớp, giao diện, ví dụ gói m yProg, sử dụng câu lệnh sau đầu f i l e chương trình: p a c k a g e m yP rog; Từ khoá p a c k a g e dùng để đóng gói lớp, giao diện chương trình lại với thành gói đặt tên m yProg Đây cách hữu hiệu để lưu trữ lớp gần giống đặc tính, hành vi hoạt động thành khối thống Sau đó, cần sử dụng nhập im p o r t vào đầu chương trình Trong J a v a , tất mã, bao gồm biến, phương thức (hàm) khai báo, định nghĩa cần thực phạm vi lớp Bởi vậy, tất khai báo, định nghĩa lớp tiến hành sau lệnh nhập im p o r t Một chương trình có nhiều lớp, giao diện ( i n t e r f a c e ) Những lóp kế thừa ( e x te n d s ) từ lớp khác cài đặt ( im p le m e n ts ) giao diện Mỗi lệnh kểt thúc dấu chấm phẩy V- Ngoài câu lệnh, chương trình cịn bao gồm ghi chú, dẫn Khi dịch, chương trình dịch tự loại bỏ ghi Trong tất chương trình, sử dụng định danh ( I d e n t i f i e r ) để xác định tên gọi cho phần tử chương trình như: tên biển, tên hàm, tên trường liệu, Trong chương trình J a v a có sáu loại tên gọi khác là: ■ Tên gói (p a c k a g e nam es); ■ Tên kiêu, lóp ( ty p e , c l a s s nam es); ■ Tên trường liệu, biến thành phần liệu ( f i e l d nam es); ■ Tên phương thức (m eth o d nam es); ■ Tên biến cục kể tên biến tham so ( l o c a l v a r i a b l e nam es, i n c l u d i n g p a r a m e te r s ) ; ■ Tên nhãn (L a b e ls ) Việc đặt loại tên cho phép linh hoạt chương trình J a v a Chúng ta sử dụng tên gọi cho sáu loại tên gọi chúng phân biệt theo ngữ cảnh (không gian tên gọi - n a m e s p a c e s ) chúng chương trình Ví dụ chương trình: package R euse; c l a s s R euse { R e u se R e u se (R euse R eu se) { R euse: // ( ]) // (2) // ( ) // (4) 29 for {; ;) { if { R e u s e R e u s e ( R e u s e ) == R e u s e ) break R e u s e ; //(5) } return R e u s e ; //(6) } } Tạo gói có tên Reuse (1), chứa lớp Reuse (2) Lớp có phương thức tên Reuse có tham số hình thức Reuse (3) Reuse (4) nhãn khối cảc câu lệnh (B lo c k ) càn thực chương trình khởi khối điều kiện lệnh i f (5) thoả mãn Phương thức Reuse kết thúc trả lại kết giá trị tham so Reuse Để tiện cho việc lập trình, đặc biệt dự án lớn có nhiều nhóm tham gia dễ dàng theo dõi chương trình, nên thống cách đặt tên gọi chương trình Tên gọi phần tử chương trình tên lớp, tên hàm, tên biến, biến tham chiếu (đối tượng), tên thường từ, gồm số từ ghép lại Tên gọi phải đặt ngắn gọn, đon giản gần với nghĩa đối tượng mà chúng cần xử lý Trong J a v a , việc đặt tên phải thực theo quy ước thống sau: ■ Chỉ bắt đầu bàng chữ cái, dấu gạch dưới, ký tự $ ■ Khơng có khoảng trắng (dấu cách) tên gọi ■ Từ ký tự thứ hai, dùng chữ chữ số, dấu $, dấu gạch ■ Tên gọi không trùng vói từ khố ■ Có phân biệt chữ in hoa, chữ thường Ncoài để tiện theo dõi, quy định thống cách viết tên gọi lớp, biến, phương thức, sau: * Tên lớp: Tất chữ đầu từ tên lớp viết in hoa Ví dụ S in h V ie n tên lớp sinh viên ■ Tên biến đổi tượng, biến tham chiểu' Giống tên lóp, trừ từ viết thường Ví dụ s i n h v i e n sử dụng để đặt tên cho biến tham chiếu đôi tượng lớp s i n h v i e n ■ Têm hàm (phương thức): Giống tên biến, bổ sung thêm cặp ngoặc đơn cịn gọi tốn từ hàm Ví dụ s i n h v i e n () đặt tên cho hàm xử lý thông tin sinh viên chẳng hạn Tất nhiên, tên hàm đuợc phân biệt với số tham số, kiểu tham sô đe tạo định danh (chữ ký) hàm ( F u n c ti o n s i g n a t u r e ) ■ Tên đại lượng hằng: Tất chữ viết hoa, ví dụ P I số 7t bất biến chương trình Với quy ước đặt tên thống trên, dễ dàng phân biệt tên gọi lớp, biến, hàm hay mà khơng cần phải cỏ thêm thích chương trình khác Lưu ý, hầú hết gói thư viện JDK, mã nguồn mở thực theo quy ước 30 Tóm lại, cấu trúc tệp mã nguồn J a v a có cấu trúc nhưsau: ' [package p a c k a g e N a m e ; ] // Khai báo tên gói, tuỳ chọn [import j a v a a w t * ; ] // Khai báo tên thư viện sẵn có, cần dùng // Khai báo định nghĩa lớp dạng [Bổ n g h ĩ a ] class C l a s s N a m e [ extends A n y C l a s s ] In te rfa c e L ist] { [implements /* Ghi chú, cần */ // Khai báo biến // Khai báo định nghĩa hàm, phương thức } // Khai báo giao diện dạng [Bổ n g h ĩ a ] interface I n t e r f a c e N a m e [ extends A n y l n t e r f a c e ] { // Định nghĩa đại lượng hàng // Chỉ khai báo hàm (prototype): có định danh mà khơng có thân hàm } Trong đó: ■ Thứ tự câu lệnh khai báo biến, lóp, giao diện khơng quan trọng ■ Cặp dẩu ngoặc ’[' ']' sử dụng giống cú pháp c / C++, nghĩa nội dung chúng tuỳ chọn ( o p tio n ) , có the có khơng cần sử dụng ■ Tuỳ chọn [Bổ n g h ĩa ] ( m o d i f ie r ) có the sử dụng từ khoá bổ trợ xác định phạm vi lóp, giao diện, từ khoá: p u b l i c , a b s t r a c t cho lớp, giao diện công khai, sử dụng đưọc nơi lớp, giao diện trừu tượng Đối với lóp tuỳ chọn khai báo lóp cuổi f i n a l ■ Tuỳ chọn [ e x te n d s A n y C la ss] sử dụng cần xây dựng lóp kế thừa lóp cha xây dựng trước gói thư viện hay chương trình A n y C la s s Lưu ý, không sử dụng tuỳ chọn thỉ mặc định kế thừa lóp O b je c t gói j a v a la n g Nghĩa lóp chương trình J a v a lớp lóp vậy, chúng tạo thành cấu trúc mà gốc lớp Obj e c t ■ Tuỳ chọn [im p le m e n ts I n t e r f a c e L i s t ] sử dụng để cài đặt hàm khai báo, chưa định nghĩa nội dung thực danh sách giao diện I n t e r f a c e L i s t I n t e r f a c e L i s t gồm nhiều giao diện phân cách dấu y ■ Tuỳ chọn [ e x te n d s A n y l n t e r f a c e ] sử dụng cần khai báo giao diện kế thừa giao diện A n y l n t e r f a c e Khi biên soạn chương trình thường phải rõ tên (Name) f i l e chương trình J a v a , thư mục thời làm việc ( C u r r e n t D i r e c t o r y ) , thư mục lưu f i l e chương trinh nguồn ( S o u rc e P a th ) thư mục lưu kết (O u u t P a th ) Thông thường ba thư mục để đường dẫn gọi thư mực thời 31 Chương trình ứng đụng J a v a có nhiều f i l e chương trình Một f i l e chương trình có nhiều lớp, giao diện dịch ỉưu thư mục thời Lưu ý: ■ Tên f i l e chương trình J a v a phải trùng với tên số tên lớp, giao diện ■ Mỗi f i l e chương trình J a v a có lớp giao diện khai báo p u b l i c tên lớp, giao diện phải trùng với tên f i l e ■ Đổi với chương trình ứng dụng độc lập phải có lớp cỏ hàm m a in , thường lóp nên khai báo p u b l i c để chạy nơi tất nhiên tên phải trùng với tên f i l e chương trình 2.2 Các lớp đối tượng Trong ngơn ngữ lập trình Java, lớp đơn vị khn mẫu (Template) có chửa thuộc tính, trường (Field) liệu xác định đặc trưng phương thức (Method), hàm mô tả hành vi ứng xử nhóm thực thể Lớp sử dụng để tạo đối tượng cho biến tham chiếu (Reference variable) lóp khai báo Đối tượng thể (instance), cá thể lớp, Chúng hình thành tảng chương trình Java Một lớp đơn thường định nghĩa sau: [Bổ n g h ĩa ] c l a s s C la ss N a m e { // Khai báo thuộc tính: biến liệu thảnh phần DataType varName; // Định nghĩa phương thức: hàm thành phần [Đặc tính truy cập] ReturnType methodName {[paramList] ){ // Nội dung thực } } Trong dó: * Tuỳ chọn [Bổ n g h ĩa ] từ khoá: p u b l i c , a b s t r a c t cho lớp công khai, lớp trừu tượng ■ C lassN am e tên gọi dặt cho lớp * D a ta T y p e kiểu liệu, kiểu nguyên thuỷ i n t , lo n g , f l o a t , hay kiểu lóp lớp S in h V ie n ■ varN am e tên biến thành phần liệu lớp ■ Tuỳ chọn [Đặc t í n h t r u y c ậ p ] xác định phạm vi truy cập biến thành phần liệu, cỏ thể p u b l i c , p r o t e c t e d , p r i v a t e , s t a t i c , f i n a l hay mặc định ■ ReturnType kiểu trả lại kết cùa phương thức, hàm ReturnType có the DataType phương thức cần trả lại kết q tính tốn void phương thức khơng cần trả lại kết tính toán 32 ■ m ethođN am e tên phương thức ■ Tuỳ chọn [paramList] đanh sách tham sơ hình thức bao gơm dãy khai báo dạng DataType varName ngăn cách dấu V> Chương trình 2.1: Chương trình đơn giản nhập vào hai số nguyên hiển thị trung bỉnh cộng chúng tổ chức gồm có lớp TrungBinhCong sau: //Chương trình TrungBinhCong.java import java.io.*; public class TrungBỉnhCong { public static void main (String [] args) { int a, b ; String chuoi; Datalnputstream xau = new Datalnputstream (System ,in) ; System.out print ("Nhap vao so a = ") ; try { chuoi = xau.readLine () ; //Đọc vào dịng a = Integer.parselnt(chi); System.out.print ("Nhap vao so b = ") ; chuoi = xau.readLỉne(); b = Integer.parselnt(chuoi); System.out.println ("Trung bỉnh cong cua " + a + " va " + b + " la " + " : " + (a + b) /2) ; } catch(IOException loi) { System.out.println( "Loi vao/ra") ; } : } } Dịch thực chương trình cho kết hình 2.2 Hình 2.2 Kểt chương trình TrungBínhCong Trong chưong trình 2.1, cần nhập liệu vào nên phải nhập gói thư viện java.io Lóp TrungBinhCong có hàm main () khai báo bốn biến cục (Local) ỉà: int a, b ; String chuoỉ ; Dataĩnputstream xau = n e w Datalnputstream (System.in) ; Chương trình Java thực độc lập với nền, nên vào/ra số liệu không đơn giản ngơn ngữ lập trình truyền thống mà phải thơng qua lớp thư viện xây dựng sẵn lóp Datalnputs tr e a m Dữ liệu nhập vào dạng chuỗi ký tự Unicode để đảm bào không phụ thuộc vào thiết bị phần cứng 33 Câu lệnh cuối khai báo biến tham chiếu x a u tạo lập đối tượng lóp bàng tốn tử new D a ta ln p u tS tr e a m ( S y s te m ỉn ) Đẻ hiển thị thơng báo nhắc lên hỉnh, ví dụ "Nhap v a o s o a =", ta sử dụng lệnh S y s te m o u t p r i n t ( "Nhap v a o so a = "'} ; Như giới thiệu chương 1, J a v a ngôn ngữ lập trình kiểm sốt liệu chặt nên lệnh nhập liệu vào phải đặt cấu trúc xử lý ngoại lệ có dạng: try { // Nhập liệu } c a t c h (I O E x c e p tỉo n l o i ) { // Nếu có lỗi vào/ra - lo thỉ xử lý } Lệnh a = I n t e g e r p a r s e l n t ( c h u o ỉ }; thực chuyển dãy chữ số nhập vào cho c h u o ỉ thành số nguyên gán cho biến nguyên a Một vấn đề cần lưu ý tham sổ hàm S y s te m , o u t p r i n t I n ( ) có the xâu (dãy ký tự) số ghép với thông qua phép Tưong tự phép cộng số học, thứ tự thực phép cộng từ trái qua phải, khơng có cặp ngoặc đơn làm thay đổi thứ tự ưu tiên Neu hai toán hạng phép V liệu số chuyển đổi thành dãy chữ sổ (xâu) để ghép với xâu lại > Chương trình 2.2: Lớp S i n h v i e n có thuộc tính họ tên, địa chỉ, mơn học cơng khai, cịn điểm mơn học cần che giấu định nghĩa sau: // Chương trình s i n h v ì e n j a v a p u b lic c la s s sin h v íe n { p u b lic S tr in g hoTen; p u b lic S trin g d ia C h i; p u b l i c S t r i n g m onH oc; p r i v a t e f l o a t diem M H ; s t a t i c i n t S IS O ; // Có thể khai báo hàm để nhập, // // Mặc định kế thừa Obj e c t // Khai báo biến tham chiếu lớp // Khai báo biến tham chiếu cũa lóp // Khai báo biến tham chiếu lớp // Khai báo biển nguyên thuỷ lóp >// Khai báo biến nguyên thuỳ tĩnh cùa lớp hiển thị dừ liệu > Chương trình 2.3: Để tiện lợi cho việc nhập liệu, xây dựng lóp M y ln p u t riêng vả đặt gói i n p u t đưọc xem lớp chương trình thư viện để người sừ dụng Lớp M y ln p u t có hàm s t a t i c để gọi trực tiếp thông qua tên lớp: ■ r e a đ B y t e () đọc vào số kiểu b y te ; ■ r e a đ s h o r t () đọc vào số kiểu s h o r t ; ■ r e a đ l n t () đọc vào số kiểu ỉ n t ; ■ re a d L o n g () đọc vào số kiểu lo n g ; ■ re a d F lo a tO đọc vào số kiểu f l o a t ; 34 • r e a d D o u b l e () ■ r e a d c h a r () ■ re a d s trin g đọc vào số kiểu d o u b le ; đọc vào ký tự kiểu c h a r , ký tự; đọc vào xâu kiểu s t r i n g , chuồi ký tự // Gói chương trình thư viện M y l n p u t j a v a p a c k a g e i n p u t ; // T ạo gói có tên i n p u t im p o rt j av a io * ; p u b l i c c l a s s M y ln p u t{ s t a t i c p r iv a t e D a ta ln p u ts tre a m in p u t = new D a t a l n p u t s t r e a m ( S y s t e m in ) ; p u b l i c s t a t i c b y t e r e a d B y t e () { b y te b; try { S t r i n g l i n e = i n p u t r e a d L i n e () ; b = B y te p a rse B y te (lin e ); r e t u r n b; } c a tc h ( IO E x c e p tio n ex) { S y ste m o u t p r i n t I n ( "L oi v a o /r a " + ex) ; r e t u r n B y t e MAXVALUE ; / / T r ả lại giá trị cực đại b y t e có ngoại lệ vào/ra } } p u b l i c s t a t i c s h o r t r e a đ s h o r t {) { sh o rt s ; try { S t r i n g l i n e = i n p u t r e a d L i n e () ; s = S h o rt.p a rs e S h o rt(lin e ); re tu rn s ; } c a tc h (IO E x c e p tio n ex) { S y s te m o u t p r i n t l n ( "L oi v a o / r a " + ex) ; r e t u r n S h o r t MAXVALUE ; // Trả lại giá trị cực đại s h o r t có ngoại lệ vào/ra } } p u b l i c s t a t i c i n t r e a d l n t () { in t i; try { S t r i n g l i n e = i n p u t r e a d L ỉ n e () ; i = In te g e r.p a rs e ln t(lin e ); re tu rn ỉ ; } c a tc h (IO E x c e p tỉo n ex) { S y ste m o u t p r i n t l n ( "L o ỉ v a o / r a " + ex) ; r e t u r n I n t e g e r MAXVALUE ; //T r lại giá trị cực đại int có ngoại lệ vào/ra } } p u b l i c s t a t i c l o n g r e a d L o n g () { lo n g ; try { S t r i n g l i n e = i n p u t r e a d L i n e () ; 35 ... NHẬP MƠN LẬP TRÌNH JAVA 1.1 Giới thiệu ngốn ngữ lập trình Java 1.2 Máy ảo Java (JVM) ' 13 1.3 Bộ công cụ phát triển JDK (Java Development Kit) .15 1.4 Các loại chương trình Java. .. chương trình ứng dụng độc lập, chương trình a p p l e t , chương trình lai ghép J a v a Chương trình bày khái niệm sở cúa ngơn ngữ lập trình nêu cách xây dựng, tổ chức lớp đoi tượng chương trình. .. Chưoìig trình ửng dụng độc lập Chương trình ứng dụng độc lập loại chương trình giống chương trình ngơn ngữ truyền thống, chúng thực thi mà không cần hỗ trợ phần mềm khác Chương trình ứng dụng độc lập