Tải bản đầy đủ (.doc) (116 trang)

Bài giảng lập trình hướng đối tượng JAVA

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

Mục lục
Ch ng I: Gi i thi u v l p trình h ng i t ngươ ớ ệ ề ậ ướ đố ượ 5
1.1 Các cách ti p c n trong l p trìnhế ậ ậ 5
Ch ng I Gi i thi u v l p trình h ng i t ngươ ớ ệ ề ậ ướ đố ượ 5
1.1 Các cách ti p c n trong l p trìnhế ậ ậ 5
1.1.1L p trình h ng ch c n ng (th t c)ậ ướ ứ ă ủ ụ 6
1.1.2 L p trình h ng i t ngậ ướ đố ượ 7
1.2 Các khái ni m c b n c a l p trình h ng i t ngệ ơ ả ủ ậ ướ đố ượ 8
1.2.1 i t ngĐố ượ 8
1.2.2 L p i t ngớ đố ượ 9
1.2.3 Tr u t ng hóa d li uừ ượ ữ ệ 9
1.2.4 Bao b c v che gi u thông tinọ à ấ 10
1.2.5 S m r ng, k th a gi a các l pự ở ộ ế ừ ữ ớ 10
1.2.6 a x (t ng ng b i) v n p ch ngĐ ạ ươ ứ ộ à ạ ồ 11
1.2.7 Liên k t ngế độ 12
1.2.8 Truy n thông i pề đệ 12
1.3 Các ngôn ng l p trình h ng i t ngữ ậ ướ đố ượ 13
Ch ng II: Gi i thi u v l p trình v i Javaươ ớ ệ ề ậ ớ 20
2.1 S l c l ch s v s phát tri nơ ượ ị ử à ự ể 20
2.2 Chu trình phát tri n c a ch ng trình javaể ủ ươ 20
2.3 B JDK (Java Developer Kit)ộ 23
2.4 Các d ng ch ng trình ng d ng c a Javaạ ươ ứ ụ ủ 24
2.4.1 Ch ng trình ng d ng c l pươ ứ ụ độ ậ 24
2.4.2 Ch ng trình ng d ng nhúng Appletươ ứ ụ 26
* Chu trình ho t ng c a appletạ độ ủ 28
2.4.3 Ch ng trình ng d ng d ng Applet l n d ng c l pươ ứ ụ ở ạ ẫ ạ độ ậ 29
Tóm l i ch ng trình vi t b ng Java có th :ạ ươ ế ằ ể 30
Ch ng III: Các th nh ph n c s c a Javaươ à ầ ơ ở ủ 33
3.1 Các ph n t c s c a Javaầ ử ơ ở ủ 33
3.2 Các ki u d li u nguyên th yể ữ ệ ủ 36
3.3 Khai báo các bi nế 38


3.4 Kh i t o giá tr cho các bi nở ạ ị ế 38
3.5 C u trúc t p ch ng trình Javaấ ệ ươ 39
- 1 -
3.6 Các phép toán v các bi u th cà ể ứ 42
1. Th t u tiên v qui t c k t h p th c hi n c a các phép toánứ ựư à ắ ế ợ ự ệ ủ 42
2. Các qui t c chuy n i ki uắ ể đổ ể 43
3. Các phép toán s h cố ọ 44
4. Các phép chuy n d ch <<, >>, >>>ể ị 45
5. Các phép gán m r ngở ộ 47
6 Các phép toán so sánh ng th cđẳ ứ 48
3.7 Truy n tham s v các l i g i h mề ố à ờ ọ à 49
3. 8 Các câu l nh i u khi n ch ng trìnhệ đề ể ươ 54
a) Câu l nh while (chu trình while)ệ 57
b) Câu l nh do-while (chu trình do-while)ệ 57
Ch ng IV L p v các th nh ph n c aươ ớ à à ầ ủ 65
l p i t ngớ đố ượ 65
4.1 nh ngh a l pĐị ĩ ớ 65
4.2Các tính ch t c a l pấ ủ ớ 65
4.3 nh ngh a các vùng d li u (thu c tính) c a l pĐị ĩ ữ ệ ộ ủ ớ 67
4.4 nh ngh a h m th nh ph n c a l pĐị ĩ à à ầ ủ ớ 70
4.4.1 N p ch ng các h m th nh ph nạ ồ à à ầ 72
4.4.2 Toán t t o l p i t ng( h m kh i t o i t ng)ử ạ ậ đố ượ à ở ạ đố ượ 73
4.5 Quan h k th a gi a các l pệ ế ừ ữ ớ 74
4.5.1 Vi t è các h m th nh ph n v v n che bóng các bi nế đ à à ầ à ấ đề ế 75
4.5.2 Toán t móc xích gi a các l p k th a this() v super()ử ữ ớ ế ừ à 77
4.6 Giao di n v s m r ng quan h k th a trong Javaệ à ự ở ộ ệ ế ừ 81
4.7 Gói (packages) 82
Ch ng V: C u trúc m ng v Các l p c s trong gói java.langươ ấ ả à ớ ơ ở 84
5.1 C u trúc m ng trong Javaấ ả 84
5.2 Các l p c b n c a Javaớ ơ ả ủ 89

5.2.1 L p Objectớ 89
- Object cung c p các h m sau:ấ à 89
5.2.2 Các l p nguyên th y (Wrapper)ớ ủ 90
5.2.4 L p Mathớ 94
5.2.5 L p Stringớ 96
5.2.6 L p StringBufferớ 100
B i t pà ậ 102
Ch ng 6 Xu t nh p dòng v gói java.ioươ ấ ậ à 103
- 2 -
6.1 Dòng lu ng(Stream)– ồ 103
6.2 Xu t /nh p t p tin (lu ng v o/ra l t p tin)ấ ậ ệ ồ à à ệ 103
6.2.1 L p Fileớ 103
6.2.2 Các l p tr u t ng InputStream, OutputStreamớ ừ ượ 106
6.2.3 Các l p x lý t p FileInputStream v FileOutputStreamớ ử ệ à 107
6.2.4L p RandomAccessFileớ 109
6.2.5Các l p c/ghi d li u nguyên th y lên t p: DataInputStream,ớ đọ ữ ệ ủ ệ
DataOutputStream 111
6.3 V o\ra d li u trên các thi t b chu nà ữ ệ ế ị ẩ 112
- 3 -
1. Mục tiêu môn học
Giúp sinh viên có một cái nhìn tổng quan về các phương pháp, kỹ nghệ
hướng đối tượng để phát triển một phần mềm trong ngành Công nghệ phần
mềm. Đồng thời giúp sinh viên nắm vững các cách tiếp cận cơ bản trong lập
trình hiện nay, đặc biệt là phương pháp lập trình hướng đối tượng và có khả
năng sử dụng thành thạo ngôn ngữ lập trình hướng đối tượng java để lập trình
giải các bài toán
2. Tóm tắt nội dung môn học
Nội dung môn học được chia thành 6 chương:
Chương 1: Giới thiệu tổng quan về các cách tiếp cận trong lập trình,
các khái niệm cơ bản trong lập trình hướng đối tượng, tổng quan về các

