1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình cơ bản với java quyển 7

194 60 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 194
Dung lượng 7,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một trong những đặc điểm nổi bột cùa ngôn ngừ Java là chương trình viết bang Java có thể chạy trên nhiều nền tàng khác nhau, và vi vậy nó có mặt trên hầu hết các môi trường máy tính với

Trang 3

MỤC LỤC

Lời nci đầu 11

CHƯỔNG 1: M Ở Đ Ả U 15

1 1 hưong trình máy tính là g ì ? 15

2 lập trình là gì? 16

3 khái niệm về ngôn ngừ lặp trình 17

4 5ơ lược sự phát triển và đặc điểm cùa ngôn ngừ lặp trình Java 21

5 Môi trường lặp trìiih và bicn dịch trẽn Java 23

6 lỗi và tim l ỗ i 26

7 Lhái niệm về lập trình hướng đối tư ợn g 27

8 Chương trình Java đẩu tiên 29

ỉ 1 Cấu trúc cùa một chương trình đơn giản 30

ị.2 Phân tích và thực thi chương trình Java đầu ticn 31

>.3 Ví dụ tính tổng hai số nguyên 34

Hài tập 38

CHIJCWG 2: CÁC KHÁI NIỆM VÀ PHÉP TOÁN c ơ S Ở 39

1 lỊp ký tự và từ tố 39

2 B ê n 4 0 s l Củ pháp khai báo biến 42

1.2 Sử dụng biến 42

:.3 H àn g 42

1.4 Khối chương trình và phạm vi cùa biến 43

3 Kiểu dữ ỉ i ệ u 44

4 T)án tử 48

Bài ập 57

C H U W G 3: CÁC CÂU TRÚC ĐIÈU KHIẾN 59

1 Ciu trúc rỗ nhánh 59

1 1 Cấu trúc lệnh i f 59

12 Cấu trúc lệnh i f e ls e 60

13 Cấu trúc lệnh switch 62

2 CiU trúc lặ p 64

21 Vòng lặp w h ile 65

22 Vòng lặp do while 66

23 Vòng lặp for 66

24 Lệnh break 68

25 Lệnh continue 69

25 Vòng lặp vô hạn 70

3 Xí lý ngoại lệ try catch 70

Bài tip 73

Trang 4

4 LÂP t r ìn h c ơ b ả n y jk lA V A

CHƯƠNG 4: LỚP VÀ ĐÓI TƯỢNG - 74

1 Khái n iệ m 75

2 Lớp 76

2.1 Khai báo lớ p 76

2.2 Biến và quyền truy c ậ p 78

2.3 Định nghĩa các phương thức 80

2.4 Phưưng thức khởi tạo 83

3 Đối tượng 85

3.1 Tạo đối tượng 85

3.2 Sử dụng đối tượng 86

3.3 Từ khóa th is 87

3.4 Từ khóa sta tic 89

4 Giải phóng bộ nhớ đ ộ n g 91

5 Tính đóng g ó i 91

6 Tính kế thừa 93

7 Tính đa hình 96

8 Các thuộc tính k h ác 98

8.1 Lớp trừu tượng 98

8.2 Giao d iệ n 99

8 3 Các G ói 100

8.4 Lớp Lồng trong 101

Bài tập 105

CHƯƠNG 5: HÀM - PHƯƠNG T H Ú C 109

1 Khái n i ệ m 109

2 Gọi phương thức và truyền giá trị cho tham số 110

2.1 Gọi phương thức 110

2.2 Truyền tham số cho phương thức 112

3 Phạm vi của B iến 115

4 Phương thức tĩnh 1 1 7 5 Phương thức chồng 118

6 Phương thức đệ q u i 120

Bài tập • 124

CHƯƠNG 6: VÀO/RA c ơ B Ả N 127

1 Luồng vào/ra trong Java 127

2 Lớp bao và bộ đ ệ m 129

3 Luồng vào/ra chuẩn 131

4 Ghi dừ liệu ra màn h ìn h 133

5 Nhập dừ liệu từ bàn ph ím 137

6 Luồng vào với lớp Scanner 140

Bài tập 144

CHƯƠNG 7: MÀNG 147

1 Khái n iệ m 147

2 Khai báo và tạo m à n g 1 4 7 3 Các thao tác với màng 150

3.1 Duyệt m ảng 150

Trang 5

M U CU C _ _ 5

\ 2 Sử dụng tham số kiểu mảng trong phương thức 151

J.3 Phương thức trà về kiểu mảng 152

>.4 Sao chép màng 152

4 Màng đa chiều 153

5 Màng rời rạc 155

6 Truyền tham số dòng lện h 156

Bài tập 158

CH ƯƠM G 8: XÂU KÝ T ự 161

1 Ciới thiệu 161

2 Nàng ký tự 161

3 L-Jp String 162

1 Các phương thức: length, charAt và getChars 163

2 So sánh các x â u 164

3 Tìm kiếm trên các x â u 166

' 4 Trích rút xâu con 168

'.5 Ghép xâu 168

' 6 Phương thức chuyển sang đối tượng String 169

27 Một số phương thức khác 170

4 L/p tách từ tố 172

Bài ạp 174

CIIUƠSỈG9: THAO TÁC TRỂN TỆP T IN 177

1 Gới thiệu 177

2 Lrp F ile 179

3 Đ)C dừ liệu theo kiểu ký tự 181

4 Gũ dừ liệu theo kiểu ký t ự 183

5 ĐỉC dừ liệu theo kiểu nhị p h â n 185

5 1 Lớp InputStream 185

52 FilelnputStream 186

6 Gìi dử liệu theo kiểu nhị phân 187

61 OutputStream 187

62 FileOutputStream 188

7 Tộ) truy cập ngẫu nhiẻn 189

Bùi tip 193

Tài lộu tham khảo 195

PI1Ự L Ị C 197

1 Daih sách các từ khóa 197

2 Cả; hàm toán học 199

3 Cá: lớp vào ra trong Java 201

Trang 6

DANH SÁCH CÁC BẢNG

Bàng 1.1: Danh sách từ khóa trong Java 40

Bàng 1.2: Danh sách các kiểu dừ liệu nguycn thủy 45

Báng 2.3: Danh sách các kiêu dừ liệu tham ch iếu 45

Bàng 24: Các toán từ số h ọ c 49

Bàng 25: Các toán từ Bit 51

Bàng 26: Các toán tử quan h ệ 52

Bàng 27: Các toán tử lô -g ic 53

Bàng 28: Thứ tự ưu tiên của các toán tử 54

Bàng 3 1: M ột số lớp ngoại lệ trong Java 72

Bâng 4 1: M ô tả quyền truy cập trong Java 80

Bàng 42: Các gói trong J a v a 101

Bảng 6 1: Các đặc tả khuôn dạng trong hàm printf 134

Bảng 62: Một số ví dụ minh họa cách thay đổi độ rộng của số nguyên được in r a 134

Bàng 6.3: Căn lề trái các số nguyên được in ra 134

Bảng 6 í: T hêm số 0 vào trước các số nguyên trong trường hợp độ rộng lớn hơn độ dài cùa số n g u y c n 135

Bàng 6.5: Một số ví dụ in số nguyên theo định d ạ n g 135

Bủng 6 >: Các phương thức sừ dụng trong Scanner 142

Bàng 7 : M ò tả cấu trúc mảng a với 10 phần t ử 149

Bảng 7.2: M inh họa cấu trúc mảng b kích thước 3 x 4 154

Bảng 7.5: Biểu diễn mảng ary trong bộ nhớ 154

Bảng 8 : Các phương thức khởi tạo của lớp String 162

Bảng 9 : Các phương thức thao tác với tệp tin trong lớp PileReader 182

Trang 7

8 LẬP TRÌNH Cơ BẢN VỚI JAVA

Báng 9.2: Các phương thức thao tác với tệp tin trong lớp F ile W riter 184

Bàng 9.3: Các phương thức cùa lớp InputStream 186

Bàng 9.4: Các phương thức cùa lớp O u tp u tS trea m 187

Bàng P 1 Danh sách từ khóa trong J a v a 199

Bàng P.2 Tóm tắt một số phương thức tính toán số học thông dụng trong J a v a 201

