Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Giáo trình Java
PREMIUM
Số trang
185
Kích thước
32.6 MB
Định dạng
PDF
Lượt xem
894

Giáo trình Java

Nội dung xem thử

Mô tả chi tiết

sở GIẢO DỤC VÀ ĐÀO TẠO HẢ NỘI

NGUYỄN QUANG LY

GIÁ O TRÌN H

JAVA

(Dùng trong các trường THON)

BẠI HỌC TRAI NGUYÊN

TRUNG TÂM HỌC LÈ!

NHÀ XUẤT BẢN HÀ NÔI - 2007

L ờ i giới thiệu

ước ta đang bước vào thời kỳ công nghiệp hóa, hiện

Ì V đại hóa nhằm đưa Việt Nam trở thành nước công

nghiệp văn minh, hiện đại.

Trong sự nghiệp cách mạng lo lớn đó, công lác dào tạo

nhân lực luôn giữ vai trò quan trọng. Báo cáo Chính trị của

Ban Chấp hành Trung ương Đáng Cộng sản Việt Nam tại

Đại hội Đảng toàn quốc lẩn thứ IX đã chì rõ: "Phát triển

giáo dục và đào tạo là một trong những động lực quan trọng

thúc đẩy sự nghiệp công nghiệp hóa, hiện đại hóa, là điều

kiện để phát triển nguồn lực con người - yếu tô cơ bản để

phát triển xã hội, tăng trưởng kinh tế nhanh và bền vững".

Quán triệt chủ trương, Nghị quyết của Đảng và Nhà nước

và nhận thức đúng đắn về tầm quan trọng của chương trình,

giáo trình đối với việc nâng cao chát lượng đào tạo, theo để

nghị của Sỏ Giáo dục và Đào lạo Hà Nội, ngày 231912003,

ủy ban nhân dán thành phố Hà Nội đã ra Quyết định số

5620/QĐ-UB cho phép sỏ Giáo dục và Đào tạo thực hiện dề

án biên soạn chương trình, giáo trình trong các trường Trung

học chuyên nghiệp (THON) Hà Nội. Quyết định này thể hiện

sự quan tám sâu sắc cùa Thảnh ủy, UBND thành phố trong

việc nâng cao chất lượng đào tạo và phát triển nguồn nhân

lực Thủ đổ.

Trên cơ sỏ chương trình khung của Bộ Giáo dục và Đào

tạo ban hành và những kinh nghiệm rút ra từ thực tế đào lạo,

Sở Giáo dục và Đào tạo dã chi đạo các trường THON tổ chức

biên soạn chương trình, giáo trình một cách khoa học, hệ

3

thống và cặp nhật những kiến thức thực tiễn phù hợp với đới

tượng học sinh THCN Hà Nội.

Bộ giáo trình này lù tài liệu giáng dạy và học tập trong

các trường THON ở Hà Nội. đồng thời là tủi liệu tham khao

hữu ích cho các trường cổ đào tạo các ngành kỹ thuật - nghiệp

vụ và đông đảo bạn đọc quan lâm đến vấn đề hướng nghiệp.

dạy nghê.

Việc tổ chức biên soạn bộ chương trình, giáo trình này

là một trong nhiều hoạt động thiết thực của ngành giáo dục

và đào tạo Thủ dô để kỷ niệm "50 năm giải phóng Thủ đó ".

"50 nám thành lập ngành" và hướng tới kỷ niệm "1000 năm

Thăng Long - Hà Nội".

SỞGiáo dục và Đào lạo Hà Nội chân thành cảm ơn Thành

ủy, UBND, các sờ, ban, ngành của Thành phô, Vụ Giáo dục

chuyên nghiệp Bộ Giáo dục và Đào tạo, các nhà khoa học, các

chuyên gia đầu ngành, các giảng viên, các nhà quản lý, các

nhà doanh nghiệp đã tạo điều kiện giúp đỡ, đóng góp ý kiến,

tham gia Hội đồng phản biện, Hội đồng thẩm đinh và Hội

đồng nghiệm thu các chương trình, giáo trình.