ngôn ngữ lập trình hướng đối tượng và khả năng ứng dụng của ngôn
ngữ lập trình Java
Chương 2: Giới thiệu về lập trình hướng đối tượng java, cấu trúc
chung của chương trình java, cách dịch, chạy, các dạng chương trình
ứng dụng của java
Chương 3: Cung cấp các kiến thức liên quan đến các thành phần cơ
sở của ngôn ngữ java như: Các kiểu dữ liệu, các phép toán, các câu
lệnh,
Chương 4: Cung cấp các kiến thức liên quan đến việc xây định nghĩa
các lớp đối tượng trong chương trình java, khai báo các thuộc tính dữ
liệu, các phương thức, nạp chồng, viết đè, che bóng các biến, toán tử tạo
lập của lớp
Chương 5: Giới thiệu các lớp cơ sở trong gói java.lang, các cấu trúc dữ
liệu trong java như mảng, xâu, danh sách,
Chương 6: Cung cấp các kiến thức liên quan đến nhập/xuất dòng dữ
liệu trong java
3. Tài liệu học tập
- 4 -
Chương I: Giới thiệu về lập trình hướng đối tượng
 Hai cách tiếp cận trong lập trình: lập trình hướng chức năng và lập trình
hướng đối tượng;
 Những khái niệm, thành phần cơ bản của phương pháp hướng đối tượng;
 Các ngôn ngữ lập trình hướng đối tượng.
1.1 Các cách tiếp cận trong lập trình
Chương I Giới thiệu về lập trình hướng đối tượng
 Hai cách tiếp cận trong lập trình: lập trình hướng chức năng và lập trình hướng
đối tượng;
 Những khái niệm, thành phần cơ bản của phương pháp hướng đối tượng;
 Ngôn ngữ lập trình hướng đối tượng.
 Bài tập.

1.1 Các cách tiếp cận trong lập trình
Để phát triển một hệ thống phần mềm, hiện nay ta có hai cách tiếp cận cơ bản đó là:
1) Cách tiếp cận hướng chức năng – Function Oriented
2) Cách tiếp cận hướng đối tượng (Object Oriented)
=> Ta cần phân biệt những đặc trưng cơ bản nhất, đánh giá mặt mạnh, mặt yếu của từng phương
pháp để hiểu rõ chúng và áp dụng chúng một cách hiệu quả nhất.
Chúng ta đã biết để phát triển một hệ thống phần mềm ta thường tuân theo quy trình
gồm các bước chính như sau:
B1) Đặc tả bài toán
B2) Phân tích & Thiết kế
B3) Cài đặt – lập trình
B4) Kiểm chứng
B5) Cải tiến phần mềm
Môn học của chúng đa quan tâm đến bước 3: Cài đặt - lập trình và đặt trọng tâm vào
phương pháp lập trình hướng đối tượng. Tương ứng với hai phương pháp cơ bản để
- 5 -
phát triển một hệ thống phần mềm, ta xét hai phương pháp lập trình phổ biến hiện
nay đó là phương pháp lập trình hướng chức năng và phương pháp lập trình hướng
đối tượng để từ đó tìm hiểu sâu về phương pháp lập trình hướng đối tượng.
1.1.1 Lập trình hướng chức năng (thủ tục)
Trọng tâm của cách tiếp cận này là các hàm chức năng. Chức năng chính của
bàitoán sẽ thành những chức năng đơn giản hơn và thực hiện làm mịn dần từ trên
xuống (top-down).
Cấu trúc của chương trình được xây dựng theo cách tiếp cận hướng chức năng
có dạng như Hình H1-1.

Hàm_1
Hàm
_2
Hàm

_3
Hàm
_4
Hàm
_5
Hàm
_6
Hàm
_7
Hàm
_8
Hàm
_9
Chương trình chính
m ain()

Hình H1-1 Cấu trúc của chương trình hướng chức năng
 Kỹ thuật phân rã các chức năng (hàm) theo cách tiếp cận top-down để tạo ra cấu
trúc phân cấp. Chương trình được xây dựng theo cách tiếp cận hướng chức năng
thực chất là tập các chương trình con
Ví dụ: Xét bài toán quản lý sinh viên
- 6 -
 Các hàm trong một chương trình phải có liên hệ, trao đổi được với nhau. Như
chúng ta đã biết, các hàm (các bộ phận chức năng) chỉ có thể trao đổi được với
nhau thông qua các tham số, nghĩa là phải sử dụng biến chung (global). Mỗi hàm
có thể có vùng dữ liệu riêng còn gọi là dữ liệu cục bộ (local).

D÷ liÖu chung
(Global)
D÷ liÖu chung

(Global)
Hµm_1
D÷ liÖu riªng
(Local)
Hµm_2
D÷ liÖu riªng
(Local)
Hµm_3
D÷ liÖu riªng
(Local)
Hình H1-2 Quan hệ giữa dữ liệu và hàm trong LTHTT
Nhận xét
 Đối với những chương trình, dự án tin học lớn, phức tạp đòi hỏi nhiều người, nhiều
nhóm tham gia thì những thay đổi của những biến dữ liệu liệu chung sẽ ảnh hưởng
tới tất cả những ai có liên quan tới chúng.
 Tính mở (open) của hệ thống kém.
 Tách dữ liệu khỏi chức năng xử lý nên vấn đề che giấu, bảo vệ thông tin trong hệ
thống là kém dẫn đến vấn đề an toàn, an ninh dữ liệu là rất phức tạp.
 Không hỗ trợ việc sử dụng lại và kế thừa nên chất lượng và giá thành của các phần
mềm rất khó được cải thiện.
1.1.2 Lập trình hướng đối tượng
 Đặt trọng tâm vào các đối tượng. Dữ liệu được gắn chặt với các hàm thành phần và
