1. Trang chủ
  2. » Công Nghệ Thông Tin

Giới thiệu ngôn ngữ lập trình Java

43 1,1K 5
Tài liệu đã được kiểm tra trùng lặp

Đ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 43
Dung lượng 350,5 KB

Nội dung

Giới thiệu ngôn ngữ lập trình Java

Trang 1

Chương 2

Giới thiệu ngôn ngữ lập trình Java

1 Giới thiệu công nghệ Java

1.1 Lịch sử phát triển

Lịch sử phát triển của Java bắt đầu năm 1991 khi SUN tiến hành các dự án lập trình cho

vi xử lý dùng trong các thiết bị điện tử khác nhau C++ không đáp ứng được các yêucầu này vì C++ cho đem mã nguồn từ máy này sang máy khác nhưng sau khi biên dịchlại hoàn toàn phụ thuộc vào từng bộ vi xử lý cụ thể Trong khi đó bộ vi xử lý dùng trongcác thiết bị điện tử rất đa dạng và có vòng đời khá ngắn ngủi Nếu ta thay đổi bộ xử lýdẫn đến cần phải thay đổi trình biên dịch C++, điều này gây lên tốn kém SUN đã thiết

kế một ngôn ngữ lập trình mới có tính khả chuyển cao hơn đó chính là Java Java là tênđịa phương nơi xuất xứ của một loại cà phê ngon nổi tiếng

Java được chính thức công bố năm 1995 và ngay lập tức đã tạo lên một trào lưumới trên toàn thế giới và từ đó đến nay vẫn tạo được sức cuốn hút mạnh mẽ Bởi vìJava không chỉ đơn thuần là một ngôn ngữ lập trình mà nó là giải pháp cho nhiều vấn

đề

1.2 Cấu trúc của máy ảo Java (Java Virtual Machine)

Chương trình ứng dụng hoạt động bằng cách sử dụng các đối tượng của Java (JavaObject) Máy ảo Java tạo thành một cầu nối giữa trình ứng dụng viết bằng Java và hệđiều hành

Máy ảo Java bao gồm các thành phần sau :

 Trình nạp lớp (Class Loader): đọc bytecode từ đĩa hoặc từ kết nối mạng

 Trình kiểm tra lớp (Class Verifier): Kiểm tra các lớp sẽ không sinh ra các lỗi ảnhhưởng tới hệ thống khi thực thi

 Trình thực thi (Execution Unit): sẽ thực hiện các lệnh được quy định trong từngbytecode

Trong bộ công cụ Java, tệp tin java.exe chính là máy ảo Java

1.3 Các đặc trưng của Java

Java là một môi trường độc lập (Independent Platform)

Do cấu trúc của Java nên ta có thể soạn thảo chương trình trên bất kỳ hệ thống nào.Sau khi đã được biên dịch thành tệp tin lớp (*.class) ứng dụng có thể thực thi ở bất kỳ

hệ thống nào Đó là đặc tính mà các ngôn ngữ khác không có

Java là một ngôn ngữ lập trình hướng đối tượng thuần túy (Pure Object Oriented Programming)

Chương trình Java: tập hợp các đối tượng

Máy ảo Java

Hệ điều hành

Trang 2

Java là một ngôn ngữ lập trình hướng đối tượng thuần túy, mọi thứ trong Java đều làđối tượng.

Java là một ngôn ngữ có tính khả chuyển (Portibility)

Java có tính khả chuyển đối với cả mã nguồn và bản thân mã biên dịch (bytecode)

Java là môi trường xử lý phân tán (Distributed Enviroments)

Bytecode không phụ thuộc vào hệ thống vì vậy bytecode có thể nằm phân tán trênmạng Việc liên kết với thư viện chỉ được thực hiện vào lúc chạy chương trình do vậy

mã byte thường gọn nhẹ Chương trình Java được nạp dần một cách linh hoạt nênkhông gây quá tải cho mạng Ngoài ra, Java còn cho phép xử lý đa tuyến đoạn Cơ chếtruyền thông điệp thuận tiện cho việc tổ chức mạng

Java là môi trường an toàn

Khi phát triển các ứng dụng phân tán thì một trong nhừng vấn đề được quan tâm hàngđầu là an toàn hệ thống Java được thiết kế để đảm bảo an toàn cho người dùng Javatrên mạng Java có bốn tầng bảo an:

Tầng 1: Mức ngôn ngữ và trình biên dịch Java không có kiểu con trỏ Trình biên dịch

kiểm tra kiểu rất chặt chẽ Mọi chuyển đổi kiểu đều phải được thực hiện một cách tườngminh Trình biên dịch Java từ chối sinh ra mã byte nếu mã nguồn không tuân thủnghiêm ngặt các quy tắc an toàn