Đây là lần đàu tiên sỏ Giáo dục và Đào lạo Hà Nội tố

chức biển soạn chương trình, giáo trình. Dù dã hết sức cố

gắng nhưng chắc chắn không tránh khôithiếu sót, bái cặp.

Chúng tôi mong nhận được những ý kiến đóng góp của bạn

đọc để từng bước hoàn thiện bộ giáo trình trong các lán tái

bản sau.

GIÁM ĐỐC SỞ GIÁO DỤC VÀ ĐÀO TAO

4

L ời nói đ ầ u

Trong thời đại công nghệ thông tin bùng nổ như ngày nay, việc lập được

các chương trình chạy trên máy tính nhằm thực hiện các công việc nào đó là

điều vô cùng cân thiết. Tuy nhiên, xung quanh chúng ta có quá nhiều thứ ngôn

ngữ lập trình: Pascal, c, C++, Basic, Delphi, Coboỉ,... Vậy đâu là ngôn ngữ

tập trinh phù hợp với bạn? Càu trả lời trước tiên phụ thuộc vào chính bạn.

Nếu bạn là người mong muốn trở thành một lập trình viên chuyên nghiệp;

nếu bạn là người mong muốn xây diừig các chương trình hướng đối tượng; nếu

bạn phải thường xuyên xây diợig và vận hành các ứng dụng chạy trên mạng

hay ỉnternet; nếu bạn lả người thường xuyên giải quyết các bài toán quản lý;...

thì Java là ngôn ngữ lập trình hữu ích giúp bạn đạt kết quả cao.

Nhiều người cho rằng, Java là mội bước cách tán vĩ đại của thế giới tin

học. Nếu hạn dã từng thử thách sức mình với một ngôn ngữ lập trinh khác như

c, C++, Pascơl... thì vái Java bạn sẽ thấy một cách suy nghĩ hoàn loàn khác,

một con đường mới mẻ để đi đến mục đích của bạn.

Tuy nhiên, nếu bạn chưa từng bao giờ biết đến lập trình, chưa có một khái

niệm nào về ngôn ngữ lập trình thì cuốn sách này vẫn là để dành cho bạn,

nhưng để đi đến đích, bạn phải làm việc nhiều và rất nhiều.

Cũng cẩn hát ý thêm, mặc dù Java là mội ngôn ngữ lập trình mạng vô cùng

mạnh mẽ nhưng đây là một cuốn sách thiên về lập trình hướng đối tượng trong

Java. Vì vậy, phần lập trình mạng sẽ không được đề cập đến ở đây. Các bạn

độc giả quan tâm đến lĩnh vực đó cá thể tìm đọc trong mội số lài liệu khác.

TÁC GIẢ

5

Chươn g Ì

TỔN G QUA N VỀ JAVA

ì. LỊCH sử PHÁT TRIỂN JA VA

1. Khải điểm

Cuối năm 1990, James Gosling được công ty Sun Microsystems 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.

Lúc đẩu Gosling và nhóm cộng sự định lựa chọn C++ nhưng nhanh chóng nhận

thấy rằng C++ không thích hợp vì quá cồng kềnh và đòi hỏi rất nhiều tài

nguyên (bộ nhớ, đĩa...). Gosling đã quyết định xây dựng hẳn một ngôn ngữ lập

trình mới và đặt tên là Oak (Oak: cây sồi, vì trưốc cửa phòng làm việc của ông

nhìn ra một cây sổi).

Đầu tiên, Oak được sử dụng trong "Dự án Xanh" (Green ProjecI) trong đó

Java được sử dụng để kiểm soát các thiết bị điện dân dụng trong dự án. Sau đó,

Oak được sử dụng trong dự án Phim-theo-yêu cầu (Video - ôn - deman

Project). Qua các dự án đó, Java được phát triển nhanh chóng, đến lúc này Oak

được đổi tên vì có sự trùng lạp và Java ra đời.

2. Sự phát triển

Java dược sử dụng chủ yếu trong bộ công cụ phát triển Java Ụava