chúng được tổ chức, quản lý truy nhập theo nhiều mức khác nhau.
 Phân tích bài toán thành tập các thực thể được gọi là các lớp đối tượng, Hệ thống
được xem như là một tập các lớp đối tượng và các đối tượng đó trao đổi với nhau
thông qua việc gửi và nhận các thông điệp (message), do vậy một chương trình hướng
đối tượng thực sự có thể hoàn toàn không cần sử dụng biến chung.
Ví dụ: Xét bài toán quản lý tài liệu trong thư viện
- 7 -
Nhận xét

 Tính mở cao hơn.
 Cơ chế bao bọc, che giấu thông tin của phương pháp hướng đối tượng giúp tạo ra
được những hệ thống an toàn, an ninh cao hơn cách tiếp cận hướng chức năng.
 Hỗ trợ rất mạnh nguyên lý sử dụng lại nhiều nhất có thể và tạo ra mọi khả năng để kế
thừa những lớp đã được thiết kế, lập trình tốt để nhanh chóng tạo ra được những phần
mềm có chất lượng, gia thành rẻ hơn và đáp ứng các yêu cầu của người sử dụng.
1.2 Các khái niệm cơ bản của lập trình hướng đối tượng
Phương pháp hướng đối tượng được xây dựng dựa trên một tập các khái niệm cơ sở:
1. Đối tượng (object),
2. Lớp đối tượng (class),
3. Trừu tượng hóa dữ liệu (Data Abstracttion),
4. Bao bọc và che giấu thông tin (Encapsulation and Information Hiding),
5. Mở rộng, kế thừa giữa các (Inheritance),
6. Đa xạ và nạp chồng (Polymorphism and Overloading),
7. Liên kết động (Dynamic Binding),
8. Truyền thông điệp (Message Passing).
1.2.1 Đối tượng
 Đối tượng là khái niệm cơ sở, quan trọng của hệ thống chương trình, mỗi đối tượng
được xác định thông qua định danh ID (IDentifier) của chúng.
 Một đối tượng bao gồm:
1) Các tài sản của đổi tượng - thường là các dữ liệu thành phần hay các thuộc tính
mô tả các tính chất
2) Hành vi của đối tượng - Các phương thức thao tác trên các dữ liệu để xác định
hành vi của đối tượng đó – Các hàm thành phần.
Ví dụ: Vẽ một điểm trên màn hình
 Nhiệm vụ Phương pháp LTHĐT là phân tích bài toán thành các lớp đối tượng, và các
đối tượng thuộc các lớp xác định, sau đó xác định được mối quan hệ trao đổi thông tin
giữa chúng
 Như vậy:
+ Đối tượng được xác định trong thời gian hệ thống hướng đối tượng hoạt động. Đối

- 8 -
tượng có thể biểu diễn cho người, vật, hay một bảng dữ liệu hoặc bất kỳ một hạng thức
nào đó cần xử lý trong chương trình.
+ Theo quan điểm người lập trình: Đối tượng được xem như là một vùng bộ nhớ trong
mày tính, được phân chia thành nhiều ngăn dùng để lưu trữ các giá trị thuộc tính dữ
liệu và các hàm tác động trên dữ liệu gắn với chúng. Vì các vùng nhớ cung cấp cho đối
tượng là động, được phân hoạch độc lập nên đối tượng có thể được sử dụng bởi nhiều
chương trình khác nhau mà không ảnh hưởng lẫn nhau.
(1 đối tượng

1 biến trong lập trình cấu trúc)
1.2.2 Lớp đối tượng
 Lớp là bản mẫu hay một kiểu chung cho tất cả những đối tượng có những đặc trưng
giống nhau(hành vi và tài sản như nhau). Một đối tượng chính là 1 thể hiện (cá thể) của
một lớp xác định (thuộc một lớp xác định). Trong lập trình hướng đối tượng, lớp được
xem là đồng nhất với kiểu dữ liệu trừu tượng (ADT - Abstract Data Type được Barbara
đề xuất vào những năm 1970).
 Ví dụ: Quản lý học sinh
 Các thành phần của lớp có thể chia thành ba vùng quản lý chính:
+ công khai (public),
+ được bảo vệ (protected),
+ riêng (private).
Hình H1-3 Lớp Student trong UML
1.2.3 Trừu tượng hóa dữ liệu
Trừu tượng hóa là cách biểu diễn những đặc tính chính và bỏ qua những chi tiết. Trừu
tượng hóa là sự mở rộng khái niệm kiểu dữ liệu và cho phép định nghĩa những phép toán
trừu tượng trên các dữ liệu trừu tượng.
- 9 -
1.2.4 Bao bọc và che giấu thông tin
 Việc đóng gói dữ liệu và các hàm vào một đơn vị cấu trúc (gọi là lớp) được xem như một

nguyên tắc bao bọc thông tin. Kỹ thuật này cho phép xác định các vùng đặc trưng riêng,
công khai hay được bảo vệ cho cả dữ liệu và các phương thức (câu lệnh) nhằm điều
khiển hoặc hạn chế những truy nhập tuỳ tiện của những đối tượng khác.
Vùng private
Vùng public
Hình H1-4 Bao bọc và che giấu thông tin của lớp đối tượng
Các đối tượng thuộc lớp khác không được phép truy cập vào vùng riêng của đối tượng thuộc lớp
hiện thời. Các đối tượng thuộc các lớp con cháu của lớp hiện thời được phép truy cập vào vùng được
bảo vệ. Vùng công khai của lớp hiện thời cho phép mọi đối tương thuộc các lớp khác nhau trong hệ
thống chương trình đều có quyền truy cập.
 Nguyên tắc bao bọc dữ liệu để ngăn cấm sự truy nhập trực tiếp trong lập trình được gọi
là sự che giấu thông tin.
1.2.5 Sự mở rộng, kế thừa giữa các lớp
 Nguyên lý kế thừa tức là cho phép xây dựng các lớp mới kế thừa một số đặc trưng (Dữ
liệu và phương thức) của các lớp đã được xây dựng mà không cần viết lại hay định
nghĩa lại.
 Nguyên lý kế thừa chỉ cho phép lớp kế thừa, kế thừa những thuộc tính, hàm thành phần