Bàng P.3: Liệt kê các lớp xử lý v à o /r a 202

Trang 8

D A N H SÁCH CÁC HÌNH VẼ

Hình 1.1: Các bước trong lập trình 16

Hinh 1.2: Minh họa mã m á y 18

n in h 1.3: Ví dụ m ă A s s e m b l y 19

Hinlỉ 1.4: Ví dụ m à ngôn ngừ c 20

Hình 1.5: Các b ư ớ c phát triển và thực thi một chương trình J a v a 24

Hình 1.6: Các b ư ớ c xử lý trong một chương trình đơn g iả n 30

Hình 1.7: Khai báo tổng quát của một chương trinh đơn g iả n 31

Hình 6.1: Minh h ọa luồng v à o /r a 128

Hình 9.1: S ơ đồ m inh họa một tệp tin với n b y t e 178

Hình 9.2: S ơ đồ phan cấp các lớp và giao diện cùa gỏi java.i o 179

Trang 9

LỜI NÓI ĐÀU

Lập trình là công việc viết ra một chương trình máy tính để giải một bài toán hay thực hiện một công việc nào dó bằng máy tính Chưcmg trình dược viết trên một ngôn ngừ lập trình và sau đó được dịch ra mã đích (mã máy) mà máy tính có thể hiểu và thực thi được

Hai khía cạnh cần thiết đổ có thể lộp trình được là tìm giải thuật cho hài toán và hiếu ngôn ngữ lập trinh để có thê chuyên từ giải thuật sang mã chưưng trình Đối với những người mới lập trình thì thường làm việc với các bài toán đơn giàn về giải thuật, chù yếu mang tính minh họa cho việc thể hiện bàng ngôn ngữ lập trình như thế nào Cuốn sách này có mục tiêu là giới thiệu về ngôn ngừ lộp trình Java cho người bát đầu học lập trình

Java là một trong những ngôn ngừ lập trình thông dụng nhất hiện nay Một trong những đặc điểm nổi bột cùa ngôn ngừ Java là chương trình viết bang Java có thể chạy trên nhiều nền tàng khác nhau, và vi vậy nó có mặt trên hầu hết các môi trường máy tính với các loại ứng dụng khác nhau như các hệ thống nhúng, phần mềm trên thict bị di động, phần mềm trcn nền Web, Hơn nữa, Java là ngôn ngữ có bộ thư viện đồ sộ, luôn được cập nhật nhũng công nghệ mới và tối ưu nhất cho việc lập trình Vì vậy nhu cầu tìm hiểu, học ngôn ngừ Java ngày càng lớn, không chỉ trong cộng đong lập trình chuycn nghiệp mà còn cho nhiều đói tượng khác

Thông thường Java không dược chọn làm ngôn ngừ cho những nguời bắt đầu học lập trình Việc dạy ngay ngôn ngừ Java cho người bắt đâu lập trình là một cách tư duy mới phù hợp với tốc độ phát triển nhanh chóng cùa công nghệ thông tin ngày nay, cho phép người học

có ihể tiếp cận ngay những ngôn ngữ hiện đại, đi tắt đón đầu những công nghệ mới

Trang 10

12 LÂP TRÌNH Cơ BẢN VỚI JAVA

Việc thiết kế nội dung về ngôn ngữ Java cho người mới lập trinh

là một công việc không dơn giản Ngôn ngừ Java là ngôn ngữ hoàn toàn hướng đối tượng, tức là ngay từ những ví dụ đơn giản nhât thì

lượng, phương thức.

Vì vậy, trong cuốn sách này, từ chương 1 đến chương 3 sẽ giới thiệu cho chúng ta những khái niệm cơ bản trong mọi ngôn ngừ lập

trúc điều kiện và lặp. Một số kiến thức khác có sứ dụng các khái niệm

học tạm chấp nhận để có thể hiểu được các ví dụ và thực hành được các bài tập Tiếp theo từ chương 4 chúng tôi sẽ giới thiệu một cách hệ thống các khái niệm của lập trình hướng đối tượng trong Java, từ dó chúng ta sẽ nắm được các cấu trúc phức tạp hơn như các lứp vào/ra, màng, các lớp xù lý xâu, các lớp thao tác trên tệp

Với tiếp cận như vậy, chúng tôi chia nội dung giáo trình thành 9 chương, mồi chương trình bày lý thuyết về từng loại cú pháp trong ngôn ngữ, ý nghĩa, cách sử dụng và ví dụ minh hợa Cuối mỗi chương

là các bài tập dể người hục có thể tổng kết lại nội dung đã học và vận dụng trong giải quyết các bài toán thực tế

Cấu trúc cùa giáo trình như sau:

♦ Chương 1 giới thiệu tổng quan về các khái niệm lập trình, ngôn ngừ lập trình, môi trường lập trinh Các đặc điểm và lịch sử phát triển của ngôn ngừ Java cũng dưực giới thiệu Cuối chương là một số ví dụ đơn giản để có hình dung ban đầu thế nào là một chương trình viết bàng ngôn ngừ Java

♦ Chương 2 trình bày các khái niệm cơ bản cùa một ngôn ngữ lập trình và các phép toán cơ bản, cụ thể trên ngôn ngữ Java: tập ký

tự, từ tố, biến, hàng, từ khóa, các kiểu dừ liệu và toán từ

♦ Chương 3 trình bày cấu trúc rẽ nhánh và cấu trúc lặp trong ngôn ngừ lập trình Java Đây là các cú pháp không thể thiếu trong ngôn ngữ lập trình bậc cao, giúp người sử dụng có thể xây dựng các chương trinh có cấu trúc, giải quyết các bài toán phức tạp

Trang 11

Lơ NÓI ĐÁU 13

♦ Chương 4 giới thiệu một cách chi tiết, có hệ thống về lộp trình hướng đối tượng Các thuộc tính dược trình bày bao gồm: tính đóng gỏi, thừa kế, da hình, phạm vi truy cập Các lớp trừu tượng và Giao diện cũng dược trinh bày

♦ Chương 5 trình bày về việc mô-đun hóa chương trình, được

hồ trợ bời việc xây dựng hàm/phưưng thức Các đặc điểm của hàm/phưtmg thức được đề cập bao gồm khai báo, cách

sừ dụng, tham số trong phương thức, phương thức chồng, phương thức đệ qui, phạm vi biến

♦ Chương 6 trình bày các cách cơ bàn dể thực hiện đọc dữ liệu

từ bàn phím và ghi dữ liệu ra màn hình Các khái niệm về luồng dừ liệu, các lớp thư viện và các phương thức sử dụng cho vào ra cơ bàn được giới thiệu

♦ Chương 7 trình bày về kiểu dừ liệu mảng, cách khai báo, cách sử dụng màng một chiều và màng nhiều chiều

♦ Chương 8 trình bày về iớp xâu ký tự, cách khai báo, sử dụng, các phương thức trên xâu

♦ Chương 9 giới thiệu về kiểu dữ liệu tệp Các lớp thao tác trên đối tượng tệp bao gồm đọc/ghi trên tệp theo 2 dạng là dạng

ký tự và dạng nhị phân Các lớp và phương thức truy cập tệp ngẫu nhiên cũng được giới thiệu

Với nội dung được trình bày và thiòt kế như ở trên, chúng tôi hy vọig giáo trình này không chi có ích cho người mới học lập trình mum tim hiểu vê lập trình bàng ngôn ngừ Java, mà những người đã

biế V ề lập trình cũng có thể sừ dụng cuốn sách này như một tài liệu

than khảo có giá trị

Trong quá trình viết giáo trình này, chúng tôi đã nhận dược nhi u sự giúp đỡ và đóng góp PGS.TS Nguyễn Đình H óa1, PGS.TS Ngiyiễn Việt Hà2, TS Lê Nguycn Khôi2, ThS Vũ Bá Duy2, NCS Lê Qu.ng Hùng2 đã đọc và góp ý về cấu trúc, nội dung, và chinh sửa nhi u chi tiết về ngôn ngữ Chúng tôi cũng tham khào và sừ dụng một