Development Kít - JDK) như là một thư viện chuẩn, trong đó chứa trình biên

dịch, thông dịch, trợ giúp, soạn tài liệu,...

Khởi đầu với JDK 1.0 vào năm 1995, JDK 1.1 được công bố vào năm 1996

với nhiều cải tiến như: táng thêm các hàm giao diện (AWT), xây dựng hệ thống

thư viện dùng lại iavabeans, JFC,... Bộ Java 1.6 là lõi cho việc viết các IED

ựntergrated Environment Deveìopment) nổi tiếng nhuJbuiIder 2.0, Visual J++

6.0,... Trong giáo trình này chúng ta yêu cầu các bản JDK từ Ì .2 trờ về sau.

7

JDK 1.2 ra đời năm 1998 và được coi như mọt DUƠC ngoặt trong quá trình

phát triển của Java. JDK 1.2 chứa rất nhiều những thay đổi trong cấu trúc so với

JDK 1.1. Khả năng bảo mật cao hơn và linh động hơn, nâng cao tính khả chuyền

và tốc độ thực hiện, một chương trình được viết bằng JDK 1.2 chạy nhanh hem

30% đến 40% so với một chương trình viết bằng JDK 1.1. Đặc biệt, JDK còn phát

triển thêm JDK đồ hoa 2D và 3D nàng cao đáng kể khả nâng đồ hoa của Java.

Sau Java 1.2, cho đến ngày nay, Java đã phát triển đến phiên bán Ì .4 và với

tốc độ như vậy có lẽ là sau vài tháng nữa chúng ta lại được nghe đến những

thông tin mới về Java.

li. CÁC ĐẶC ĐIỂM CỦA JAVA

Có nhiều đặc điểm nổi bật của Java so với các ngôn ngữ khác. Dưới đây là

một số đặc điểm chủ yếu nhất.

1. Đơn giàn (Simple)

Đặc điểm đầu tiên và cũng là mục đích của Java là tính đơn giản. Mục đích

của những người sáng lập ra Java là đế thay thế cho c và C++. Mặc dù công

việc này chẳng hề đơn giản chút nào nhưng ta cũng cán thấv rằng Java đã hạn

chế được rất nhiều tính phức tạp ở trong c và C++. Hai ví dụ có thể chứng

minh cho tính đơn giàn cùa Java so với c và C++ đó là Java đã bỏ đi khái niệm

con trỏ ở trong c và bỏ đi tính đa thừa kế ờ trong C++.

Một điều nữa có thể minh chứng cho tính đơn giản của Java là kích thước

của bộ biên dịch cơ bản và lớp hỗ trợ là rất nhỏ. Bàn JDK 1.2 chí chiếm dung

lượng 4 Mb so với vài trăm Mb của Visual C++ và Visual Basic.

2. Hướng đối tượng

Java là một ngôn ngữ lập trình thuần tuy hướng đối tượng. Có nghĩa là

trong Java không có bất cứ một biến hay một thù tục nào được viết à ngoài lớp.

Mọi ứng dụng viết trên Java đều phải dược xây dựng lừ các đối tượng và thông

qua các đối tượng. Nếu như trong C/C++ ta có thề tạo ra các hàm toàn cục

(globaỉỊimction), thì ở Java chúng ta chỉ có thế tạo ra các hàm tương tự thông

qua một đối tượng nào đó.

3. Phân tán

Java được thiết kế để hỗ trợ các ứng dụng phán tán. ứng dụng phân tán là

những ứng dụng làm việc trên môi trường mạng. Trong Java để xây dựng các

8

ứng dụng như thế ta sử dụng lớp mạng (java.net). Ví dụ với lớp URL của Java -

một ứng dụng Java có thể dẻ đằng truy xuất đến một máy chú ở xa. Nó có thể

mở hoặc truy xuất đến các đối tượng ở xa cũng đơn gián như là truy xuất ngay

trên máy tính của mình.

4. Ngôn ngữ lai

Java là một ngôn ngữ lai vì Java là một ngôn ngữ vừa biên dịch và vừa thông dịch.