Tầng 2: Trình nạp lớp (Class Loader) Có khả năng phân biệt những lớp đến từ mạng và

những lớp nạp từ hệ thống Nhờ khả năng phân biệt như vậy lớp được nạp qua mạngđược khống chế chặt chẽ, không được phép thực hiện các thao tác mức thấp

Tầng 3: Trình kiểm tra mã byte Trình này sẽ kiểm tra mã byte vào lúc chạy chương

trình bảo đảm chương trình Java đã được biên dịch một cách đúng đắn Khi thực hiện

sẽ không gây lỗi ảnh hưởng tới hệ thống cũng như không đụng chạm tới dữ liệu riêng

tư trên máy khách

Tầng 4: Trình bảo an Kiểm tra mã byte vào lúc chạy nhằm bảo đảm mã đang xét không

vi phạm qui tắc an toàn đã được thiết lập Các thao tác của ứng dụng được xem là cókhả năng gây nguy hiểm như đọc, xóa tệp đều phải được Trình bảo an cho phép

Java cung cấp cho người lập trình một thư viện khủng lồ

Java cung cấp cho người lập trình một thư viện khổng lồ các hàm chuẩn, gọi là coreAPI Các hàm chuẩn này được đặt trong các gói

Java có cơ chế quản lý bộ nhớ tự động

Quản lý bộ nhớ là một trong những vấn đề phức tạp đối với C và C++ Khi thực hiệnchương trình người lập trình chịu trách nhiệm khởi tạo các vùng nhớ, sau khi dùng phảigiải phóng các vùng nhớ này Chỉ cần một lỗi nhỏ có thể làm cạn kiệt tài nguyên dẫnđến treo hệ thống

Java đã loại bỏ gánh nặng này cho người lập trình Các vùng nhớ được tự động giảiphóng nếu như nó không tham chiếu đến bất kỳ đối tượng nào đang hoạt động

Chi phí phát triển ứng dụng bằng Java thấp

Khi phát triển ứng dụng dựa trên công nghệ Java thì sẽ có rất nhiều công cụ phát triển

và dịch vụ được cung cấp miễn phí

1.4 Các ấn bản Java

Trang 3

J2SE ( Java 2 Platform, Second Edition)

Đây là ấn bản chuẩn, bao gồm một môi trường thời gian chạy và một tập hợp các API

để xây dựng một loạt các ứng dụng khác nhau từ applet, cho tới các ứng dụng độc lậpchạy trên các nền khác nhau, ứng dụng cho client cho các ứng dụng doanh nghiệp khácnhau