số í dụ, hình vỗ, bảng biểu trong các tài liệu tham khảo của giáo trình nà) C húng tôi xin chân thành cảm ưn tất cả những đỏng góp quí báu

đó tể giáo trình được hoàn thiện

Các tác giả

1 Vin C ông nghệ Thông tin, ĐHQG Hà Nội

: TrÓTiỊg DU Công nghệ, ĐHQG Hà Nội

Trang 12

Chương 1

MỞ ĐÀU

Chương này sè giới thiệu các khái niệm cơ bán chương trình máy lính là gì, thế nào là lập trình, trình bày về ngôn ngữ lập trình, môi rường lập trình Chúng ta sẽ đề cập đến các bước để xây dựng một ciương trình, giới thiệu về lịch sừ phát triên, điểm mạnh và điểm yếu c.ia ngôn ngữ lập trình Java Đồng thời chúng ta cũng tìm hiểu về khái riệm ngôn ngừ lập trình hướng đối tượng - một nền tảng cơ sở trong thiết kế ngôn ngừ Java Phần cuối của chương sẽ giới thiệu một

sổ ví (iụ viết trong ngôn ngừ Java để chúng ta có những hình dung ban

1 Chương trình máy tính là gì?

VIồi khi bạn sừ dụng máy tính, bạn gọi thực thi các ứne dụng khác rhau tương ứng với từng công việc bạn mong muốn như “soạn thào vàn bản”, “gửi email”, “tính toán”, “xem phim”, “nghe nhạc”, C'íc úng dụng này còn được gọi là các chương trình hay phân mềm máy thh

Chương trình máy tính có thể hiểu là một tập cách lệnh được sắp xêp theo một thứ tự, cấu trúc nhất định mà máy tính có thể hiểu và thực tH dể giải quyết một bài toán nào đó

De tạo ra các chương trình này, người ta viết các chương trình nguồn trên các ngôn ngừ lập trình, sau đó dịch chúng ra thành các chưcm' trình đích có thể chạy được trên các máy tính nhất định

Trang 13

LÂP trình cơ bản \ ới java

2 Lập trình là gì?

Một chương trình máy tính là một tập các lệnh, như vậy có thể hiểu lập trình là quá trình viết ra các lệnh như vậy Ket quà của việc lập trình để giải quyết một bài toán là một chương trình máy tính được viết ờ một ngôn ngữ lập trình Trong một kiến trúc chung, giải quyết một bài toán bang lập trình bao gồm hai pha:

vấn dề và tìm giải thuật cho vấn đề đấy

- Pha thứ hai là pha thự c thi, tức là sau khi có giải thuật cho vấn đề, ta sẽ chuyển giải thuật đó sang một ngôn n£Ữ mà máy tính có thể hiểu được Thông thường ta sẽ viết một chương trình ờ một ngôn ngừ lập trình để thể hiện thuật toán, sau đó dịch chương trinh đó ra chương trình ở ngôn ngữ clích

mà máy tính có thể hiểu (thực thi) được

Bài toán

Chương trinh đích

Hình 1.1 Các bước trong lập trình

Hình l.l thể hiện các bước cơ bản trong qui trình giải quyết một bài toán bang lập trình Các bước chính bao gồm: xác định vấn đề, thiết kế thuật toán, và viết mã

Xác định vấn đề: Bước này bao gồm định nghĩa bài toán, xác

định dừ liệu đầu vào, xác định các ràng buộc, xác định thông tin đầu

ra, cách tổ chức kết quà đầu ra Bước này thường được phân tích và làm trên bút/giấy với ngôn ngữ tự nhiên thông thường

Thiết kế thuật toán: Bước này tìm ra giải thuật (thuật toán) để

giải quyết bài toán đặt ra Thuật toán là một chuồi các chi dẫn chính

Trang 14

CHƯƠNG 1 MÓ đau 17

xác để giãi quyết vấn đề Các chi dẫn này phải làm sao cho mọi người

có thể hiểu và thực thi dược Ví dụ về một giãi thuật đổi với bài toán kiểm tra xem một số tự nhiên N có phủi số nguycn tố hay không:

• Bước 1: Nếu N < 2 thì N không phải là số nguyên tố, kết thúc

• Bước 2: Ncu N = 2 thì N là số nguyên tố, kết thúc

• Bước 3: k = 2

• Bước 4: Nếu N chia hết cho k thì N không phải là số nguyên

tố, kết thúc

• Bước 5: k = k + 1, nếu k <=N/2 quay lại bước 4

• Bưức 6: Kết luận N là số nguyên tố, kết thúc

Một bài toán có thể có nhiều giải thuật, điều cần làm là tìm ra giải thuật tốt nhất có thể Giải thuật tốt nói chung là giải thuật tốn ít

Viết mã: Bước này làm nhiệm vụ chuyển từ giải thuật sang một ngôn ngữ lập trình Những người lập trinh khác nhau có thể chuyển một giải thuật thành các chương trình khác nhau (khác nhau về cách thể hiện, các chi tiết nhưng chung một kết quả) Một chương trình được viết tối ưu hay không phụ thuộc vào kinh nghiệm cùa người lập trình Trong quá trình viết chương trình, thông thường người lập trìnhphải thực hiện các bước kiểm thử, sửa lồi để đàm bảo giải thuật đượcthè hiện một cách chính xác

3 Khái niộni về ngôn ngữ lập trinh

Các thành phần chính của một máy tính bao gồm bộ xử lý trung tân (C'PU-Central Processing Unit), bộ nhớ (gồm bộ nhớ trong, bộ

n h í ngoài), các thiết bị vào/ra như màn hình, bàn phím, chuột Một

đ ư ơ n g trình phần mềm máy tính lúc chạy bao gồm một chuồi các chi thị lệnh (như các lệnh tính toán số học, chuyổn dừ liệu trên các địa chi

nh j, lệnh nhầy) được thực thi nhờ bộ xử lý trung tâm

Trang 15

chỉ thị lệnh này Các chương trình cũng có thể viết bang các ngôn ngữ lập trình khác, và từ các ngôn ngừ khác lại dược chuvên thành các ngôn ngữ máy để có thể chạy trực tiếp trên máy tính hiêu ngôn ngữ máy dó.

Có rất nhiều ngôn ngừ lập trình khác nhau, và được chia làm 3 loại tùy theo mức dộ gần gũi với ngôn ngừ máy:

• Ngôn ngừ máy (Machine Languages)

• Hợp niĩừ (Assembly Languages)

• Ngôn ngữ lập trình bậc cao (High-level Languages)

Ngôn ngữ máy

Ngôn ngừ máy là ngôn ngừ mà máy tính có thể trực tiếp hiểu được, là tập các chi thị lệnh cơ bản được xây dựng bcn trong máy tính Mỗi chi thị được tồn tại dưới dạng một chuồi nhị phân, ra lệnh cho máy tính thực hiện một công việc nhất dịnh tại một thời điểm

Ngôn ngừ máy phụ thuộc vào phần cứng của máy tính, tức bộ vi

xử lý cùa máy tính (nói cách khác, một ngôn ngừ máy cụ thể chỉ có thể được hiểu bởi một loại máy tính cụ thể tương ứng) Hình 1.2 minh họa một chương trình viết bàng ngôn ngừ máy (trên kiến trúc MIPS) làm nhiệm vụ cộng số ở thanh ghi 1 và thanh ghi 2 và lưu kết qua vào thanh ghi 6

Trang 16

là taiyếu dựa trên sự phát triên cua phan cứng máy tính, khà năng giải quyế các bài toán băng lập trình.

Tiếp theo ngôn ngữ máy, hợp ngừ là ngôn ngữ lạp trình bậc thâp, trong đó các chi thị bằng ngôn ngữ máy dà dược thay thế bang một íố từ tiếng Anh một số ký hiệu giúp dễ nhớ hơn Hợp ngữ làm cho còng việc lập trình dễ dàng hơn, thuận lợi cho việc phát triển các chirơig trình phức tạp hơn

Tuy nhiên, máy tính không thể hiểu dược các chi thị viết bang hợp rgừ IX* máy tính có thể thực thi chương trình, người ta phải sừ dụng một chương trinh có tên Assembler (là một loại chương trình

dịch, gọi là chương trìn h biên dịch) để chuyển các đoạn mã viết

báng lợp ngữ sang ngôn ngữ máy

Ví dụ: một chương trình viết bang Assembly đè hiển thị dòng

“ Hello, world!” lên màn hình (xem Hình 1.3)

Trang 17

để có thể tổ chức được các dữ liệu có cấu trúc, các lệnh điều khiến, các phép toán tưưng tự như cách sử dụng trong tính toán các bài toán thông thường Ví dụ như đoạn chương trình sau ở ngôn ngừ c dùng để

in xâu “Hello, World” ra màn hình (xem Hình 1.4)

Lưu ý ràng cũng như Assembly, chương trình viết bàng ngôn ngừ lập trình bậc cao cũng đòi hòi phải có một chương trình đổ dịch từ chương trình nguồn này sang ngôn ngừ mảy để máy tính có thể chạy dược chương trình này

Một số ngôn ngữ lập trình bậc cao được sử dụng rộng rãi hiộn nay là: COBOL, FORTRAN, BASIC, PASCAL, ADA, C/C++, c # , JAVA, VISUAL BASIC, PERL, PYTHON

Mồi ngôn ngữ được thiết kế với một mục đích nhất định COBOL được thiết kế hỗ trợ việc xâv dựng các ứng dụng kinh doanh

và hiện nay nó chủ yếu được sử dụng để xử lý dừ liệu trong kinh

Trang 18

CHƯCNG 1 MỞ DẤU 21

(Joan! FORTRAN dược thiết kế phục vụ việc tính toán toán học, và dược sử dụng chù yếu trong các tính toán số học BASIC được thiết kể

dể hcc và sử dụng dễ dàng ADA được phát triển nhàm phục vụ cho

Bộ Quốc phòng và chủ yếu được sừ dụng trong các dự án quốc phòng C/C++ kết hợp cả sức mạnh của hợp ngữ cũng như sự đơn giản và phổ biến cùa ngôn ngữ lập trình bậc cao (hệ điều hành Windows cùa Microsoft được viết sử dụng ngôn ngữ c++)

4 Sơ luọc sự phát triển và đặc điếm của ngôn ngữ lập trình

lava

ỉava xuất hiện lần đầu tiên vào năm 1992 như là một ngôn ngừ

d ù n g ‘.rong nội bộ tập đoàn Sun Microsystems để xây dụng ứng dụng diều Ihiển các bộ xử lý trên một số thiết bị như điện thoại di động, lò

vi sórg, thiết bị điện từ dàn dụng Sau đấy, được công bố vào năm 11>95 ìhư một phần cốt lõi của các hệ thống Sun Microsystems trên nen Jiva, và hiện nay là một trong những ngôn ngữ đang được phát triển 'à ứng dụng rộng rãi nhất

ava được coi là một sự phát triển mang tính cách mạng trong sự phát t ien các thế hệ cùa ngôn ngừ lập trình Các chương trình viết bàng ava có khả nâng chạy thống nhất trên nhiều nền tảng phần cứng khác rhau mà chỉ cần biên dịch một lần

Một S) đặc điểm nổi bật của Java:

Máy ảo Java

at cả các chương trình muốn thực thi được thì phải được biên dịch rí mã máy Mã máy cùa từng kiến trúc CPU của mỗi máy tính là khác rhau (tập lệnh mã máy cùa CPU Intel, CPU Solarix, CPU

M -icinosh, là khác nhau) Một chương trinh sau khi được biên dịch xcng cù có thể chạy được trên một kiến trúc CPU cụ thể nào đó

t ệ điều hành cùa một máy tinh đóng vai trò như một trung tâm

ch hu' để có thê khai thác nguồn lực cùa một máy tính Các máy tính bai đầi không có hệ điều hành, người ta sẽ tải và chạy chương trinh mót cá;h thủ công Để chạy được một phàn mềm trên một máy tính

Trang 19

LẨP TRÌNH Cơ BẢN V Ờ U AVA

phải thông qua hộ điều hành cài trên máy tính đó Như vậy thay hởiviệc nói một chương trinh có thể chạy trên một kiến trúc CPU nào đó,

ta nói chương trình có thể chạy trên một hệ điều hành nào đó

Người ta xây dime các hộ điều hành khác nhau chơ các loại CPU khác nhau Ví dụ: đối với CPU Intel chúng ta có thể chạy các hệ điều hành như Microsoft Windows, Unix, Linux, OS/2, Chương trình

duoi.ELF, vì vậy trước đây một chương trình chạy được trên W indows muốn chạy dược trên hệ điều hành khác như Linux chang hạn thì phài chinh sưa và biên dịch lại

Ngôn ngữ lập trình Java ra đời, nhờ vào m áy ảo J a v a (JV M -

Java Virtual Machine) mà khó khăn nêu trên đã được khắc phục

Một chương trình viết bang ngôn ngừ lập trình Java sẽ được biên dịch

ra mã của máy ảo Java (mà Java Bytecode) Sau đó máy ào Java chịu

trách nhiệm chuyển mã Java Bytecode thành mã máy tưưng ứng Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau

Thông dịch

Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch Chương trình nguồn viết bàng ngôn ngừ lập trình Java có đuôi *.java

đầu ticn dược biên dịch thành tệp tin có đuôi *.class (chứa mà Java

Bytecode) Và sau đó khi chạv chương trình Java (tức chạy các file có đuôi ’".class) thì máy ào Java sẽ thông dịch các lệnh Java Bytecode thành mã máy đê có thể chạy được trên hệ điều hành

Độc lập vói các nền tảng phần cứng khác nhau

Một chương trình viết bàng ngôn ngừ Java có thể chạy trcn nhiều máy tính có hệ điều hành khác nhau (Windows, Unix, Linux, .) miền sao ở dó có cài đặt máv ào Java (Java Virtual Machine) Như vậy chương trình Java có đặc điểm “viết một lần, chạy mọi nơi” Đây có thể coi như là tính khả chuyển (portable) cùa một chương trinh viết bằng Java

Trang 20

CHƯƠNG 1 MỞ ĐÁU 2 3

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 ngừ lập trinh hướng đối tượng hoàn toàn Tất cả mọi thứ đê cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước» thậm chí hàm chính của một chương trình viết bàng Java (đó là hàm main trong C/C++) cũng phải đặt bôn trong một lớp

Đa nhiệm - đa luồng (MultiTasking - Multithreading)

Java hồ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điêm và tương tác với nhau

Hỗ trợ mạnh cho việc phát triển ứng dụng

Ngoài Java chuẩn, Sun còn phát triển các hệ Java khác nhau phục vụ cho các loại ứng dụng khác nhau

- J2SE (Java 2 Standard Edition): Gồm các đặc tả, công cụ, API của nhàn Java giúp phát triển các úng dụng trên desktop

và định nghĩa các phần thuộc nhân cùa Java

- J2EE (Java 2 Enterprise Edition): Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng qui mô xí nghiệp, chù yếu để chạy trên máy chù (server) Bộ phận hay được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java để làm các ứng dụng web

- J2ME (Java 2 Micro Edition): Gồm các đặc tả, công cụ, API

mở rộng để phát triển các ứng dụng Java chạy trên điện thoại

di động, thỏ thông minh, thiết bị điện từ cầm tay, robot và những úng dụng điện tử khác

5 Môi trường lập trình và biên dịch trên Java

Các chương trinh Java, cũng như sự phát triển các chương trinh phần mềm trên các ngôn ngữ khác, thường trải qua 5 giai đoạn: Soạn thảo; Biên dịch, Nạp vào, Kiểm chứng; và Thi hành

Sau đây chúng ta tìm hiểu về các giai đoạn này khi nói về chương trình được xây dựng trên JDK 6.0 từ Sun Microsystems, Inc

Trang 21

2 4 LẬP TRINH Cơ BẢN VƠI JAVA

Hình 1.5 mô tả các bước của việc phát triển và thực thi một chưong trình viết trôn Java

Bộ biên dịch tạo các file

“ class" chừa bytecodes của chương trinh và lưu chúng

trên đĩa cứng

Class Loader đọc các file class" trên đĩa cứng và nạp 'bytecodes chừa trong chúng

vào bộ nhớ

Bytecodes verifier được thực thi nhằm đảm bảo bytecodes hợp lệ và không vi phạm các quy tắc bảo mật của Java

Máy ảo Java (JVM)

y

Interpretter và bộ thông dịch tức thời được sừ dụng đẻ chạy chương trình.

Hinh 1.5 Các bước phát triển và thực thi một chương trình Java

Giai đoạn 1: Viết chương trình nguồn

Trong giai đoạn này chúng ta sẽ viết chương trình nguồn (bàng ngôn ngừ lộp trinh, ờ đây là Java) để giải quyết bài toán đề ra Để làm dược công việc này, chúng ta phải sử dụng một chương trinh đổ soạn thào chương trình, thực hiện các chinh sửa cần thiết và lưu chương trình trên đĩa Một file chưưng trình nguồn Java có phần mở rộng “ java”

Trang 22

CHƯONC 1 MỞ ĐẮU 2 5

Hai trình soạn thảo dược sử dụng rộng rài trong các hệ thống

chưon' trình soạn thào đơn giàn như Window Notepad Có rât nhiều trình S)ạn thảo miễn phí khác được chia sè trên mạng Internet

Thông thường, để xây dựng chương trình nguồn một cách chuyêr nghiệp, được sử dụng nhiều hồ trợ cần thiết, chúng ta phải sử dụng nột môi trường phát triển tích hợp (Intergrateđ Development Environments - IDE) IDE cung cấp các công cụ hỗ trợ quá trình phát triển pian mềm, bao gồm các trình soạn thào giúp viết và chỉnh sửa chương trình, các chương trình phát hiện lồi và gỡ rối (debuggers) Một sò IDE phồ biến cho Java như: Eclipse (www.eclipse.org),

JCreatcr (www.jcreator.com), BlueJ (www.blueJ.org), jG RA SP (www.grasp.org) và jEdit (www.jedit.org)

Giai đoạn 2: Biên dịch một chương trình nguồn Java sang

mã Ja\a Bytecodes

Sm giai đoạn một, chúng ta dà có chương trình nguồn được hoàn ttành Dể chương trình này chạy được thì chúng ta cần dịch chương trình này sang mã Java Bytecode

T ong giai đoạn 2, người lập trình sừ dụng câu lệnh javac (trình biên dịch Java) để biên dịch một chương trình Ví dụ, để biên dịch một

j a ’ac Welcome.ja va

N:u chương trình được biên dịch thành công, một tệp có tên

Welcone.class dược tạo ra, chứa mã Java bycode cùa chương trình

Gai đoạn 3: Nạp một chuong trình vào bộ nhớ

Tiong giai đoạn 3, chương trình phải được nạp vào bộ nhớ trước khi nó cược thi hành Một công cụ là Class L oader (gọi là bộ nạp) lấy tất cả tác tệp có đuôi.c/£m chứa Bytecodes của chương trình và

cung cấp bời Java được sử dụng trong chương trình

Trang 23

2 6 l a p t r ìn h CO BAN VO I JAVA

Giai đoạn 4: Kiểm chứng Bytecode (Bytecode Verification)

Java thi hành một chính sách bảo mật rất mạnh, nhàm đám bảo các chương trình Java nhận dược từ môi trường mạng không phá hủy các tệp và hệ thống của máy chù Do đó, trong giai đoạn 4, khi các tệp

Bvtecodes để đảm bảo rằng chúng hợp lệ và không vi phạm các quy tắc bảo mật của Java

Giai đoạn 5: Thi hành

Trong giai đoạn 5, máy ảo Java thi hành chương trinh dưới dạng Bytecodes Trong các phiên bản ban đầu của Java, máy ảo Java chi đơn thuần thông dịch Java Bytecodes Việc này làm cho việc chạy chương trình Java rất tốn thời gian (bởi vì máy ào Java chi có thể thông dịch và thi hành một bytecode tại một thời điểm) Hiện nay, máy áo Java thục thi các bytecode sử dụng một chương trình kết hçrp

cả thông dịch và biên dịch tức thời (Just-in-time compilation)

Trong quá trinh thông dịch, máy ảo Java phân tích Bytecode nhằm tìm kiếm các phần 'hot spot’ (các phần bytecodes được thực thi thường xuyên) Với các phần như vậy, bộ biên dịch tức thời (hay Java HotSpot compiler) dịch các bytecodes sang ngôn ngừ máy bòn dưới Khi JVM bát gặp lại những phần đã được biên dịch này, nó sỗ sử dụng luôn ngôn ngữ máy đà được tạo ra trước đó đề tăng hiệu quà

Java Welcome

6 Lỗi và tìm lỗi

Khi lập trinh, thông thường chúng ta không thể viết một chương trình mà có thể chạy ngay được theo đúng thiết kế Trong và sau quá trình lập trình, chúng ta phải tiến hành kiềm thử và sửa lỗi chưorng trình Có ba loại lỗi thường gặp: lỗi cú pháp, lồi run-time (lúc chạy),

và lỗi lô-gic

Trang 24

CHƯONC 1 MỞ DẦU _ _ _ 2 7

l ỗi cú p háp là do viết sai cú pháp cùa ngôn ngữ Chương trình biên dch khi biên dịch sẽ phát hiện ra những lỗi cú pháp này và cảnh báo ch) người dùng để sứa Một số chương trình biên dịch có khả năng gjfi ý cách sửa lỗi, tuv nhiên không phải lúc nào cũng chính xác

Dê bici dịch dược thi chương trình phải không còn lồi cú phải, vì vậy lỗi cú pháp nói chung thuộc loại lồi đơn giản và dễ sửa

lỗ i run-tim e là lỗi xuất hiện trong khi chương trình dang chạy Khi gặ) lỗi dạng này chương trình sẽ bị dừng lại gây ra thông báo lồi