Ta biết rằng hầu hết chương trình máy tính luôn được viết dưới một ngôn

ngữ lập trình nào đó, lũy nhiên, máy tính của ta lại không thể thực hiện trực

tiếp các chương trình đó vì thực chất máy tính chí là sự kết hợp các mạch điện

tử và nó chi hiểu được ngồn ngũ máy (machine language). Ngôn ngữ máy là

ngôn ngữ chỉ được tạo thành từ các số 0 và Ì; 0 ứng với mức điện áp thấp và Ì

ứng với mức điện áp cao.

Vậy, để một chương trình máy tính viết bằng một ngôn ngữ lập trình nào

đó được thực hiện thì trước tiên nó phải được chuyển thành ngôn ngữ máy. Quá

trình chuyển một chương trình thành ngôn ngữ máy đó người la gọi đó là quá

trình dịch chương trình.

Trong dịch chương trình thì có hai cách dịch là biên dịch và thông dịch.

Biên dịch tức là chuyển toàn bộ chương trình sang ngôn ngữ máy rồi sau đó

mới thực hiện chương trình. Ta có thể hình dung cụ thể qua sơ đồ dưới đây:

#include<stdio.h> 00010101010

void main()

' —• 10101010101

1

int a; printf("a=");

scanf("%d",&a);

a=a+l;

getchO;

1

— • 010101010101

Thực hiện

Thúc hiện

Thúc hiên

Hình LI. Sơ đổ biên dịch và thực hiện chương trình

9

Thông dịch tức là thực hiện dịch từng dòng lệnh của chương trình sau đó sẽ

thực hiện ngay dòng lệnh đó rồi lại quay về dịch và thực hiện dòng lệnh tiếp theo.

Ta có thể hình dung cụ thể về quá trình thông dịch thông qua hình dưới đây:

£ #include<stdio.h>

void main()

I

im a;

printf("a=");

scanf("%d",&a);

a=a+l;

getchO;

00010101010

10101010101

010101010101

Thực hiện

Thực hiên

Thực hiện

Hình Ì .2. Sơ dỏ thòng dịch và thực hiện chương trình (^Stop^)

Vậy một chương trình Java vừa được biên dịch vừa được thông địch như

thế nào? Ta hình dung qua sơ đồ dưới đáy:

chương lj

trình

Hình Lĩ. Các bước dịch một chương trình Java

Như vậy, đế thực hiện một chương trình Java ta cần trải qua hai bước:

Bước 1: Biên dịch chương trinh Java thành một dạng mã trung gian, được

gọi là mã bytecode.

Bước 2: Thông dịch và thực hiện mã trung gian đó.

5. Kiến trúc trung tính

Kiến trúc trung tính của Java nói đến khả năng chạy chương trình Java trẽn

nhiều hệ điều hành và nhiều bộ vi xử lý khác nhau.

Java với khả năng thông dịch mã bytecode (được biên dịch từ mã nguồn

Java) cho phép tạo ra các máy Java ảo (JVM - Java Virtual Machine) trẽn mỗi

hệ thống. Các chương trình Java sẽ chạy trên nền trung tính của các máy ào

Java đó dễ dàng mà không phụ thuộc vào hệ điểu hành và bộ vi xử lý.

10

HI. CÀI ĐẶT, DỊCH VÀ CHẠY CHƯƠNG TRÌNH JAVA

1. Cài đặt Java

Đế có thể soạn thảo các chương trình Java và tiến hành thực hiện, chúng ta

phải cài đặt hai công cụ:

1.1. Cài đạt chương trình biên dịch và thòng dịch JDK

Chuẩn bị:

- Máy có CPU tối thiểu là Intel Pentium 166 Mhz hoặc tương đương

- Hệ điều hành Window 95,98,NT,2000,XP

- Bộ nhớ RAM tối thiểu 32 Mb

- Dung lượng đĩa tối thiểu còn 65 Mb

Các bước cài đặt:

- Chép vào đĩa cứng thư mục jdkl .2