J2EE (Java 2 Platform, Enterprise Edition (J2EE)

J2EE là nền tảng để xây dựng các ứng dụng phía server

J2ME (Java 2 Platform, Micro Edition )

Ấn bản này cho phép xây dựng các ứng dụng Java cho các “vi thiết bị” (các thiết bị cómàn hình hiển thị và hỗ trợ bộ nhớ tối thiểu, như điện thoại di động và các thiết bị trợgiúp cá nhân)

1.5 Công cụ phát triển

SUN cung cấp một số tiện ích cho phép biên dịch bắt lỗi và tạo tài liệu cho một ứngdụng Java JDK bao gồm:

 javac: Bộ biên dịch để chuyển mã nguồn thành bytecode

 java: Bộ thông dịch để thực thi các ứng dụng Java trực tiếp từ tập tin lớp

 apppletviewer: Thực thi Java Applet từ tài liệu html

1.6 Các kiểu ứng dụng trong Java

Để thấy được sự khác biệt giữa hai kiểu ứng dụng nói trên chúng ta có thể xem những

sự khác biệt về đặc trưng của hai kiểu ứng dụng ở bảng dưới đây:

Khai báo Là lớp con của bất kỳ lớp nào

trong các gói thư viện các lớp

Phải là lớp con của Applet

Giao diện đồ họa Tùy chọn Do trình duyệt Web quyết

địnhYêu cầu bộ nhớ Bộ nhớ tối thiểu Bộ nhớ dành cho cả trình

duyệt và applet đóCách nạp chương trình Nạp bằng dòng lệnh Thông qua trang Web

Dữ liệu vào Thông qua các tham số trên

dòng lệnh

Các tham số đặt trong tệpHTML gồm địa chỉ, kích th-

ớc của trình duyệtCách thức thực hiện Mọi hoạt động được bắt đầu và

kết thúc ở main() nh- trong C/C+

Gọi các hàm: init(), start(),stop(), destroy(), paint()

Trang 4

+Kiểu ứng dụng Ứng dụng trên các máy chủ

Server Công cụ phát triển phầnmềm, - ứng dụng trên các máykhách

Các ứng dụng trên Web

Bảng 2.1

1.7 Cài đặt chương trình dịch Java và các công cụ

Để cài đặt Java J2SDK ta cần tải về bộ J2SDK tại trang http://www.sun.com ,trang này cập nhật những phiên bản mới nhất của Java Sau đó ta tải về bộ công cụsoạn thảo Edit Plus tại địa chỉ http://www.editplus.com

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

Bước 1: Cài đặt J2SDK Sau khi cài đặt xong, Java được cài đặt tại thư mục:

C:\Program Files\Java Trong thư mục này có hai thư mục con là: jdk1.5.0_01 vàjre1.5.0_01

 Công cụ phát triển nằm trong thư mục:

C:\Program Files\Java\jdk1.5.0_01\bin: Bao gồm các công cụ cho phép ta phát

triển, thực thi, gỡ rối và soạn thảo các chương trình được viết bằng ngôn ngữlập trình Java

Môi trường thời gian chạy (Runtime Environment)

 Nằm trong thư mục con JRE Nó bao gồm một máy ảo Java, các thư viện lớp, vàcác tệp tin hỗ trợ việc xử lý các chương trình được viết bằng ngôn ngữ lập trìnhJava

Bước 2: Thiết lập các biến môi trường

Biến môi trường path

Trên desktop ta kích chuột phải vào biểu tượng My Computer, sau đó chọn thẻAdvanced, nháy chuột vào nút lệnh Enviroment Variable, xuất hiện cửa sổ cho phép tathiết lập biến môi trường như sau:

Trang 5

Hình 2.1Nháy vào nút lệnh New để nhập vào thông tin về biến môi trường

Hình 2.2Sau đó nháy chuột vào nút lệnh OK để hoàn thành

Thiết lập biến môi trường classpath cũng tiến hành tương tự

Trang 6

Lam quen voi ngon ngu lap trinh Java

Chương trình trên ta nhận thấy ngay đây là một chương trình ứng dụng độc lập đơngiản Chương trình thực hiện một tác vụ hết sức đơn giản là nhận một xâu ký tự đượctruyền vào từ đối dòng lệnh sau đó in xâu ký tự lên màn hình Đối dòng lệnh là mộtmảng xâu ký tự String[] args Khi ta thực thi chương trình trên, args[0] được gán bằngxâu ký tự "Lam quen voi ngon ngu lap trinh Java"

Ví dụ 2: Tạo một applet hiển thị một xâu ký tự lên màn hình

import java.applet.*;

import java.awt.*;

Trang 7

public class ViDu2 extends Applet

Tạo một trang html để nhúng applet

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<META NAME="Generator" CONTENT="EditPlus">

<META NAME="Author" CONTENT="">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

Trang 8

Hình 2.4

2 Ngôn ngữ lập trình Java

2.1 Cấu trúc tệp của một chương trình Java

Một tệp tin chương trình Java có thể có các phần được đặc tả như sau:

1 Định nghĩa một gói là tùy chọn thông qua định danh của gói (package)

2 Một số lệnh nhập import (0 hoặc nhiều)

3 Một số định nghĩa lớp và interface có thể định nghĩa theo thứ tự bất kỳ

Ví dụ giả sử có tệp nguồn Java như sau:

Hình 2.5

// Phần 1: Tùy chọn // Định nghĩa gói package GoiNhaTruong;

// Phần 2: (0 hoặc nhiều hơn) //

các gói cần sử dụng import java.io.*;

// Phần 3: (0 hoặc nhiều hơn) //

Định nghĩa các lớp và các interface public class NewApp{ } class C1{ }

interface I1{ } // class Cn { }

interface Im{ }

Trang 9

 Khi dịch (javac) thì mỗi lớp trong tệp chương trình sẽ được dịch thànhbyte code và được ghi thành tệp riêng có tên trùng với tên của lớp và cóđuôi class Những lớp này sẽ được nạp vào chương trình lúc thông dịch

và thực hiện theo yêu cầu

 Trong chương trình Java không có các khai báo biến, hàm tách biệt khỏilớp và chỉ có các khai báo và định nghĩa các lớp, interface Như thếchương trình Java được xem như là tập các lớp, interface và các đốitượng của chúng trao đổi thông điệp với nhau (bằng các lời gọi hàm) đểthực hiện các nhiệm vụ của ứng dụng

2.2 Định danh, kiểu dữ liệu và khai báo biến

Định danh (Identifier) Tên gọi của các thành phần trong chương trình được gọi là định

danh

Định danh thường được sử dụng để xác định biến, kiểu, phương thức, lớp

Qui tắc cho định danh:

 Định danh là một dãy các ký tự gồm các chữ cái, chữ số và các ký tự khác: ‘_’,

$,

 Định danh không bắt đầu bằng chữ số

 Độ dài của định danh không giới hạn

 Java phân biệt chữ hoa và chữ thường

Qui ước đặt tên

 Định danh cho các lớp: chữ cái đầu của mỗi từ trong định danh đều viết hoa

 Ví dụ: MyClass, HocSinh, SocketServer, URLConnection,

 Định danh cho các biến, phương thức, đối tượng: chữ cái đầu của mỗi từ trongđịnh danh đều viết hoa trừ từ đầu tiên

Ví dụ: hoTen (họ tên), namSinh (năm sinh), tinhTong (tính tổng)

Trang 10

2.3 Các kiểu dữ liệu nguyên thủy (primitive datatype)

Kiểu dữ liệu cơ bản định nghĩa sẵn được gọi là kiểu nguyên thủy

Kiểu nguyên thủy bao gồm các kiểu:

Hình 2.6

 Kiểu nguyên: char (ký tự), byte, short, int, long

 Kiểu số thực: float, double

 Kiểu logic: boolean

 Các giá trị kiểu nguyên thủy không phải là đối tượng

 Mỗi kiểu dữ liệu có miền xác định và các phép toán xác định trên nó

 Mỗi kiểu dữ liệu nguyên thủy có một lớp gói (wrapper class) để sử dụng các kiểunguyên thủy như là các đối tượng

Kiểu dữ liệu Lớp gói

Trang 11

2.4 Khai báo các biến

a Các loại biến trong Java

 Các biến thành phần: là các thành phần của lớp và được khởi tạo giá trị mỗi khimột đối tượng của lớp được tạo ra

 Ví dụ:

URL u ;

HocSinh hs = new HocSinh(“Tuan Anh”);

 Các biến tham chiếu đối tượng (Object Reference) là biến được sử dụng để xử

lý các đối tượng

 Các biễn tĩnh (static variable) là biến của lớp đại diện cho cả lớp

 Các biến cục bộ: là biến được khai báo trong các phương thức và trong cáckhối

b Khai báo biến

kieu_du_lieu bien;

Ví dụ:

int i;

char b,c;

float giaBan, dienTich;

c Khởi tạo giá trị cho các biến

Các giá trị mặc định cho các biến thành phần

Kiểu dữ liệu Giá trị mặc định

byte, short, int, long 0float, double +0.0F,+0.0Dtham chiếu đối tượng null

Bảng 2.4Qui tắc chuyển đổi kiểu trong Java

(<kieu>)<bieu_thuc>

Ví dụ

float f = (float)100.15D;

Mở rộng và thu hẹp kiểu

Trang 12

 Biểu thức điều kiện

Biểu thức điều kiện A?B:C trả về giá trị B nếu A có giá trị true, trả về giá trị C nếu A

có giá trị false

Ví dụ:

byte b;

Trang 13

int i=b>=0?b:b+255;

 Trong ví dụ trên thực hiện việc chuyển đổi các số nguyên kiểu byte có dấu về sốnguyên kiểu int không có dấu Nếu b lớn hơn hoặc bằng 0 thì I nhận giá trị là b,ngược lại I sẽ nhận giá trị là 255+b

2.3.4 Các lệnh điều khiển rẽ nhánh chương trình

Ví dụ: Viết chương trình nhập vào một dãy số nguyên từ đối dòng lệnh, sắp xếp dãy số

đó và hiển thị dãy số sau khi sắp xếp lên màn hình

a=new int[args.length];

}