I Si lô-gic là lồi gặp phải trong trường hợp thuật toán không đúng, hoặc kiỉ thê hiện bâne ngôn ngừ lập trình không đúng như mô tà trong thuật tcán Khi có lồi lô-gic chương trình vẫn được biên dịch và chạy bình thường, nhưng kết quà ra không đúng như yêu cầu (trong một số trường lợp) Lồi lô-gic rất khó phát hiện ra, và thường gây ra những tác động rghiêm trọng, nhất là khi chương trình chạy đúng đa số trường hợp nhm g lại sai sót trong một số trường hợp (đầu vào) nào đó

Liu ý, để có thể chắc chán về tính dứng đắn cùa chương trinh, bạn eầr phủi chạy thử chương trình với nhiều bộ dừ liệu khác nhau và

so sánh kết quả mà chương trình tạo ra với kết quà mong muốn

7 Kiái niệm về lập trình hưóng đối tưọng

N 'ôn ngừ lập trình Java là ngôn ngừ hoàn toàn hưứng đổi tượng, liên quai đến xây dựng các lớp (class) và đối tượng (object) Khi viết một d ư ơ n g trình đơn giản nhất, chúng ta dà phải tiếp xúc với lớp, phương thức cùa lớp, và đổi tượng Vì vậy mặc dù đây là khái niệm kho, thường chi được giới thiệu sau khi đã học xong ít nhất một ngôn ngữ lập trình bậc cao, trong giáo trinh này chúng ta cần phải tìm hiểu nhíng rét cơ bản trong tiếp cận lập trình hướng đối tượng