- Chạy chương trình cài đặt bằng cách chạy file jdkl_2_0-win.exe khi đó

Java sẽ cài jdk Ì .2 lên thư mục C:\jdk Ì .2

1.2. Cài đặt chương trình soạn thảo

Thực chất ta có thể soạn thảo chương trình Java bằng một công cụ soạn

tháo bất kỳ (Notepad, Wordpad, Word,...). Sau đó, khi đã soạn chương trình

xong ta tiến hành dịch chương trình. Tuy nhiên, có một công cụ soạn thảo hiệu

quá, đồng thời vừa soạn thảo ta lại có thê vừa biên dịch được đó là Textpad.

Trong giáo trình này ta sẽ sử dụng TextPad làm công cụ soạn thào và dịch chạy

chương trình.

Trong giáo trình này tôi sử dụng TextPad phiên bản 4.6.2. Các bạn có thể

sử dụng phiên bàn bất kỳ của Te.xtPad từ 4.0 Irở lên. Để cài đặt TextPad ta chỉ

việc chạy file cài đặt: I.xpeng4.62.exe. Khi đó TextPad sẽ được cài đặt vào thư

mục C:\Programs Fi!e\TexlPad

2. Soạn thảo và chạy chướng trình Java đầu tiên

2.1. Soạn thảo chương trình

Khởi động TextPacl bằng cách vào đường dẫn Start->Pivgrams->TextPad.

Sau đó soạn thào chương trình có nội dung sau trong TexlPacl:

Ví dụ Li. Chương trình Java đầu tiên

li

Public class First //Khai báo lóp chính

(

public static void main(String[] args) // Hàm main

í

System.out.println("First Java Program"); // In dòng văn bản

I

)

2.2. Chạy chương trình

Sau khi soạn chương trình xong, ta ghi lại chương trình với tên là

First.class. Một điểm quan trọng mà bạn luôn cần chú ý là bạn phải ghi

chương trình trùng với lên của lớp trong đó có chứa hàm mainị), như ờ đây

chẳng hạn là Firsí. Đuôi file của tên chương trình luôn phái là class.

Khi đã ghi chương trình vào rồi ta tiến hành dịch chương trình bằng cách

chí vào menu Tooi->Complie Java hoặc nhấn tổ hợp phím Ctrl+1. Lúc này,

nếu chương trình đúng nó sẽ được dịch thành file trung gian ờ dạng mã

Bvtecode có đuôi java. Nếu chương trình có lỗi thì nó sẽ hiện dòng thông báo

lỗi và ta sẽ phải sửa lại chương trình.

Nếu chương trình được dịch đúng, ta có thê chạy chương trình bằng cách

chọn menu: Tool->Run Java Appìicalion hoặc nhấn tổ hợp phím Ctrl+2. ở

chương trình này khi chạy chương trình dòng chữ FirstJava Program sẽ được in ra.

2.3. Phân tích chưưng trình

Trên đây là một chương trình Java rất đơn giản.

Dòng đầu tiên: Pnbìic ciass First đế khai báo một lớp gọi là lớp chính. Đáy

là lớp mà có chứa hàm mainị) cùa chương trình. Lớp này là bắt buộc phái có

đối với mọi chương trình Java kiểu ứng dụng.

pnblic: Phạm vi của lớp là toàn cục

class: Từ khoa đế khai báo lớp

Firsl: Tên lớp

Dòng thứ hai: public staíic void main(Slringl/ args) dùng đế khai báo hàm

mainị) cùa chương trình. Mọi chương trình ứng dụng Java đều phải có hùm

mainị) và nó là đầu vào của chương trình.

public: Phạm vi của hàm mainị) là toàn cục

12

static: Vì hàm mainị) là hàm duy nhất trong chương trình

void: Hàm main() không có kiểu, không trả về giá trị

StringlỊ args: args dùng để lưu trữ tham số dòng lệnh đầu vào cho hàm

mainị) nếu như ta chạy chương trình từ dòng lệnh.

Dòng thứ ba: System.out.println ("First Java Program"); dùng đế in ra

dòng thông báo First Java Program.