for(i=0;i<args.length;i++) {

a[i]=Integer.parseInt(args[i]);

System.out.print(a[i]+" ");

} System.out.println();

for(i=0;i<a.length-1;i++)

for(j=i+1;j<a.length;j++)

Trang 14

if(a[i]>a[j]) {

tg=a[i];

a[i]=a[j];

a[j]=tg;

} System.out.println("Day so sau khi sap xep la:");

Trang 15

<Điều_kiện> có giá trị false.

<Điều_kiện> là biểu thức boolean

Ví dụ: Lập chương trình in ra dãy số Fibonaci có các giá trị nhỏ hơn 50

System.out.println(hi);

hi=lo+hi;

lo=hi-lo;

} }

Trang 16

while(<Điều_kiện_lặp>) {

Lệnh break: Được dùng để kết thúc trình tự thực hiện lệnh trong lệnh switch

hoặc được sử dụng để thoát ra khỏi một vòng lặp

Trang 17

Ta thấy rằng chương trình không in ra giá trị i=5 vì khi kiểm tra điều kiện chương trình

bỏ qua giá trị i=5 và thực hiện lệnh với giá trị I còn lại của vòng lặp

Lệnh return

Trang 18

Được sử dụng để kết thúc việc thực hiện của hàm hiện thời và chuyển điều khiểnchương trình về cho chương trình đã gọi phương thức

2.4 Các lớp và các đối tượng trong Java

Đơn vị cơ bản trong lập trình Java là lớp Các lớp bao gồm các phương thức thực hiệncông việc tính toán Các lớp cũng đưa ra cấu trúc của đối tượng và cơ chế tạo ra đốitượng từ các định nghĩa lớp

2.4.1 Cấu trúc chung của một lớp

[<phạm vi hoặc kiểm soát truy nhập>] class <Tên lớp> [extends <Tên lớp cha>] [implements <Tên giao diện>]

{

<Các thành phần lớp>

}

Khuôn mẫu của một lớp

Các kiểu lớp trong Java

kiểu_dữ_liệun biếnnphương_thức1()phương_thức2()

phương_thứcm()

Trang 19

<Kiểu trả về> có thể là kiểu nguyên thủy, kiểu lớp hoặc không có giá trị trả lại (kiểu void)

<Danh sách tham biến hình thức> bao gồm dãy các tham biến (kiểu và tên) phân cách với nhau bởi dấu phẩy

Các kiểu phạm vi hay kiểm soát truy cập

public: Các thành phần được khai báo là public có thể được truy cập ở bất kỳ nơi

nào có thể truy cập được và chúng được thừa kế bởi các lớp con của nó

private: Các thành phần được khai báo là private chỉ có thể được truy cập trong

chính lớp đó

protected: Các thành phần được khai báo là protected có thể được truy cập và

thừa kế bởi các lớp con và có thể truy xuất bởi mã lệnh của cùng gói đó

Constructor

Constructor là một phương thức đặc biệt không có giá trị trả về và có tên trùngvới tên lớp Trường hợp không có constructor nào được đưa ra trình biên dịch cung cấpconstructor mặc định cho lớp đó

Một đối tượng được tạo mới và được cho trước một giá trị khởi đầu Các trường

có thể được khởi tạo bằng một giá trị khi chúng được khai báo, điều này đủ để đảm bảomột trạng thái khởi đầu đúng đắn

Các phương thức

Các phương thức của một lớp thường chứa mã có thể hiểu và thao tác mộttrạng thái của đối tượng Một số lớp có các trường public để người lập trình có thể thaotác trực tiếp, nhưng trong hầu hết các trường hợp điều này không phải là một ý tưởngtốt

public class Point

{

protected double x,y;

public Point(double x,double y)

Trang 20

Point p=new Point(3.0,6.0);

System.out.println("Thong tin ve toa do diem ban dau:");

Tham chiếu this

Thông thường, đối tượng nhận phương thức cần phải biết tham chiếu của nó

Trong lớp Point có constructor

public Point(double x,double y)

{

Trang 21

this.y=y;

}

Giả sử nếu sửa đổi constructor bằng cách thay đổi như sau:

public Point(double x,double y)

2.4.2 Thừa kế trong Java

class Point3C extends Point2C

Ngày đăng: 05/09/2012, 15:51

HÌNH ẢNH LIÊN QUAN

Bảng 2.1 - Giới thiệu ngôn ngữ lập trình Java
Bảng 2.1 (Trang 4)
Hình 2.3 - Giới thiệu ngôn ngữ lập trình Java
Hình 2.3 (Trang 6)
Hình 2.4 - Giới thiệu ngôn ngữ lập trình Java
Hình 2.4 (Trang 8)
Hình 2.6 • Kiểu nguyên: char (ký tự), byte, short, int, long. •Kiểu số thực: float, double. - Giới thiệu ngôn ngữ lập trình Java
Hình 2.6 • Kiểu nguyên: char (ký tự), byte, short, int, long. •Kiểu số thực: float, double (Trang 10)
Bảng 2.2 - Giới thiệu ngôn ngữ lập trình Java
Bảng 2.2 (Trang 10)
Bảng 2.3 - Giới thiệu ngôn ngữ lập trình Java
Bảng 2.3 (Trang 11)
Bảng 2.4 Qui tắc chuyển đổi kiểu trong Java - Giới thiệu ngôn ngữ lập trình Java
Bảng 2.4 Qui tắc chuyển đổi kiểu trong Java (Trang 11)

TỪ KHÓA LIÊN QUAN

w