N 'ôn ngừ lập trình phát triển từ lập trình bàng ngôn ngừ máy, chiyên sang hựp ngừ là một dạng ký hiệu bằng ngôn ngữ tự nhiên tha' cho các số 0, 1 đối với các câu lệnh Sau đó, ngôn ngừ lập trình bậccaocó cấu trúc, hướng chức nâng ra đời là một bước phát triển lớn đổi vái ;ác ngôn ngừ lập trình Ngôn ngữ lập trình bậc cao cho phcp chiơng trình được mô-đun hóa ờ mức cao, thuận tiện trong thiết kế

Trang 25

2 8 LẬP TRÌNH Cơ BÁN VỚI JAVA

các Cấu trúc dừ liệu phức tạp, vì vậy giúp giải quyết được nhiêu bài toán trong thực tế

Như chúng ta đã biết, ngôn ngừ lập trình dược phát triển đè xây dựng các hệ thống tự dộng hóa các tác vụ của con người, mô phỏng các hệ thống, công việc trong xã hội Vì vậy ngôn ngữ lập trình càng gần với tự nhiên càng dễ thực thi sứ mệnh của mình Chính vì thế sự phát triển từ ngôn ngữ máy lên hợp ngừ, rồi ngôn ngữ lập trình bậc cao càng làm tàng khả năng ứng dụng cùa các ngôn ngữ lập trình