System: Gói System. Chúng ta sẽ tìm hiểu về gói sau

out: Lớp để xuất dữ liệu ra

println: Hàm in dòng thông báo

Bải tập

Bài 1. Viết chương trình in ra dòng chữ:

"Cộng hoa xã hội chủ nghĩa Việt Nam"

ở chính giữa màn hình sau đó nếu ấn phim bất kỳ thì in tiếp dòng chữ

"Độc lập - Tự do - Hạnh phúc"

cũng ở chính giữa màn hình.

Bài 2. Viết chương trình in ra tam giác sau:

1

1 2 1

1 2321

123432 1

123454321

Bài 3. Viết chương trình in ra hình trái tim bằng sao như hình vẽ sau:

* *

* * *

* * *

* *

* *

* *

* *

* *

Ì Ì

*

Bài 4. Viết chương trình chèn thêm dòng chữ "I love you" vào trái tim trong bài 3.

13

Chươn g 2

NGÔ N NGỮ JAVA

ì. Từ KHOA, TÊN RIÊNG, DÒNG GHI CHÚ

1. Từ khoa (Keyvvord)

Cũng như các ngôn ngữ lập trình khác, Java sử dụng một tập hợp các từ có

chức nâng xác định trước. Đương nhiên ta không thể sử dụng các từ này để làm

các chức năng khác. Những từ này gọi là từ khoa.

Bảng dưới đây là tập hợp các từ khoa và chức năng của nó:

Từ khoa Ý nghĩa

abstract Dùng để khai báo một phương thức trừu tượng. Một phương thức trừu

tượng sẽ không có phần mã lệnh. Nó chi là khung cho các lớp thừa kế từ nó

boolean Kiểu dữ liệu logic

break Từ khoa dùng để thoát khỏi vòng lặp

byte Kiểu dữ liệu nguyên có giá trị là số 8 bít

case Từ khoa trong cấu trúc rẽ nhánh switch.. .case

catch Từ khoa dùng để nhận về các giá trị lỗi

char Kiểu dữ liệu ký tự

class Khai báo lớp

const Khai báo hằng

continue Dùng để nhảy về lẩn lặp tiếp theo trong vòng lặp

default Giá trị mặc định trong câu trúc lựa chọn switch

do Nằm trong câu lệnh lặp do... while

else Nằm trong câu lệnh lạp if... else

14

Từ khoa Ý nghĩa

extends Dẫn xuất lớp

final Phương thức cuối là phương thức sẽ không cho các lớp thừa kế dinh

nghĩa lại phương thức này

float Kiểu dữ liệu thực 4 byte

for Lệnh lặp for

if Lệnh lặp if

implements Cài đặt giao tiếp

import Mờ các thư viện (tương tụ #include trong C)

im Kiểu dữ liệu nguyên 4 byte

interface Giao tiếp

long Kiểu dữ liệu nguyên 8 byte

nevv Dùng để tạo một đối tượng mới

package Gói

private Từ khoa khai báo đối tượng tiếp sau là cục bộ

protected Từ khoa khai báo một phương thức chỉ dược sù dụng trong lớp dẫn xuất

trực tiếp từ nó

public Từ khoa khai báo đối tượng tiếp sau là toán cục

return Trờ về lệnh gọi

short Kiểu dữ liệu nguyên 2 byte

static Đối tượng khai báo tiếp (heo là tĩnh, tức là nó là dối tượng duy nhất

father Chỉ đến đối tượng char

switch Câu lệnh lựa chọn switch

synchronized Đổng bộ giữa các tiến trình

this Đối tượng đang xét

throvv Trả về lỏi

throws Cho biết phương thức hay biến sẽ trả về khi có lỏi

transient Giá trị biến được khai báo kiểu này sẽ không được lưu trữ trước khi có

một đối tượng chứa nó được tạo ra

try Thừ làm để nhận lỗi

void Báo cho biết phương thức khai báo tiếp theo sẽ không trả về giá trị

vvhile Lệnh lặp While

15

Tải ngay đi em, còn do dự, trời tối mất!