được bảo vệ và công khai những tính chất được kế thừa sẽ là “tài sản” của lớp con cháu,
còn những thuộc tính, hàm thành phần riêng là không được phép kế thừa.
 Hỗ trợ hai nguyên lý kế thừa: kế thừa đơn và kế thừa bội. Kế thừa đơn là một lớp có thể
kế thừa từ một lớp cơ sở, còn kế thừa bội là một lớp có thể kế thừa từ nhiều hơn một lớp
cơ sở. Ngôn ngữ C++ hỗ trợ cả hai nguyên lý kế thừa, nhưng Java chỉ hỗ trợ thực hiện
kế thừa đơn.
- 10 -
D li u riêngữ ệ
H m riêngà
D li u công khaiữ ệ
H m công khaià
Nguyên lý kế thừa đơn hỗ trợ cho việc tạo ra cấu trúc cây phân cấp các lớp.
Hình H1-5 Cấu trúc phân cấp các lớp theo quan hệ kế thừa trong UML(kế thừa đơn)

Trong LTHĐT, khái niệm kế thừa kéo theo ý tưởng sử dụng lại – mở rộng (extends). Nghĩa là
từ một lớp đã được xây dựng, chúng ta tạo ra một lớp mới kế thừa lớp cũ và bổ sung thêm một
số tính chất mà không làm thay đổi những cái đã có (đã được kế thừa).
Có thể diễn đạt cơ chế kế thừa như sau:
1. Lớp A kế thừa lớp B sẽ có (không tường minh) tất cả các thuộc tính, hàm đã được
xác định trong B, ở những vùng được phép kế thừa (được bảo vệ, công khai),
2. Bổ sung thêm một số thuộc tính, hàm để mô tả được đúng các hành vi của những đối
tượng mà lớp A quản lý.
1.2.6 Đa xạ (tương ứng bội) và nạp chồng
 Đa xạ tương tự như trong toán học. Đa xạ là kỹ thuật được sử dụng để mô tả khả năng
gửi một thông điệp chung tới nhiều đối tượng mà mỗi đối tượng lại có cách xử lý riêng
theo ngữ cảnh của mình.
Hình H1-6 Tính đa xạ của hàm Ve()
=> Hàm có tên là Ve() có thể được sử dụng để vẽ các hình khác nhau phụ thuộc vào đối
tượng nhận thông điệp vẽ là đối tượng thuộc lớp hình nào. Nếu đối tượng nhận thông điệp là
hình vuông: Vẽ hình vuông, nếu là hình tam giác thì vẽ hình tam giác
 Nạp chồng (Overloading) là một trường hợp của đa xạ. Tức là với cùng một tên phương
thức (hàm) có thể được sử dụng để thực hiện các công việc khác nhau (nội dung các
phương thức khác nhau) tuỳ theo ngữ cảnh, cụ thể là tuỳ thuộc vào kiểu và số các tham
số của chúng.
- 11 -
Lớp cha
Các lớp con(các đối tượng thuộc lớp con cháu có quyền sử
dụng mà không cần khai báo hay định nghĩa lại)
 Ví dụ: Tùy thuộc vào đối số được truyền vào trong lời goị đến hàm cộng là kiểu gì mà
hàm cộng tương ứng được gọi để thực hiện.
int Cong(int, int); // Cộng hai số nguyên
float Cong(float, float); // Cộng hai số thực
Complex Cong(Complex, Complex); // Cộng hai số phức
String Cong(String, String); // Ghép hai xâu

String Cong(String, int); // Ghép một xâu với một số nguyên
1.2.7 Liên kết động
 Liên kết thông thường (liên kết tĩnh) là dạng liên kết được xác định ngay khi dịch
chương trình. Hầu hết các chương trình được viết bằng Pascal, C đều là dạng liên kết
tình.
 Liên kết động là dạng liên kết các hàm, chức năng khi chương trình thực hiện các lời
gọi các hàm, chức năng đó. Liên kết động liên quan chặt chẽ với những khái niệm đa xạ
và kế thừa trong lập trình hướng đối tượng.
1.2.8 Truyền thông điệp
Lập trình trong ngôn ngữ hướng đối tượng bao gồm các bước sau:
1. Tạo ra các lớp đối tượng và mô tả hành vi của chúng,
2. Tạo ra các đối tượng theo định nghĩa của các lớp,
3. Xác định sự trao đổi thông tin giữa các đối tượng trong hệ thống.
 Trong chương trình, các đối tượng trao đổi thông tin với nhau qua việc gứi và nhận các
thông điệp
 truyền thông điệp cho một đối tượng chính là báo cho nó phải thực hiện một việc hay
một yêu cầu nào đó. Truyền thông điệp tương đương như một lời gọi đến hàm đã được
khai báo trong đối tượng nhận thông điệp. trong thông điệp phải chỉ ra:
1) Hàm cần thực hiện của đối tượng nhận thông điệp
2) Tên đối tượng nhận thông điệp
3) Thông tin (dữ liệu truyền đi trong lời gọi hàm).
 Ví dụ, khi hệ thống máy tính muốn in một tệp dataFile thì máy tính hiện
thời :Computer gửi đến cho đối tượng :PrinterServer một yêu cầu Print(dataFile). Bộ
phận dịch vụ máy in kiểm tra xem máy in có bận hay không: Nếu bận lưu yêu cầu đó
vào hàng đợi bằng cách gửi cho đối tượng hàng đợi :Queue thông điệp Store(dataFile) ;
ngược lại: Gửi yêu cầu Print(dataFile) cho đối tượng máy in :printer
- 12 -
Hình H1-7 Truyền thông điệp giữa các đối tượng
1.2.9 Các ưu điểm của lập trình hướng đối tượng
1. Thông qua nguyên lý kế thừa, chúng ta có thể loại bỏ được những đoạn chương trình