Khi công nghệ thông tin phát triển ngày càng lớn mạnh, hâu hết các hoạt động, hệ thống xà hội đều có nhu cầu được mô phòng bang chương trình phần mềm Tiếp cận chi sừ dụng lập trình hướng chức năng trong ngôn ngừ lập trình bậc cao bộc lộ nhiều hạn chế Bàn chất của các hệ thống, các mối quan hệ trong xã hội không phủi là tập các chức năng, mà là các lớp đối tượng tương tác với nhau Các đối tượng

có đặc điểm và hành vi riêng Từ cách nhìn tự nhiên đay, việc ra đời ngôn ngừ lập trình hướng đối tượng là một bước tiến mới nữa, gần với

tự nhiên, dỗ dàng cho việc mô phỏng xã hội thực

Các mô hình thiết kế hướng đối tượng phàn mềm, về một số khía cạnh nào đấy, giống với cách con người sử dụng dê miêu tà các đối tượng trong thế giới thực Chúng tận dụng lợi thế của quan hệ lớp, trong đó các đối tượng thuộc một lớp cụ thể, ví dụ lớp các phưưng tiện giao thông, có các thuộc tính chung - ô tô, xe tải, xe ngựa, và xe trượt tuyết có rất nhiều điểm giống nhau OOD (Object-Orientcd Design hay thiết kế hưcVng đối tượng) thể hiện được quan hệ kế thừa giữa các lớp, trong dó lớp đối tượng dẫn xuất kế thừa tất cả các thuộc tính cùa đối tượng cha và thêm vào các thuộc tính cùa riêng nó

Thiết kế hướng đối tượng cung cấp hướng tiếp cận tự nhiên và mang tính trực quan cho quá trinh thiết kế phần mềm - cụ thể hơn, đó

là việc mô hình hóa các đối tượng thông qua các thuộc tính và hanh động của chúng như cách chúng ta miêu tà đối tượng trong thế giới thực OOD cũng mô hình hóa sự giao tiếp giữa các đối tượng Tư(/ng

tự như cách con người gửi thông điệp cho nhau, các đối tượng cùng giao tiếp thông qua thông điệp Ví dụ, một đối tượng tài khoản ngân hàng có thể nhận một thông điệp yêu cầu giảm số dư tài khoản một lượng nhất định vì khách hàng đã rút một khoản tiền

Trang 26

CHƯONC 1 MỞ ĐÁU 2 9

OOD dóng gói các thuộc tính và hoạt động vao dối tượng - các thuộc ính của một đối tượng và các hành động của nó gắn kết mật thiết v)i nhau Các đối tượng có đặc tính che giấu thông tin Điều này

có nghĩa là các đối tượng có thể giao tiếp với nhau thông qua các giao diện rủất định nhưng chúng không được biết các đổi tượng khác được thực tH như thế nào - các đối tượng không thể biết chi tiết cùa quá trình tH hành Chúng ta có thể sừ dụng thành thạo một chiếc ô tô, mà không cần biết chi tiết về máy móc, hộp truyền động, phanh và hệ thong xà bên trong - chi cần biết cách sử dụng bàn đạp tăng tốc, bàn đạp phình, bánh Che giấu thông tin, như chúng ta sẽ thấy là một đặc tím cơ bàn tạo ncn các ứng dụng phàn mềm tốt

Các ngôn ngừ lộp trình như Java có tính hướng đối tượng Việc lập trìrh sử dụng các ngôn ngữ như vậy được gọi là lập trình hướng đối tưcng (object-oriented programming - OOP), và nó cho phép người ạp trình thực thi các thiết kế hướng đối tượng trong hệ thống Các 1ỚỊ- Java chứa các phương thức (thực thi các hành dộng tương tự như hàn trong C) và các thuộc tính

Quan hệ giữa các lớp với các đối tượng cũng giống như quan hệ giữa cá: bản thiết kế và ngôi nhà Chúng ta có thể xây nhiều ngôi nhà

từ một 5Òn thiết kế cũng như tạo ra nhiều đối tượng từ một lớp Chúng

ta không thể nấu ăn trong bếp cùa một bản thiết kế, nhưng lại có thể nấu ăn rong bếp cùa một ngôi nhà Các lớp có thể có quan hệ với các lỏfp khá;

Đ)ng gói phần mềm vào các lớp cho phép việc sử dụng lại dễ dàng Sx dụng lại các lớp sẵn có khi xây dựng các lóp và chương trình mới giíp tiết kiệm dáng kể thời gian và công sức Sử dụng lại cũng giúp các lập trình vicn xây dựng những hệ thống tin cậy và hiệu quả hơn, bờ vì các lớp và thành phần cỏ sẵn thường đã dược kiểm tra và sửa lồi 'à cải thiện hiệu suất cẩn thận

8 Ckương trình Java đầu tiên

T n n g phần này chúng tôi giới thiệu những dòng mã đầu tiên để viết mộ chương trình trong Java Trước hết chúng ta sỗ tìm hiểu về

Trang 27

kiến trúc chung của một chương trình ca bản trong Java Tiếp theo thông qua các ví dụ những tác vụ cơ bản trong viết chương trình sẽ lần lượt dược giới thiệu: kiến trúc cơ bản cùa một chương trinh đơn giàn bao gồm những phần gì; một số phép toán xử lý dơn giản; làm thế nào các chương trình có thể nhận dữ liệu từ người dùng đe xứ lý,

và hiển thị kết quà như thế nào Sau đó, chúng tôi sẽ hướng dân làm thế nào để biên dịch và thực thi chúng? Đặc biệt, chúng tôi dua ra các

ví dụ và phân tích từng dòng lệnh trong mồi ví dụ để giúp người dọc

dễ hiểu hơn khi bát đầu với môn học này

8.1 Cấu trúc của một chương trình đơn giản

Một chương trình giải quyết những bài toán đưn giản thông thường bao gồm 5 phần chức năng (hình 1.6)

3 0 LẬP TRlNH Cơ BẢN VỚI JAVA

Hinh 1.6 Các bước x ử lý trong một chương trình đơn giản

- Phần thứ nhất là khai báo các thư viện sẽ dùng trong chương

trinh Java là một trong những ngôn ngữ lập trình có nhiều thư viện nguồn hồ trợ nhất Các ngôn ngữ lập trình đều có thư viện gồm các hàm, các lỏfp được xây dựng sẵn cho một

sổ công việc nào đấy hay được dùng Khi chúng ta viết chương trình chỉ cần khai báo các gói chứa các hàm, các lớp này, và gọi để sứ dụng lại

- Phần thứ hai là khai báo các biến đe lưu dữ liệu can xừ lý các biến chứa dữ liệu trung gian

- Phan thứ ba là các câu lệnh dùng để nhập dừ liệu vào đê xừ

lý Dừ liệu nhập vào có thể từ bàn phím, có thể từ các tì le chứa dữ liệu bên ngoài, hoặc có thể từ các nguồn khác như các thiết bị nhận tín hiệu

- Phần thứ tư là khối chức năng chính, thể hiện giải thuật (cáchthức, phương pháp) để giãi quyết bài toán đẻ ra

- Khối chức năng thứ 5, sau khi đã có kết quả, cần dưa kết quả tới người sừ dụng, ví dụ hiển thị ra màn hình, hoặc ghi vào file

Trang 28

CH/ƠNG 1 MỞ DẤU 31

Một khai báo tổng quát có dạng như sau (xem Hình 1.7):

// Khung tổng quát của một chương trình đon giản // khai báo thư viện

Hình 1.7 Khai bảo tồng quát của một chương trình đơn giản

