Giáo trình Java cơ sở
Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995. Từ đó, nó đã trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp. Java được xây dựng trên nền tảng của C và C++. Do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối tượng của C++.
Ban đầu Java được thiết kế để làm ngôn ngữ viết chương trình cho các sản phẩm điện tử dân dụng như đầu video, tivi, điện thoại, máy nhắn tin.. . Tuy nhiên với sự mãnh mẽ của Java đã khiến nó nổi tiếng đến mức vượt ra ngoài sự tưởng tượng của các nhà thiết kế ra nó.
Java khởi thuỷ tên là Oak- là cây sồi mọc ở phía sau văn phòng của nhà thiết kế chính ông Jame Gosling, sau này ông thấy rằng đã có ngôn ngữ lập trình tên Oak rồi, do vậy nhóm thiết kế quyết định đổi tên, “Java” là cái tên được chọn, Java là tên của một quán cafe mà nhóm thiết kế java hay đến đó uống.
Tóm tắt nội dung tài liệu: Giáo trình Java cơ sở
Bé gi¸o dôc vμ ®μo t¹o
Trêng ®¹i häc s ph¹m kü thuËt hng yªn
---------------ooo------------------
việc mà các ngôn ngữ khác có thể làm được.
Java là ngôn ngữ vừa biên dịch vừa thông dịch. Đầu tiên mã nguồn được
biên dịch bằng công cụ JAVAC để chuyển thành dạng ByteCode. Sau đó được
thực thi trên từng loại máy cụ thể nhờ chương trình thông dịch JAVA. Mục tiêu
của các nhà thiết kế Java là cho phép người lập trình viết chương trình một lần
nhưng có thể chạy trên bất cứ phần cứng cụ thể, thế nên khẩu hiệu của các nhà
thiết kế Java là “Write One, Run Any Where”.
Ngày nay, Java được sử dụng rộng rãi để viết chương trình chạy trên
Internet. Nó là 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. Java không chỉ dùng để viết các ứng dụng chạy đơn lẻ hay
trong mạng mà còn để xây dựng các trình điều khiển thiết bị cho điện thoại di
động, PDA,
II. Một số đặc trưng của java
1.Đơn giản
Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen
thuộc với đa số người lập trình. Java tựa như C++, nhưng đã lược bỏ đi các đặc
trưng phức tạp, không cần thiết của C và C++ như: thao tác con trỏ, thao tác định
nghĩa chồng toán tử (operator overloading), Java không sử dụng lệnh “goto”
cũng như file header (.h). Cấu trúc “struct” và “union” cũng được loại bỏ khỏi
Java. Nên có người bảo Java là “C++--“, ngụ ý bảo java là C++ nhưng đã bỏ đi
những thứ phức tạp, không cần thiết.
2. Hướng đối tượng
Có thể nói java là ngôn ngữ lập trình hoàn toàn hướng đối tượng, tất cảc
trong java đều là sự vật, đâu đâu cũng là sự vật.
3. Độc lập với hệ nền
Mục tiêu chính của các nhà thiết kế java là độc lập với hệ nền hay còn gọi bộ nhớ. Qúa trình cấp phát, giải phóng được thực hiện tự động, nhờ dịch vụ thu
nhặt những đối tượng không còn sử dụng nữa (garbage collection).
Cơ chế bẫy lỗi của Java giúp đơn giản hóa qúa trình xử lý lỗi và hồi phục
sau lỗi.
5. Hỗ trợ lập trình đa tuyến
Đây là tính năng cho phép viết một chương trình có nhiều đoạn mã lệnh
được chạy song song với nhau. Với java ta có thể viết các chương trình có khả
năng chạy song song một cách dễ dàng, hơn thế nữa việc đồng bộ tài nguyên dùng
chung trong Java cũng rất đơng giản. Điều này là không thể có đối với một số
ngôn ngữ lập trình khác như C/C++, pascal
6. Phân tán
Java hỗ trợ đầy đủ các mô hình tính toán phân tán: mô hình client/server,
gọi thủ tục từ xa
7. Hỗ trợ internet
Mục tiêu quan trọng của các nhà thiết kế java là tạo điều kiện cho các nhà
phát triển ứng dụng có thể viết các chương trình ứng dụng internet và web một
cách dễ dàng, với java ta có thể viết các chương trình sử dụng các giao thức TCP,
UDP một cách dễ dàng, về lập trình web phía máy khách java có công nghệ java
applet, về lập trình web phía máy khách java có công nghệ servlet/JSP, về lập
trình phân tán java có công nghệ RMI, CORBA, EJB, Web Service.
8. Thông dịch
Các chương trình java cần được thông dịch trước khi chạy, một chương
trình java được biên dịch thành mã byte code mã độc lập với hệ nền, chương trình
thông dịch java sẽ ánh xạ mã byte code này lên mỗi nền cụ thể, điều này khiến
java chậm chạp đi phần nào. Các ứng dụng này sử dụng JDBC API để kết nối tới cơ sở dữ liệu. Chúng
có thể là Applet hay ứng dụng, nhưng Applet bị giới hạn bởi tính bảo mật.
6. Ứng dụng mạng
Java là một ngôn ngữ rất thích hợp cho việc xây dựng các ứng dụng mạng.
Với thư viện Socket bạn có thể lập trình với hai giao thức: UDP và TCP.
7. Ứng dụng nhiều tầng
Với Java bạn có thể xây dựng phân tán nhiều tầng với nhiều hỗ trợ khác
nhau như: RMI, CORBA, EJB, Web Service
8. Ứng dụng cho các thiết bị di động
Hiện nay phần lớn các thiết bị di động như: Điện thoại di động, máy trợ
giúp cá nhân đều hỗ trợ Java. Thế nên bạn có thể xây dựng các ứng dụng chạy
trên các thiết bị di động này. Đây là một kiểu ứng dụng khá hấp dãn, bởi vì các
thiết bị di động này ngày càng phổ biến và nhu cầu có các ứng dụng chạy trên đó,
đặc biệt là các ứng dụng mang tính chất giải trí như game
IV. Máy ảo Java (JVM-Java Virtual Machine)
Máy ảo là một phần mềm mô phỏng một máy tính thật (máy tính ảo). Nó có
tập hợp các lệnh logic để xác định các hoạt động của máy tính và có một hệ điều
hành ảo. Người ta có thể xem nó như một máy tính thật (máy tính có phần cứng
ảo, hệ điều hành ảo). Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới, hệ
điều hành, mã đã biên dịch.
Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụ
thuộc vào phần cứng và hệ điều hành cụ thể. Trình thông dịch trên mỗi máy sẽ
chuyển tập lệnh này thành chương trình thực thi. Máy ảo tạo ra một môi trường
bên trong để thực thi các lệnh bằng cách:
1 Nạp các file .class BÀI 2 NỀN TẢNG CỦA JAVA
I. Tập ký tự dùng trong java
Mọi ngôn ngữ nói chung, ngôn ngữ lập trình nói riêng đều phải xây dựng
trên một tập hợp chữ cái (hay còn gọi là bảng chữ cái), các kí tự được nhóm lại
theo một cách nào đó để tạo thành các từ, các từ lại được nhóm lại thành các câu
(trong ngôn ngữ lập trình gọi là câu lệnh), một chương trình máy tính tính là một
tập các câu lệnh được bố trí theo một trật tự mà người viết ra chúng sắp đặt
Ngôn ngữ java được được xây dựng trên bảng chữ cái unicode, do vậy ta có
thể dùng các kí tự unicode để đặt tên cho các định danh.
II. Từ khoá của Java
Mỗi ngôn ngữ lập trình có một tập các từ khoá, người lập trình phải sử
dụng từ khoá theo đúng nghĩa mà người thiết kế ngôn ngữ đã đề ra, ta không thể
định nghĩa lại nghĩa của các từ khoá, như sử dụng nó để đặt tên biến, hàm..
Sau đây là một số từ khoá thường gặp:
Từ khóa Mô tả
abstract Sử dụng để khai báo lớp, phương thức trừu tượng
boolean Kiểu dữ liệu logic
break Được sử dụng để kết thúc vòng lặp hoặc cấu trúc switch
byte kiểu dữ liệu số nguyên
case được sử dụng trong lện switch
cast Chưa được sử dụng (để dành cho tương lai)
catch được sử dụng trong xử lý ngoại lệ
char kiểu dữ liệu ký tự
class Dùng để khai báo lớp return Quay từ phương thức về chỗ gọi nó
short kiểu số nguyên
static Dùng để khai báo biến, thuộc tính tĩnh
super Truy xuất đến lớp cha
switch lệnh lựa chọn
synchronized một phương thức độc quyền truy xuất trên một đối tượng
this Ám chỉ chính lớp đó
throw Ném ra ngoại lệ
throws Khai báo phương thức ném ra ngoại lệ
true Giá trị logic
try sử dụng để bắt ngoại lệ
void Dùng để khai báo một phương thức không trả về giá trị
while Dùng trong cấu trúc lặp
III. Định danh (tên)
Tên dùng để xác định duy nhất một đại lượng trong chương trình. Trong java
tên được đặt theo quy tắc sau:
- Không trùng với từ khoá
- Không bắt đầu bằng một số, tên phải bắt đầu bằng kí tự hoặc bắt đầu bằng kí
$,_
- Không chứa dấu cách, các kí tự toán học như +, -, *,/, %..
- Không trùng với một định danh khác trong cùng một phạm vi
chú ý:
- Tên nên đặt sao cho có thể mô tả được đối tượng trong thực tế
- Giống như C/C++, java có phân biệt chữ hoa chữ thường
- Trong java ta có thể đặt tên với độ dài tuỳ ý
- Ta có thể sử dụng các kí tự tiếng việt để đặt tên • Trong ngôn ngữ Java, lớp là một đơn vị mẫu có chứa dữ liệu và mã lệnh liên
quan đến một thực thể nào đó. Khi xây dựng một lớp, thực chất bạn đang tạo ra
một một kiểu dữ liệu. Kiểu dữ liệu mới này được sử dụng để xác định các biến
mà ta thương gọi là “đối tượng”. Đối tượng là các thể hiện (instance) của lớp.
Tất cả các đối tượng đều thuộc về một lớp có chung đặc tính và hành vi. Mỗi
lớp xác định một thực thể, trong khi đó mỗi đối tượng là một thể hiện thực sự.
- Khi ban khai báo một lớp, bạn cần xác định dữ liệu và các phương thức của
lớp đó. Về cơ bản một lớp được khai báo như sau:
Cú pháp:
class classname
{ var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}
Trong đó:
class - Từ khoá xác định lớp
classname - Tên của lớp
var_datatype - kiểu dữ liệu của biến
variablename - Tên của biến
met_datatype - Kiểu dữ liệu trả về của phương thức
- Để biên dịch một chương trình java sang mã byte code ta dùng lệnh
C:\JDK1.4\BIN\javac TênTệp.java
- Để thông dịch và chạy chương trình ta sử dụng lệnh
C:\JDK1.4\BIN\java TênTệp
Để biên dịch và chạy chương trình Java đơn giản ta nên thiết đặt hai biến môi
trường “paht” và “classpath” như sau:
- Đối với dòng WinNT:
+ R-Click vào My Computer chọn Properties chọn
Advanced Enviroment Variables
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World");
}
}
• Ghi lại với cái tên C:\HelloWorld.java (chú ý tên tệp phải trùng với tên lớp, kể
cả chữ hoa chữ thường, phần mở rộng là java)
- Mở của sổ DOS Prompt
+ chuyển vào thư mục C:\
+ Gõ lệnh javac HelloWorld.java để biên dịch chương trình, nếu việc biên
dịch thành công (chương trình không có lỗi cú pháp) thì ta sẽ thu được
tệp HelloWorld.class trong cùng thư mục, nếu trong chương trình còn
lỗi cú pháp thì trong bứơc này ta sẽ nhận được một thông báo lỗi và lúc
này tệp HelloWorld.class cũng không được tạo ra
+ Gõ lệnh java HelloWorld (chú ý không gõ phần mở rộng) để chạy chương
trình HelloWorld.
Sau khi thông dịch và chạy ta nhận được
VI. Chú thích trong chương trình
boolean kiểu logic true hoặc false - - Boolean
void - - - - Void
Đặc điểm của các biến có kiểu nguyên thủy là vùng nhớ của chúng được cấp phát
ở phần stack. Do vậy việc truy xuất vào một biến kiểu nguyên thủy rất nhanh.
2. Kiểu tham chiếu
Trong Java có 3 kiểu dữ liệu tham chiếu
Kiểu dữ liệu Mô tả
Mảng (Array) Tập hợp các dữ liệu cùng kiểu.
Lớp (Class) Là sự cài đặt mô tả về một đối tượng trong bài toán.
Giao diện Là một lớp thuần trừu tượng được tạo ra cho phép cài đặt
(Interface) đa thừa kế trong Java.
Đặc điểm của các biến kiểu tham chiếu là nó chứa địa chỉ của đối tượng mà
nó trỏ đến.
Vùng nhớ của biến tham chiếu được cấp phát ở vùng nhớ stack còn vùng
nhớ của đối tượng được cấp phát ở vùng nhớ heap. Việc truy xất vào vùng nhớ
heap chậm hơn truy xất vào vùng nhớ stack tuy nhiên java có cơ chế cho phép truy
cập vào vùng nhớ heap với tốc độ xấp xỉ bằng tốc độ truy cập vào vùng nhớ stack.
VIII. Khai báo biến
1. Khai báo biến
Tương tự ngôn ngữ C/C++, để khai báo biến trong java ta sử dụng cú pháp
sau:
type name [=InitValue];
• biến phạm vi lớp là biến được khai báo bên trong lớp nhưng bên ngoài các
phương thức và hàm tạo, tuy nhiên việc khai báo phải xuất hiện trước khi biến
được sử dụng
• biến phạm vi cục bộ là biến được khai báo bên trong một khối, phạm vi của
biến tính từ điểm biến được khai báo cho đến cuối khối mà biến được khai báo
Ví dụ:
{
int i=1;
// chỉ có i sẵn sàng sử dụng
{
int j=10;
// cả i và j đều sẵn sàng
}
// chỉ có i sẵn sàng
// j không sẵn sàng vì nằm ngoài phạm vi
}
Chú ý: Ta không thể làm điều sau cho dù nó có thể trong C/C++
{ File đính kèm:
giao_trinh_java_co_so.pdf