lặp lại, dư thừa trong quá trình mô tả các lớp và mở rộng khả năng sử dụng các lớp đã
được xây dựng mà không phải viết lại.
2. Chương trình được xây dựng từ những đơn thể (đối tượng) trao đổi với nhau nên việc
thiết kế và lập trình sẽ được thực hiện theo quy trình nhất định chứ không phải dựa
vào kinh nghiệm và kỹ thuật như trước. Điều này đảm bảo rút ngắn được thời gian
xây dựng hệ thống và tăng năng suất lao động.
3. Nguyên lý che giấu thông tin giúp người lập trình tạo ra được những chương trình an
toàn không bị thay đổi bởi những đoạn chương trình khác một cách tuỳ tiện.
4. Có thể xây dựng được ánh xạ các đối tượng của bài toán vào đối tượng của chương trình.
5. Cách tiếp cận thiết kế đặt trọng tâm vào đối tượng, giúp chúng ta xây dựng được mô
hình chi tiết và phù hợp với thực tế.
6. Những hệ thống hướng đối tượng dễ mở rộng, nâng cấp thành những hệ lớn hơn.
7. Kỹ thuật truyền thông điệp trong việc trao đổi thông tin giữa các đối tượng giúp cho việc mô tả
giao diện với các hệ thống bên ngoài trở nên đơn giản hơn.
8. Có thể quản lý được độ phức tạp của những sản phẩm phần mềm.
1.3 Các ngôn ngữ lập trình hướng đối tượng
Dựa vào khả năng đáp ứng các khái niệm về hướng đối tượng, chúng ta có thể
chia ra làm hai loại:
1. Ngôn ngữ lập trình dựa trên đối tượng (object-based),
2. Ngôn ngữ lập trình hướng đối tượng (object-oriented).
- 13 -
• Lập trình dựa trên đối tượng là kiểu lập trình hỗ trợ chính cho việc bao
bọc, che giấu thông tin và định danh các đối tượng. Lập trình dựa trên đối
tượng có những đặc tính sau:
 Bao bọc dữ liệu,
 Cơ chế che giấu và hạn chế truy nhập dữ liệu,
 Tự động tạo lập và huỷ bỏ các đối tượng,
 Tính đa xạ.
Ngôn ngữ hỗ trợ cho kiểu lập trình trên được gọi là ngôn ngữ lập trình dựa trên
đối tượng. Ngôn ngữ trong lớp này không hỗ trợ cho việc thực hiện kế thừa và

liên kết động. Ada là ngôn ngữ lập trình dựa trên đối tượng.
• Lập trình hướng đối tượng là kiểu lập trình dựa trên đối tượng và bổ sung
thêm nhiều cấu trúc để cài đặt những quan hệ về kế thừa và liên kết động.
Vì vậy đặc tính của LTHĐT có thể viết một cách ngắn gọn như sau:
Các đặc tính dựa trên đối tượng + kế thừa + liên kết động.
Ngôn ngữ hỗ trợ cho những đặc tính trên được gọi là ngôn ngữ LTHĐT, ví dụ
như Java, C++, Smalltalk, Object Pascal hay Eiffel,v.v
Hỡnh: Tổng quan về sự phỏt triển cỏc ngụn ngữ LTHĐT
- Cỏc ngụn ngữ Simular, Smalltalk, Java thuộc họ ngôn ngữ lập trình hướng đối
tượng thuần khiết, nghĩa là nó không cho phép phát triển các chương trình cấu
trúc trên các ngôn ngữ loại này
- 14 -
SIMULA(66)
SMALLTALK(71)
SMALLTALK(80)
JAVA(95)
ADA(83)
C++(86)
EIFFEL(90)
ADA(95)
- Ngôn ngữ C++ thuộc họ ngôn ngữ “lai” bởi vì nó cũng được phát triển từ C. Do
đó trên C++ người dùng có thể phát triển chương trình theo cách tiếp cận chức
năng và cách tiếp cận hướng đối tượng
=> Việc lựa chọn một ngôn lập trình để cài đặt và phát triển phần mềm phụ thuộc
nhiều vào các đặt trưng và yêu cầu của bài toán ứng dụng. Một trong những ngôn ngữ
lập trình hướng đối tượng được sử dụng phổ biến hiện nay là Java, java nổi trội hơn
tất cả về các lĩnh vực ứng dụng.
1) java - lập trình ứng dụng console
- Console là loại ứng dụng dễ viết nhất, rất thích hợp khi bắt đầu tìm hiểu ngôn ngữ, ta
gọi là ứng dụng console (màn hình) vì nó nhập xuất ở chế độ văn bản tương tự nhgư màn

hình của DOS.
- Các ứng dụng console được sử dụng rất rộng rãi, nó được dụng thường xuyên để minh
họa ngôn ngữ thuật toán, dùng để xử lý khối lượng công việc ở hậu trường không cần đến
giao diện hay tương tác nhiều.
- Ví dụ: Viết chương trình xuất ra màn hình xâu ký tự bất kỳ
2) Java – ứng dụng giao diện (java - bean)
- 15 -
java
Ưng dụng đa hệ nền
Ưng dụng bảo mật(bài
toán xử lý số lớn)
Ưng dụng mạng phân tán(giáo
trình điện tử)
Ưng dụng chuyên luồng
Ưng dụng đa luồng (BT tương
tranh trong hđh)
Ưng dụng console(cái đặt các
thuật toán, giải quyết công viêc
sau hậu trường )
Ưng dụng giao diện đồ họa(hoạt
hình, game, xlý ảnh)
Ưng dụng Web(chat, gửi thư, tạo
hiêu ứng web )
Ưng dụng điều khiển thiết
bị(trò chơi trên ĐTDĐ)
- JFC (Java Foundation Class) – Thư viện các lớp nền tảng, là một thư viện phong
phú và đa dạng đủ để bạn xây dựng bất kỳ một giao diện đồ họa phức tạp nào của
Windown đang có trên thị trường
- Đặc điểm nổi bật nhất của giao diện đồ họa viết bằng thư viện JFC của java là khả
năng dễ dàng thay đổi giao diện theo nhiều kiểu dáng khác nhau mà không cần

phải viết lại mã chương trình.
- Java Bean là những thành phần công cụ dùng để xây dựng giao diện (như nút
nhấn, các điều khiển, tương tự như OCX của Windown) cho ứng dụng
=> Java có thể chạy và tương thích với nhiều hđh hơn hẳn những ngôn ngữ và môi
trường lập trình khác trên Window như VB, Delphi, C++ Dùng JFC ta có thể xây
dựng các ứng dụng window truyền thống, sử dụng Jbuilder ta có thể kéo thả để xây
dựng giao diện trực quan như VB.
3) Java applet
- java applet là những mẩu chương trình nhỏ có thể nhúng và chạy ngay trong trang
web của trình duyệt
- Applet đem lại khả năng lập trình mạnh mẽ cho trang web. Ngày nay không được
sử dụng nhiều nữa vì trình duyệt web ngày càng phát triển mạng mẽ và khả năng
lập trình java script, VB script đã đẩy java applet xuống hàng thứ yếu
4) Java – lập trình mạng
- Có thể nói java hỗ trợ rất mạnh về lập trình ứng mạng với các lớp thư viện socket
giúp đơn giản háo quá trình kết nối và chuyển dữ liệu trên mạng, điều mà các
ngôn ngữ lập trình trên window như VB hay những ngông ngữ có trong bộ
VisualStudio 6.0 trở về trước còn thiết sót rất nhiều.
- Java cho phép người lập trình có thể lập trình trên rất nhiều giao thức TCP/ IP,
UDP, HTTP, FTP, Telnet
- Những ứng dụng điển hình: Các chương trình chat, chương trình chuyển dữ liệu,
truyền tin thông báo tin tức, trao đổi trực tuyến, trình duyệt web, trao đổi trực
tuyến, gửi nhận thư điện tử
 Đây là mảng đề tài khá rộng và hữu ích