Lưu ý, trong ngôn ngữ lập trình Java, các câu lệnh nằm trong các lớp Đối với một chương trinh Java, chúng ta có một lớp gọi là lớp

đưcc thực thi, các lệnh dược thực hiện lần lượt từ trên xuống dưới

8.2 Phân tích và thực thi chương trình Java dầu tiên

Dưới đây là một chương trình Java đơn giản để hiển thị một dòrg vãn bàn trên màn hình

Trang 29

Welcome to Java Programing!

Ví dụ 1.1 Chương trình hiển thị một dòng văn bản ưên màn hình

Phân tích chương trình

Java là một ngôn ngừ lập trình hướng đối tượng hoàn toàn Một chương trình viết trong Java (gọi tắt là một chương trình Java) dù đơn giản nhất cũng phải dưới hình thức là một lớp (class) Một chương trình Java có thể có nhiều lớp, trong đó có một lớp là lớp chính, trong

Khi chương trình được thực thi (chạy), sẽ bắt thực hiện các lệnh trong

bỏ qua các dòng chú thích này Ngoài ra, ngôn ngừ lập trình Java còn

hỗ trợ chú thích nhiều dòng Loại chú thích này bất đau với /* và kết thúc với */

/ * Đây là một kiều chú thích

truyền thống Chú thích nảy có thể

được viết trên nhiều dòng */

Dòng 4:

public class Welcomel

Khai báo lớp có tên ‘weicomei’ Một lớp được tạo bất đầu với từ khoá ‘class’, kế đến là tên lớp (và cũng chính là tên file) Từ khoá

‘class’ là bát buộc khi muốn khai báo một lớp hay còn gọi là định nghĩa một lóp, ‘welcome 1’ là tên của lớp Một định nghĩa lớp nằm trọn

Trang 30

vẹn g ừ a hai ngoặc nhọn mờ { và đóng } Các ngoặc này đánh dấu bắt

dâu Vi kết thúc một khối lệnh.

Dòng 7:

public static void main()

3ây là phương thức chính, từ đây chương trình bắt đầu việc thực

"ừ khoá ‘public’ đứng trước một phương thức xác định phạm vi truy cip từ bôn ngoài vào phương thức đó Nó cho biết phương thức này cia lớp có thể được truy xuất từ bất cứ đâu trong chương trình

vậy rruy ảo Java (JVM) có thể truy xuất phương thức này

Pòng 9:

S y s t e m o u t println("Welcome to Java Programing!");Pòng này hiên thị chuôi “Welcome t o Java P r o g r a mi ng ! ” tren màn hnh Câu lệnh hay phương thức ‘printlnO’ cho phép hiển thị chuồi iiược truyền ra màn hình, ờ đây ‘System’ là một gói các lớp đã định n'hĩa trước (out là một đối tượng đại diện cho thiết bị ra chuẩn- màn hnh) nó cho phép giao tiếp với các thiết bị đầu cuối như bàn phím vì màn hình

Biên dịch và thực thi ứng dụng Java

Eày giờ chúng ta xem xét khi đã có một chương trình nguồn Java, Um thế nào để chạy nó Già sừ ràng bạn đang sử dụng Java SE Development Kit 6.0 (JDK 6.0) của Sun Microsoftsystem (đây có thổ coi nhi một môi trường chạy ứng dụng Java)

Đ chuẩn bị biên dịch chương trình, mở một cửa sổ lệnh và chuyển tới thư mục nơi mà chương trình được lưu trừ Ví dụ, chương trình V elco m el.jav a được lưu trừ tại thư mục C :\E xam pIes\Java\, qua trìrh biên dịch và thực thi ứng dụng như sau:

S Đ ể biên dịch mã nguồn, ta sử dụng trình biên dịch java Trình biên

dịch xác định tên cùa file nguồn như mô tả dưới đây:

c :\Examples\Java>javac W e l c o m e 1 java

Trang 31

3 4 l a p TRINH C ơ BẢN VỚI JAVA

“bytecodes” tương ứng Đe chương trình thực thi được ta cần dùng trình thông dịch “Java interpreter” Lệnh được thực hiện như sau:

c : \ Ex a mp l es \ Ja v a > j a va Welcomel

Kết quà sẽ hiển thị trên màn hình như sau:

Welcome to Java Programing!

8.3 Ví dụ tính tổng hai số nguyên

Phần này trình bày ví dụ về chương trình tính tổng của hai số nguyên với dữ liệu được nhập vào từ bàn phím và sau đó hiển thị kết quả lên màn hình Cách vào/ra dừ liệu, khái niệm biến, kiểu dừ liệu, cách làm việc với một số phép toán số học sẽ được giới thiệu một cách

// Phương thức main bắt đầu thực thi ứng dụng Java

public static void m a i n (String a r g s []){

//Tạo Scanner đề thu đầu vào từ cửa sổ lệnh Scanner input = new S c a n n e r (System.i n ) ;

int numberl; // số đầu tiên để cộng int number2; // số thứ hai để cộng int sum; // tổng của numberl và number2

Trang 32

S y s t e m o u t prir.t f ( MSum is % d \ n M , sum);

import j a v a U t i l Scanner; //chương trình sử dụng lớp Scanner

Khai báo import trong dòng 3 chi ra rằng ví dụ này sừ dụng lớp

Sanncr được định nghĩa trước cùa Java từ gói java Util.

Dòng 5:

public class Addition

G)i nhớ ràng phần thân cùa mồi khai báo lớp bắt đầu bàng một dấu ng)ặc nhọn mở ({ - dòng 6) và kết thúc bằng một dấu ngoặc nhọn đóig (} - dòng 29) ử n g dụng bát đầu thực thi với phương thức main

(dmg 8-27) Dấu ngoặc nhọn trái (dòng 9) đánh dấu bát đầu phần thân

Dòng 11:

Scanner input = new Scanner(System.in);

chva câu lệnh khai báo biến (còn được gọi là một khai báo) chi ra tên (in>ut) và kiêu (Scanner) của biến được sử dụng trong chương trình

Trang 33

Lưu ý, trong lập trình hướng đối tượng các biến của một kiểu hay là đối tượng cùa một lớp có thể được hiểu như nhau Ở ví dụ này bàng từ

nhập từ bàn phím

Các câu lệnh khai báo biến tại các dòng 13-15:

int numberl; / / s ố đầu tiên

int number2; // số thú hai

int sum; // tổng của numberl và number2

Dòng 17:

S y s t e m o u t p r i n t ("Enter first integer: "); // Gợi ý

integer: ” ra màn hình Hiển thị chuồi này ra màn hình để hướng dẫn người dùng thực hiện một hành động (ở đây là nhập một số nguyên)

Dòng 18:

numberl = i n p u t n e x t l n t 0 ; //đọc số đầu tiên tù

ngưòi dùng

sử dụng phương thức nextlnt() cùa input (input là một đối tượng cùa lớp

Scanner) đê nhận một số nguyên được nhập vào từ người dùng thòng qua bàn phím Câu lệnh này được hiểu như: “number 1 nhận giá trị của input nextlntQ”

Trang 34

CHUOf'G 1 MỞ DẦU 3 7

Dòng 23:

sum = numberl + number2 // tinh tổng các số

trị đó cho biến sum bang cách sử dụng toán từ gán (=) ơ dây, có thê hiểu rhư sau: “sum nhận giá trị cùa numberl + number2” Khi chương trình 'ặp toán tử cộng (+), nó sử dụng giá trị được lưu trong các biến

numb’.rlnumber2 đế thực hiện tính toán (tính tồng)

Dòng 25:

S y s t e m o u t p r i n t f ("Sum is % d \ n M / sum);

diện cho một giá trị nguyên (trong trường hợp này là giá trị của sum)

Bời Viy phương thức p r in t/hiển thị “Sum is ” được theo sau bởi giá trị củi sum và một ký tự xuống dòng (\n) Chú ý ràng, các tính toán có thể điợc tính toán bên trong các câu lệnh printf. Chúng ta có thể kết hợp CÍC câu lệnh trong dòng 23 và 25 thành câu lệnh:

System.out.p r i n t f ("Sum is %d\nM, numberl + number2);Các lệnh biên dịch và chạy chương trình tương tự như trong ví

dụ 1 3iả sừ nhập vào hai số 45 và 72 thì ta có kết quả chạy chương trình rhư sau:

Enter first integer: 45

Enter seconde integer: 72

Sum is 117

Trang 35

4 Hãy trình bày sự hiếu biết của bạn về những điểm mạnh của Java

so với các ngôn ngữ lập trình bậc cao khác

5 Hãy trình bày các loại lỗi có thể có khi lập trình, nêu ý nghĩa từng loại lỗi

6 Hãy trình bày các bước để có thể chạy được một chương trình mã nguồn Java sử dụng Sun JDK

7 Hãy viết một chương trình Java để hiện ra màn hình ngày tháng nãm sinh cùa bạn và chạy chương trình sử dụng Sun JDK

Trang 36

Chương 2

CÁC KHÁI NIỆM VÀ PHÉP TOÁN c ơ S Ở

Chương này sẽ trinh bày tập ký tự và từ tố cùa Java, các khái nệm về biến, hàng, các kiểu dữ liệu, các toán từ Những khái niệm và cich sù dụng cơ bản về Lớp và Đối tượng cũng được giới thiệu nhàm gúp các bạn có thể theo dõi được nội dung cùa các chương tiếp theo.Các kiến thức trong chương này sẽ giúp bạn nắm chắc những thinh tố cơ bàn, giúp bạn hiểu và bắt đầu cho những chương trình đầu ti<n Điều quan trọng là khi bạn đọc mã nguồn nào liên quan đến các plan đã trình bày thì bạn có thể hiểu các câu lệnh một cách bản chất

1 Tập ký tự và từ tố

Ngôn ngữ lập trình được xây dựng từ thành phần cơ bàn nhất là

cá ký tự Từ các ký tự này ta có thể xây dựng nên tập các từ tố (tương

tự như các từ trong ngôn ngữ tự nhiên) Các cấu trúc ngôn ngừ như câi lệnh, cấu trúc điều khiển, các lớp được xây dựng từ các từ tố này

(siurce code)

Các từ tố của một ngôn ngừ lập trình được chia làm các loại:

s Từ khóa là tập các từ tố được xác định trước để thể hiện một

số qui dịnh cùa ngôn ngừ, như kiểu dừ liệu, cấu trúc cú pháp, xác định đặc điểm của biến, hàm, lớp, một số giá trị đặc biệt,

và một số từ khóa đặc biệt khác Ví dụ một số từ khóa trong Java: char, int, long, return, if, for, private, public, null, true, false,

s Các từ tố biểu diễn ký hiệu toán học, ví dụ như: +, * /, %,

Trang 37

4 0 LẬP TRÌNH Cơ BẢN VỚI JAVA

'S Các từ tố biểu diễn tên như tên biến, tôn hằng, tên hàm, ten

phải được khai báo không trùng với từ khóa

s Từ tố biểu diễn số, ví dụ số 256, 3.11,

Thông thường một ngôn ngữ lập trình xây dựng trên tập ký tự ASCII bao gồm tập các ký hiệu chừ cái tiếng Anh và các ký hiệu mở rộng, có mã từ 0 đến 255 Các loại từ tố thông thường chi dùng các chữ cái (A-Z, a-z), ký tự gạch dưới (_), dấu $, các chữ số (0-9), và các

Đảng 2.1 Danh sách từ khóa trong Java

2 Biến

Các chương trình phần mềm trong quá trình tính toán nói chung cần nơi để lưu trữ tạm thời dữ liệu Trong máy tính, dừ liệu được lưu trữ ở các ô nhớ của vùng bộ nhớ Những vị trí khác nhau trong bộ nhớ

Trang 38

CÓ thể được xác định bời các địa chi, mỗi địa chi xác định duy nhất một vị trí nhớ.

Một số ngôn ngừ trước đây yêu cầu lập trình viên quản lý mỗi vị trí ô nhớ thông qua địa chi, cũng như giá trị lưu trong nó Các lập trinh vieil dùng những địa chỉ này để truy cập hoặc thay đổi nội dung của các ô nhớ

Khi ngôn ngừ lập trinh phát triển, các ngôn ngữ lập trinh bậc cao cho phép chúng ta sử dụng các tên tượng trưng gọi là biến, các tên này chi đốn một vùng bộ nhớ, hav có thể coi biến là đại diện cho vùng nhớ, nơi lưu trữ các giá trị cụ thể

Các chương trinh 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 trinh Các yếu tố liên quan đến tạo ra biến và sử dụng biến bao gồm:

• Biến được xác định bời một tên biến Tên biến do người viết chương trình tự đặt

• Biến trong Java phải thuộc một kiểu nào đó, ví dụ biến kiểu

số nguyên int. Khi biến thuộc kiểu nào đó rồi thì miền giá trị

mà biến đó có thể nhận nằm trong miền giá trị của kiểu đó Ví

đền +2,147,483,648

• Mỗi biến có một phạm vi tác động (sử dụ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

Các quy tắc đặt tên biến khác nhau tuỳ vào ngôn ngữ lập trình Trong ngôn ngữ lập trình Java, các quy tắc đặt tên biến như sau:

'S Tên biến được bắt đầu bằng một chừ cái, ký tự gạch dưới (_J hay dấu s Các ký tự tiếp theo có thể là chữ cái, chừ sổ, dấu $ hoặc ký tự gạch dưới

và dấu $

CHƯƠNG 2 CAC KHÁI NIÊM VA PHÉP TOẢN c o s ở _ _ i !

Trang 39

4 2 LẢP t r ìn h c o b ả n vớ i JAVA

‘import’ là những từ khoá trong Java

2.1 Cú pháp khai bảo biến

Việc khai báo một biến bao gồm 3 thành phần: kiểu dữ liệu của biến, tên biế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 cùng kiểu, ta sử dụng dấu phẩy để phân cách các biến Cú pháp khai báo biến như sau:

<Kiểu dừ liệu> <tên biến> [=giá trị);

giá trị ban đầu là 5, ta có thể khai báo như sau:

ra khỏi khối phạm vi của biến thì biến được giải thoát khỏi bộ nhớ

2.3 Hằng

Một giá trị cụ thể của một kiểu dừ liệu là một hàng Ví dụ, 5 là

số thực) chứa một dấu phẩy thập phàn (ví dụ: 123.4) hoặc một số mũ (ví dụ: le-2)

Trong thực tế, nhiều khi chúng ta cần dùng một tôn cho một

hàng Khi đó việc sử dụng tên hàng này sẽ được hiệu quả hơn ở hai

khía cạnh:

Trang 40

s Dật tên hàng để gợi nhớ, ví dụ đặt tên MaxLength để chi độ dài lớn nhất.

s Đặt tên hàng để dễ quản lý, ví dụ khi muốn thay đổi giá trị một hàng thì chi cần thay đổi tại khai báo hàng Neu không dùng tên hàng thì ta phái thay giá trị tại tất cả các vị trí dùng giá trị đấy

I

trị như biến

Trong Java, hàng có thể được khai báo như một biến không thay

đó dược giá trị, sử dụng từ khóa final. Ví dụ khai báo một hàng số nguyên như sau:

final int MaxLength = 100;

2.‘ Khối chương trình và phạm vi của biến

Khối chương trình là một khái niệm phổ biến trong các ngôn ngữ lậ| trình Trong Java, khối chương trình là một đoạn mã, bao gồm các câi lệnh nàm trong cặp ngoặc nhọn mở ({) và đóng (}) Khối chương trìih có thể là thân chương trình của một lớp hay một hàm (phương thic) hoặc là đoạn mã lệnh phụ thuộc vào một điều kiện nào đấy

Các khối chương trình có thể lồng nhau Xem ví dụ 2.1 như sau:public class Hello

Ví dụ 2.1: Khối chương trình là thân lớp, hàm

Một biến có phạm vi tác động của biến dó, chứ không phải trên toài bộ chương trình Trong ngôn ngừ Java (cũng như trong đa số các ngtn ngừ lập trình), biến có phạm vi từ lúc nó được khai báo đến hết phen vi trong khối mà nó được khai báo

Ngày đăng: 29/12/2019, 13:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN