HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÀI GIẢNG MÔN
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Giảng viên: Nguyễn Mạnh Sơn
Điện thoại: 0904574001
Bộ môn: Công nghệ phần mềm - Khoa CNTT1
Học kỳ/Năm biên soạn: I – 2009/2010
12/09/12 2
Giới thiệu Java
James Gosling and Sun Microsystems
Oak
Java, May 20, 1995, Sun World
HotJava
The first Java-enabled Web browser
JDK Evolutions
J2SE, J2ME, and J2EE
12/09/12 3
Các đặc tính của JAVA
Tính phân tán
Hỗ trợ xây dựng các ứng dụng phân tán thông qua các ứng dụng
truy nhập từ xa, các ứng dụng socket …
Tính thông dịch
Java là một ngôn ngữ vừa biên dịch vừa thông dịch, có thể dễ
dàng chạy trên nhiều máy khác nhau
12/09/12 4
Các đặc tính của JAVA
Tính mạnh mẽ
Loại bỏ được các lỗi thường gặp trong C như cấp phát bộ nhớ, bộ
nhớ tràn, trùng lặp bộ nhớ …
Kiểu dữ liệu phải được khai báo tường minh.
Java không sử dụng con trỏ và các phép toán con trỏ.
Java kiểm tra việc truy nhập đến mảng, chuỗi khi thực thi để đảm
bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước
mảng.
Quá trình cấp phát, giải phóng bộ nhớ cho biến đượ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.
12/09/12 5
Các đặc tính của JAVA
Tính bảo mật
Có khả năng tạo ra một hệ thống không virus do sử dụng các kỹ
thuật mã hoá sử dụng khoá công khai.
Bộ biên dịch có khả năng loại bỏ những hành vi không cho phép
Các mức bảo mật
Java cung cấp một môi trường quản lý thực thi chương trình với nhiều
mức để kiểm soát tính an toàn:
Ở mức thứ nhất, dữ liệu và các phương thức được đóng gói bên trong
lớp. Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp.
Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và
tuân theo các nguyên tắc của Java.
Mức thứ ba được đảm bảo bởi trình thông dịch. Chúng kiểm tra xem
bytecode có đảm bảo các qui tắc an toàn trước khi thực thi.
Mức thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi
phạm giới hạn truy xuất trước khi nạp vào hệ thống.
12/09/12 6
Các đặc tính của JAVA
Kiến trúc trung tính
Cơ chế máy ảo Java
Các ứng dụng Java thực hiện trên máy ảo và không
phụ thuộc vào bộ vi xử lý
Tính khả chuyển
Các ứng dụng Java có thể cài đặt và chạy tốt trên tất
cả các máy
Các kiểu dữ liệu được định nghĩa không phụ thuộc vào
bộ xử lý hay hệ điều hành
12/09/12 7
Các đặc tính của JAVA
Tínhhiệu quả
Do sử dụng giao diện đồ hoạ, sự đơn giản, nhỏ gọn nên hiệu quả
chung của các chương trình Java cao hơn các chương trình viết
bằng ngôn ngữ khác
Tính đa luồng (multithread)
Java hỗ trợ lập trình đa luồng, cho phép thực hiện nhiều tiến
trình song song
Tính linh động
Java là một ngôn ngữ động
Các chương trình của Java có khả năng tự mở rộng để liên kết
với các lớp mới có thể có ở một máy chủ xa trên mạng.
12/09/12 8
Java IDE Tools
Borland JBuilder
Microsoft Visual J++
JCreator
Text Pad
EClipse
12/09/12 9
Cài đặt Java
Cài đặt JDK 1.5
Yêu cầu tối thiểu
Các bước cài đặt
Cập nhật biến đường dẫn PATH
Đối với WindowsNT, WinXP khởi động Control Panel, chọn System, chọn
Environment (hoặc click chuột phải vào My Computer, chọn Properties, chọn
Advanced, click vào Environment Variables), click vào biến PATH trong phần
User Variables và System Variables. Sau đó, thêm vào cuối nội dung biến
hiện có dòng sau (phải có dấu chấm phẩy):
;C:\jdk1.5\bin
Đối với Windows98/95, chọn START, chọn RUN, nhập dòng sysedit vào ô
lệnh, nhấn OK, chọn cửa sổ của AUTOEXEC.BAT. Tìm dòng khai báo biến
PATH, nếu không có, thêm vào một dòng mới theo mẫu: SET
PATH=C:\jdk1.5\bin. Nếu có sẵn biến PATH, thêm vào cuối dòng này nội
dung: ;C:\jdk1.5\bin
12/09/12 10
Cài đặt Java
Cài đặt các IDE Tool
JCreator 3.0 trở lên
Eclipse
NetBean
12/09/12 11
Một ứng dụng đơn giản
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
12/09/12 12
Kiến trúc chung của chương trình
!"#$%
&!!&!! &'
(
)*+&,$-.
&$$/0 12
(
3#*412
!/!0 5 6
7
7
12/09/12 13
Tạo và dịch chương trình
Lệnh dịch file Java
8&
Source Code
Create/Modify Source Code
Compile Source Code
i.e. javac Welcome.java
Bytecode
Run Byteode
i.e. java Welcome
Result
If compilation errors
If runtime errors or incorrect result
12/09/12 14
Chạy chương trình
Lệnh chạy chương trình
&!!
Java
Interpreter
on Windows
Java
Interpreter
on Sun Solaris
Java
Interpreter
on Linux
Bytecode
...
12/09/12 15
Ví dụ
9&
9&
:
12/09/12 16
Khối câu lệnh
Một khối câu lệnh được tạo nên từ một cặp dấu
ngoặc đơn.
Ví dụ
&&!!;!(
&!$/<=>!0(
<+!&/?9&@A?0
7
7
Class block
Method block
12/09/12 17
Chú thích (Comment)
Chú thích trên một dòng
int i = 10 ; // i is counter
Chú thích trên nhiều dòng
/*
Some comments
*/
Đoạn văn bản chú thích
/**
Documentation Comment
*/
12/09/12 18
Các lớp
Mọi thứ trong Java đều được tạo nên từ các lớp
Mỗi lớp có các thuộc tính và các phương thức.
Các phương thức có thể có sẵn (của các lớp thư viện) hoặc do
người lập trình tự định nghĩa
main
là một phương thức đặc biệt của một lớp và sẽ luôn được
gọi đầu tiên khi chạy chương trình
public static void main(String[] args) {
// Statements;
}
12/09/12 19
Truyền đối số trong hàm main
&!!3!!B(
&!$/<!=>0
(
<+!&/C;!!$$D0
<+!&/!=E>0
<+!&/!=F>0
<+!&/!=G>0
7
7
Biên dịch chương trình:
>javac PassArgumet.java
Thực thi chương trình với dòng lệnh:
>java PassArgument A 123 B1
Sẽ thu được trên màn hình kết quả:
;!!$$
B
FGH
IF
12/09/12 20
Các từ khoá của JAVA
Java Keywords
abstract double int super
boolean else interface switch
break extendslong synchronized
byte final native this
case finally new throw
catch float package throws
char for private transient*
class goto* protected try
const* if public void
continue implements return volatile
default import short while
do instanceof static strictfp
assert (New in 1.5) enum (New in 1.5)
12/09/12 21
Các kiểu dữ liệu và phép toán cơ
bản
12/09/12 22
Khai báo biến
Cú pháp khai báo biến:
dataType varName;
Trong đó, dataType là kiểu dữ liệu của biến, varName là tên
biến. Trong Java, việc đặt tên biến phải tuân theo các quy
tắc sau:
Chỉ được bắt đầu bằng một kí tự (chữ), hoặc một dấu gạch dưới ,
hoặc một kí tự dollar
Không có khoảng trắng giữa tên
Bắt đầu từ kí tự thứ hai, có thể dùng các kí tự (chữ), chữ số, dấu
dollar, dấu gạch dưới
Không trùng với các từ khoá
Có phân biệt chữ hoa chữ thường
12/09/12 23
Khai báo biến
JK&J
&
$&$!K&$!
$&&
K&
&
12/09/12 24
Câu lệnh gán giá trị
JLFB!!FJ
$!LFEB!!FE$!
LMBMB!!MBM
12/09/12 25
Khai báo và gán giá trị cho biến
JLF
$&$LFN
8&8LFN