5) Java – lập trình ứng dụng web
- 16 -
Với công nghệ JSP (Java Server Page), EJB, Java Web Server, cho phép tạo những
ứng dụng web hiệu qủa tương đương với những công nghệ đang được Microsoft quảng
cáo rầm rộ như ASP, ASP.Net
6) Java – lập trình CSDL

- CSDL là yếu tố không thể thiếu trong trong hầu hết các ứng dụng, việc hỗ trợ truy
xuất CSDL không phải lúc nào cũng đầy đủ trong các ngôn ngữ lập trình. Ví dụ
VB cung cấp rất nhiều cơ chế truy xuất CSDL thuận tiện như ODBC, ADO,
ADO.NET, OLEDB trong khi C/C++ không có
- Java hỗ trợ các cơ chế truy xuất CSDL mở với công nghệ JDBC (Java Database
Connectivity), cho phép truy xuất đến nhiều loại CSDL khác nhau như Oracle,
DB2. MýQL, SQL Server . JDBC cho phép truy cập dữ liệu thông qua mô hình đa
luồng rất thích hợp cho các ứng dụng phân tán.
7) Java – lập trình ứng dụng phân tán
- Lập trình ứng dụng phân tán là mục tiêu hướng đến của kiến trúc lập trình hiện
đại. Trên Internet mọi người cùng cộng tác làm việc => ứng dụng phải có khả
năng hoạt động và xử lý rời rạc, do đó không còn phải tập chung ở một chỗ nữa,
lời gọi hàm từ một máy, nhưng việc tính toán lại diễn ra trên một máy tính khác,
cuối cùng kết quả trả về tương tự như việc gọi hàm hay đối tượng trê máy tính cục
bộ.
- Web services là những công nghệ mà java hướng đến môi trường phân tán.
8) java – lập trình điều khiển thiết bị
So với các ứng dụng hiện thấy trên môi trường Window => ứng dụng java chạy quá
chậm, tuy nhiên java chạy rất nhanh và hiệu quả trên các thiết bị như ĐTDĐ, máy
Palm, thiết bị gia dụng (tủ lạnh, ti vi, điều hòa ). Khi chuyển sang môi trường Unix,
Linux hoặc thiết bị cầm tay thì java chiếm ưu thế tuyệt đối.
9) java – nền hệ điều hành và môi trường ứng dụng internet
- Java không đơn thuần là ngôn ngữ lập trình, java còn hơn thế nữa, java có thể
chạy thay hệ điều hành với một tập API phong phú.
- Mọi yêu cầu của hđh, java đều hỗ trợ như: Xuất/nhập tệp tin, quản lý người dùng,
bảo mật, CSDL, xử lý toán học, truy xuất mạng, kết nối internet, Máy ảo java là
một máy tính giúp java làm được mọi thứ.
- 17 -
Nhận xét
- ứng dụng ja va viết một lần và chạy được ở mọi nơi : Chương trình java có thể

chạy được trên nhiều hđh và kiến trúc CPU khác nhau dựa vào khả năng của máy
ảo java
- Sun MicroSystem chịu trách nhiệm hỗ trợ máy ảo java, đảm bảo tính đa nền cho
java.
Trong môn học này ta sẽ tìm hiểu ngôn ngữ lập trình java
- 18 -
Bài tập
Câu 1
Hãy xét một chiếc ô tô. Người sử dụng cung cấp một số phương thức sau: Khởi động
động cơ, dừng động cơ nhấn ga, nhả ga nhấn phanh, nhả phanh, quay tay lái(vòng
trái. Vòng phải, sang số). Dữ liệu là trạng thái của xe: Tốc độ và hướng chuyển động,
vị trí tay lái, vị trí chân ga, số lượng xăng. Hãy định nghĩa đối tượng lớp ô tô
Câu 2
Thế nào là lập trình trên – xuống (“top-down programming”)?
Câu 3
Lập trình OOP tốt hơn lập trình top-down ở điểm nào?
Câu 4
Hai thành phần chính của một lớp là gì?
Câu 5
Ba nguyên lý chính của việc dùng OOP là gì?
Câu 6
Thế nào là phạm vi hoạt động của một biến
Câu 7
Thế nào là phân nhánh có điều kiện và không có điều kiện
Câu 8
Java xác định việc dừng vòng lặp như thế nào?
Câu 9
Thế nào là tính kế thừa và nó giúp cho việc tạo lớp mới của ta nhanh chóng ra sao
Câu 10
Điều khác biệt giữa lớp và giao tiếp là gì?

Câu 11
Khi nào dùng từ khóa synchronized
- 19 -
Chương II: Giới thiệu về lập trình với Java
 Sơ lược lịch sử và sự phát triển
 Chu trình phát triển chương trình với Java,
 Môi trường lập trình Java,
 Các loại chương trình ứng dụng java .
 Bài tập
2.1 Sơ lược lịch sử và sự phát triển
- Năm 1990, James Gosling được công ty Sun MicroSystem giao nhiệm vụ xây dựng một
phần mềm lập trình cho các mặt hàng điện dân dụng với mục đích nhỏ gọn và tương thích với
nhiều thiết bị phần cứng khác nhau => Ông đã tiến hành xây dựng và lấy tên phần mềm là
OAK (cây sồi – vì trước cửa làm việc của ông có gốc cây sồi). Sau đó OAK được phát triển
nhanh chóng và được đổi tên là Java (tên một hòn đảo nơi ông và các thành viên trong nhóm
đi thăm quan – Nơi có món cà phê đặc sản rất ngôn – biểu tượng của java).
- Năm 1993, hệ thống Web thế giới ra đời mạnh mẽ và chuyển các thông tin trên web từ dạng
văn bản sang dạng đồ họa => java được phát triển thêm và là một ngôn ngữ phục vụ hoàn hảo
nhất cho lập trình trên web (Web Applet)
- Năm 1995, Sun MicroSystem công bố chính thức ấn phẩm sách java đầu tiên và lấy tên là
Java – java series.
=> Java nhanh chóng được đón nhận như một công cụ mạnh mẽ cho việc phát triển các ứng
dụng cho Internet (các chương trình hỗ trợ cho việc đăng nhập từ xa, chương trình tải web,
gửi thư ). Các trình duyệt web lần lượt đưa ra sự hỗ trợ cho java.
- java được xây dựng chủ yếu trên bộ công cụ phát triển java JDK (java developtment kit).
Đây là một thư viện chuẩn, trong đó chứa các trình biên dịch, trình thông dịch, trợ giúp, soạn
thảo tài liệu Đó là nền tảng cho việc phát triển các ứng dụng java
- Hiện nay các nhà thiết kế phần mềm đã xây dựng cho java thêm rất nhiều các nhánh mời
như: Java – thư tín; java – viễn thông,
- Năm 1996, java được cải tiến tăng thêm các hàm giao diện (Awt), các công cụ toán học

(thuộc lớp java.Math); công cụ làm việc trên mạng (java.net)
2.2 Chu trình phát triển của chương trình java
a) Cấu trúc chương trình java
- 20 -
- java là ngôn ngữ lập trình hướng đối tượng => Một chương trình là một tập hợp của một
hay nhiều định nghĩa lớp đối tượng và các đối tượng thuộc các lớp xác định, trong đó: Tên
tệp chương trình nguồn java phải trùng với tên của lớp chính trong chương trình, có đuôi là
“.java”
- Mỗi định nghĩa lớp trong chương trình sau khi biên dịch sẽ được dịch và lưu trữ sang một
tệp riêng: có tên trùng với tên lớp, có đuôi là “.class”. Tẩt cả các lớp đều phải được dịch trước
khi chạy.
b) Chu trình phát triển của chương trình java
- Chu trình phát triển và thực hiện của chương trình viết bằng những ngôn ngữ truyền
thống như C/C++ có thể được mô tả như sau
Hình H2-1 Chu trình phát triển và thực hiện của chương trình C/C++
 Chương trình chạy tương đối nhanh, tuy nhiên để tối ưu hóa được chương trình dịch thì
nó phải được thực hiện dựa trên một kiến trúc (tập các lệnh) xác định, nghĩa là phụ
thuộc vào cấu hình của máy đích. Để tạo ra được sự độc lập tương đối thì chương trình
phải được dịch lại để phù hợp với kiến trúc máy mới mỗi khi thay đổi môi trường thực
hiện chương trình.
 Mạng Internet cung cấp nhiều dịch vụ tiện lợi cho nhiều ứng dụng khác nhau, nhất là
các ứng dụng trên mạng của công nghệ Web. Để đưa được các yếu tố lập trình lên mạng
và kết hợp với Web thì không nên sử dụng các chương trình viết bằng C/C++, bởi vì:
1. Vấn đề an toàn, an ninh dữ liệu trên mạng không đảm bảo,
- 21 -
Tệp chương trình thực hiện
(Executable File)
Dịch
Liên kết
Tệp cái

(Header File)
Tệp chứa chương
trình chính
main()
{ }
Tệp mã đích
(Object File)
Tệp thư viện
(Object File)
Chương trình ứng dụng
hiện thời
Gỡ lỗi
(Debug)
Kiểm tra
(Test)
Chương
trình nguồn
2. Các chương trình C/C++ được dịch sang một mã máy có cấu hình cố định vì vậy khi
được nạp từ trên mạng xuống một máy có cấu hình khác sẽ không thực hiện được.
3. Điều mà chúng ta muốn nhất hiện nay là cần có một ngôn ngữ thông dịch thật mạnh để
khắc phục những nhược điểm trên, đặc biệt để phát triển được dễ dàng các ứng dụng
với Web trên mạng.
=> Java vượt qua được các nhược điểm trên bằng cách dịch các chương trình nguồn sang ngôn
ngữ máy ảo không phụ thuộc vào chip (hệ lệnh cụ thể) nào cả và sau đó khi cần thực hiện sẽ
thông dịch sang hệ máy cụ thể. Kết quả của chương trình sau khi biên dịch là chuỗi các bytes cơ
sở bao gồm các mã lệnh thực hiện (Opcode) và các tham số của máy lý thuyết (máy ảo), là máy
Java ảo (JVM - Java Virtual Machine). Chương trình Java được dịch và thực hiện như sau:
Hình H2- 2 Quá trình dịch và thông dịch chương trình Java
- Java giải quyết vấn đề tốc độ bằng cách dịch chương trình nguồn sang các mã byte
(byte codes). Khi JVM thực hiện, nó sẽ tìm các đối tượng cần tham chiếu của các lớp

trong chương trình chính (chương trình ứng dụng).
- 22 -
Chương trình
nguồn
(Source Codes)
Các mã byte
(Byte Codes)
Các mã byte
(Byte Codes)
Máy Java ảo
(Java Virtual machine)
Tệp các lớp
.class
Bộ nạp lớp (class loader)
Thông dịch (Interpreter)
Kiểm tra các byte codes(các
mã lạ xuất hiện)
Phần cứng,hệ điều hành cụ thể
(Hardware and OS)
Tệp chương trình java
.java
biên Dịch
(Compiler)
Mã thực hiện
.exe
L p ng ớ ứ
d ngụ
MyClass{}
Byte Codes
Th vi nư ệ

Byte Codes
Gỡ lỗi
Dịch
Kiển tra và
thông dịch
Nạp các lớp
tham chiếu
Hình H2-3 Quá trình phát triển chương trình Java
Tóm lại, C/C++ và Java là những ngôn ngữ nhằm những mục đích khác nhau.
 Đối với C/C++ cái chính là tốc độ, mạnh mẽ và uyển chuyển trong lập trình. Khi thực
hiện chương trình C/C++ thì mọi việc của hệ thống đều phải bắt đầu và kết thúc ở một
chương trình con đặc biệt, hàm main(). Chúng ta có thể sử dụng thư viện động, những
thứ yêu cầu được liên kết lại khi cần, nhưng về tổng thể là phải định nghĩa và xác định
ngay từ trước khi dịch.
 Đối với Java mục đích chính là: đơn giản, thân thiện, hướng đối tượng và cách tân
nhằm tạo ta những phần mềm độc lập với môi trường. Khi chạy một chương trình ứng
dụng Java thì cần chỉ ra những lớp đối tượng mà bạn muốn chúng thực thi những công việc
cần thực hiện và JVM sẽ nạp các lớp đó xuống khi có nhu cầu. Java có thể dịch và thực
hiện trong mọi môi trường điều hành, miễn là ở đó có chương trình thông dịch (máy Java
ảo - JVM).

2.3 Bộ JDK (Java Developer Kit)
Hiện nay có nhiều môi trường hỗ trợ để phát triển phần mềm với Java như: Visual J++,
Symatec’s Cafe, Borland JBuilder, JDK, JCreator Pro Bộ JDK do Sun cung cấp theo Web
Site: http:// java.sun.com . Bộ JDK cung cấp các công cụ và các chương trình sau:
1. javac Chương trình dịch chuyển mã nguồn sang mã byte.
2. java Bộ thông dịch: Thực thi các ứng dụng độc lập, các tệp tin .class trực tiếp.
3. appletviewer Bộ thông dịch: Thực thi các ứng dụng nhúng (java applet) từ tệp tin
HTML mà không cần sử dụng trình duyệt như Nestcape, hay Internet
Explorer, v.v.

4. javadoc Bộ tạo tài liệu dạng HTML từ mã nguồn cùng các chú thích bên trong.
5. jdb Bộ gỡ lỗi (java debuger) cho phép thực hiện từng dòng lệnh, đặt điểm
dừng, xem giá trị của các biến, v.v.
6. javah Bộ tạo lập header của C và cho phép chương trình C gọi các phương
thức (hàm) của Java và ngược lại.
- 23 -
Chương trình
ứng dụng
hiện hành
7. javap Trình dịch ngược Assembler. Hiển thị các phương thức, dữ liệu truy
nhập được bên trong của tệp tin .class đã được dịch và hiển thị nghĩa của
byte code.
2.4 Các dạng chương trình ứng dụng của Java
Có ba loại chương trình có thể phát triển với Java:
 Các chương trình ứng dụng độc lập (Standalone Applications)
 Các chương trình ứng dụng nhúng (Applet Application),
 Các chương trình kết hợp cả 2 loại trên.
Để viết chương trình Java chúng ta có thể sử dụng những hệ soạn thảo phổ dụng như NotePad,
WordPad, TextPad, v.v. hoặc ngay trong môi trường hỗ trợ để phát triển phần mềm với Java như:
Visual J++, Symatec’s Cafe, Borland JBuilder, JDK, JCreator Pro Hệ soạn thảo đơn giản và
thích hợp nhất có lẽ là TextPad. Bạn có thể nạp version mới nhất của TextPad từ địa chỉ của
Web Site trên Internet: .
2.4.1 Chương trình ứng dụng độc lập
Chương trình ứng dụng độc lập là một chương trình theo nghĩa thông thường: Tệp chương
trình nguồn sau khi dịch có thể thực hiện trực tiếp. Chương trình độc lập bắt đầu và kết thúc
thực hiện ở phương thức main() giống như trong chương trình C/C++.
Khi xây dựng một ứng dụng độc lập cần lưu ý:
1) Tạo lập một lớp được định nghĩa có phương thức main() gọi là lớp chính và đảm bảo
phương thức main được định nghĩa đúng theo mẫu qui định;
2) Kiểm tra xem liệu tệp chương trình có tên trùng với tên của lớp chính và đuôi “.java”

hay không;
3) Biên dịch tệp chương trình nguồn để tạo ra các tệp mã byte code với các đuôi “.class” tương ứng;
4) Sử dụng chương trình thông dịch của Java để chạy chương trình đã dịch.
Ví dụ 2.1 Chương trình ứng dụng độc lập.
Bài toán: Viết chương trình hiển thị lên màn hình một xâu ký tự bất kỳ
// StandaloneApp.java
public class StandaloneApp{
public static void main (String args[]){
System.out.println(“ Chao các bạn!”);
}
}
- 24 -
* Tệp chương trình StandaloneApp có tên trùng với tên của lớp StandaloneApp, trong đó có hàm
main(). Hàm này luôn có dạng:
public static void main(String args[]){
// Nội dung thực hiện của chương trình
}
Trong đó:
+ Từ khóa public: Cho biết hàm main là hàm công khai, mọi đối tượng trong hệ thống
chương trình đều có quyền truy cập hàm này
+ Từ khóa static: Hàm main là hàm tĩnh, phụ thuộc vào cả một lớp, không phụ thuộc
vào đối tượng cụ thể nào => Không cần tạo lập đối tượng để gọi những hàm như thế.
+ Từ khóa void : hàm main không trả về bất kỳ giá trị nào.
+ Đối số (String agrs[]): Chứa các đối số nhập vào từ tham số dòng lệnh
* Biên dịch và thông dịch để thực hiện chương trình java qua cơ chế dòng lệnh:
Ví dụ: Biên dịch và thông dịch chương trình: StandaloneApp.java
- Biên dich: Tại màn hình DOS, gõ lệnh
javac StandaloneApp.java ↵
=> Kết quả ta thu được tệp StandaloneApp.class chứa mã byte code của lớp tương ứng
nếu dịch thành công, nếu chương trình có lỗi cú pháp thì thông báo lỗi.

- Thông dịch để thực thi chương trình: Tại màn hình của DOS, gõ lệnh
java StandaloneApp ↵
=> Kết quả thực hiện của chương trình:
Chao cac ban!
Lưu ý:
 Khi viết chương trình java thì chỉ cần viết tên lớp chứa hàm main() và không cần đưa thêm
đuôi .class,
 Khi soạn thảo chương trình nên tạo ra một thư mục riêng, ví dụ c:\users\Lan để ghi chương
trình nguồn (StandaloneApp). Tất cả những tệp lớp (.class) đều được tạo ra ở thư mục chứa
chương trình nguồn,
 Phải chỉ rõ thư mục chứa các chương trình dịch, thông dịch javac.exe, java.exe. Thường các
chương trình này được cài đặt và được lưu ở thư mục, ví dụ c:\jdk1.3\bin\java.
- 25 -

×