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

CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ JAVA

93 1,6K 0

Đ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 93
Dung lượng 859,59 KB

Nội dung

Trình xử lý ngoại lệ trong Java Các lớp Error và Exception xử lý các lỗi trong Java  Khi một ngoại lệ xảy ra: ◦ một thể hiện biểu diễn ngoại lệ đó được tạo ra.. ◦ Thể hiện này sau đó đ

Trang 1

Chapter 3

CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ JAVA

Trang 2

Java Simplified / Session 22 / 2 of 45

◦ Biến, hằng, toán tử, kiểu dữ liệu

◦ Cấu trúc điều khiển

Trang 4

Java Simplified / Session 22 / 4 of 45

if implements import Instanceof inner

static Super switch synchronized this

threadsafe Throw throws transient true

Keywords

4

Trang 5

 /* Here is comment which

extends across two lines */

 /* * This comment has especial meaning for the javadoc unitily.It will be part of

Trang 6

Java Simplified / Session 22 / 6 of 45

// A program to display the message

// "Hello World!" on standard output

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World!");

}

} // end of class HelloWorld

Command line and block

6

Trang 7

Data Type

 Xác định loại dữ liệu được lưu trữ trong biến

 Xác định những tác vụ có thể thực hiện trên dữ liệu

 Có 2 loại kiểu dữ liệu trong Java:

1. Primitive data types (kiểu cơ bản/nguyên thủy)

2. Reference data types (kiểu tham chiếu)

Trang 8

Java Simplified / Session 22 / 8 of 45

Các kiểu dữ liệu cơ bản( nguyên thủy)

8

Trang 9

Các kiểu dữ liệu cơ bản( nguyên thủy)

Trang 10

Java Simplified / Session 22 / 10 of 45

Các kiểu dữ liệu tham chiếu

• Một biến thuộc kiểu dữ liệu tham chiếu chỉ chứa tham khảo đến giá trị thực sự được biểu diễn bởi biến đó.

Trang 11

Hằng ký tự

• Dãy ký tự đặc biệt dùng để biểu diễn các ký tự không thể nhập trực tiếp

vào một chuỗi.

Trang 12

Java Simplified / Session 22 / 12 of 45

 Variables must be declared before using,

datatype identifier [=value][, identifier[=value] ];

 Three components of a declaration are:

Trang 13

double len = 5.0, wide = 7.0;

double num = Math.sqrt(len * len + wide * wide);

System.out.println("Value of num after dynamic initialization is " + num);

}

}

Trang 14

Java Simplified / Session 22 / 14 of 45

 Biến cục bộ có thời gian tồn tại giới hạn và quan hệ chỉ trong phần nhỏ của

// num is available in inner scope

int num1 = num * num;

System.out.println("Value of num and num1 are " + num + " " + num1);

}

//num1 = 10; ERROR ! num1 is not known

System.out.println("Value of num is " + num);

}

}

Trang 15

 JAVA có 4 loại biến :

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ị khi một đối

tượng của lớp được tạo ra

Biến tĩnh: là các thành viên của lớp, đại diện cho cả lớp

Biến tham chiếu: được sử dụng để xử lý các đối tượng

Biến cục bộ: được khai báo trong các phương thức và các khối, khai báo trước khi dùng

Variables

Trang 16

Java Simplified / Session 22 / 16 of 45

 Giá trị mặc định

 Chuyển đổi kiểu

Khởi tạo giá trị

16

Trang 17

Dữ liệu cơ bản

Cú pháp: (NewType) Value;

Ex: float f= (float) 100.15D (double->float)

Các đối tượng: thành 1 đối tượng của một lớp khác

◦ Với điều kiện các đối tượng muốn đổi kiểu phải thuộc các lớp thừa kế nhau.

◦ Cú pháp : (NewClass) Object ;

Dữ liệu cơ bản sang đối tượng và ngược lại:

◦ Trong gói java.lang có sẵn những lớp đặc biệt tương ứng với từng kiểu nguyên thủy: lớp Integer, Float, Tạo đối tượng, ex: int Intobj = new Integer (32);

◦ Khi muốn lấy lại giá trị ban đầu ta dùng phương thức có sẵn trong lớp tương đương Như intValue() cho kiểu int

Chuyển đổi kiểu dữ liệu: 3 dạng

Trang 18

Java Simplified / Session 22 / 18 of 45

Trang 20

Java Simplified / Session 22 / 20 of 45

Ép kiểu tường minh

 Chuyển kiểu có độ chính xác cao hơn sang kiểu có độ

Trang 22

Java Simplified / Session 22 / 22 of 45

Toán tử toán học

22

Trang 23

Toán tử một ngôi

“++”, “ ” : có thể dùng:

• trước (prefix) hoặc

• sau (postfix) toán hạng

Trang 24

Java Simplified / Session 22 / 24 of 45

Toán tử quan hệ

• Kiểm tra mối quan hệ giữa hai toán hạng.

• Luôn trả về một giá trị luận lý (true hay false)

Trang 25

Toán tử điều kiện

 “&&”, “||” : làm việc trên hai toán hạng luận lý

 “ ? : ” : toán tử điều kiện chấp nhận 3 toán hạng

Trang 26

Java Simplified / Session 22 / 26 of 45

Toán tử trên bit

 Làm việc trên dạng biểu diễn nhị phân của dữ liệu

Trang 27

Độ ưu tiên toán tử

Trang 28

Java Simplified / Session 22 / 28 of 45

Sự kết hợp của toán tử

Trang 29

 Class declaration Syntax

Trang 30

Java Simplified / Session 22 / 30 of 45

Lớp cơ bản trong Java

30

Trang 31

 Input: System.in (ko cho nhập “ “)

Scanner nhap = new Scanner(System.in);

◦ int x = nhap.nextInt();

◦ String e= nhap.next();

 Input: Luồng ký tự: BufferedReader (cho “ ”)

BufferedReader in =

new BufferedReader (new InputStreamReader (System.in));

String name = in.readLine ();

int hours = Integer.parseInt (in.readLine());

Double rate = Double.parseDouble (in.readLine());

 Output: System.out

◦ System.out.println (“Hello”);

Input/ Output

Trang 32

Java Simplified / Session 22 / 32 of 45

 Có các loại biểu thức như biểu thức logic, biểu thức số học, biểu thức gán

◦ Ví dụ : a <= 10;

◦ Biểu thức gán: Variable1= Variable2= =Value;

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

Expression ? Expression_true : Expression_false;

Express

32

Trang 33

 All application development environments provide a decision making process called control flow

statements that direct the application execution.

 Flow control enables a developer to create an application that can examine the existing

conditions, and decide a suitable course of action

 Loops or iteration are an important programming construct that can be used to repeatedly

execute a set of actions

 Jump statements allow the program to execute in a non-linear fashion

5 Control Flow

Trang 34

Java Simplified / Session 22 / 34 of 45

Trang 36

Java Simplified / Session 22 / 36 of 45

Trang 37

If

Trang 38

Java Simplified / Session 22 / 38 of 45

Expression : Biểu thức điều kiện phụ thuộc vào kiểu dữ

liệu cơ bản (byte, int )

switch – case statement

38

Trang 39

switch – case statement

Trang 40

Java Simplified / Session 22 / 40 of 45

} }

Example

40

Trang 41

 while loops are used for situations when a loop has to be executed as long as certain

while Loop

Trang 42

Java Simplified / Session 22 / 42 of 45

Example

42

Trang 43

 The do-while loop executes certain statements till the specified condition is True

 These loops are similar to the while loops, except that a do-while loop executes at least once, even if the specified condition is False The syntax is:

Trang 44

Java Simplified / Session 22 / 44 of 45

Example

44

Trang 46

Java Simplified / Session 22 / 46 of 45

Example

46

Trang 47

 Three jump statements are:

break

continue

return

 The three uses of break statements are:

◦ It terminates a statement sequence in a switch statement

◦ It can be used to exit a loop

◦ It is another form of goto

Jump Statements

Trang 48

Java Simplified / Session 22 / 48 of 45

Example

48

Trang 49

Ngoại lệ là gì?

 Khi một ngoại lệ xảy ra, chương trình kết thúc đột ngột, điều khiển

được trả về cho OS

 Trình xử lý ngoại lệ được thực hiện để xác định lỗi và bẫy nó

 Nếu gặp phải một lỗi khi thực thi chương trình, một ngoại lệ sẽ xảy ra

ERROR !!

Ví dụ: 5/ 0 =

Trang 50

Java Simplified / Session 22 / 50 of 45

Trang 51

Trình xử lý ngoại lệ trong Java

 Các lớp Error và Exception xử lý các lỗi trong Java

 Khi một ngoại lệ xảy ra:

◦ một thể hiện biểu diễn ngoại lệ đó được tạo ra

◦ Thể hiện này sau đó được truyền cho phương thức rút trích và xử lý thông tin

 Trình xử lý ngoại lệ Java được quản lý thông qua năm từ khoá: try,

catch, throw, throws, và finally

Trang 52

Java Simplified / Session 22 / 52 of 45

Trình xử lý ngoại lệ trong Java

 khối try : chứa các lệnh trong chương trình cần được khảo sát ngoại lệ

 Từ khoá catch: có thể bắt ngoại lệ và xử lý nó một cách hợp lý

 Throw: Để ném bằng tay một ngoại lệ

thức này sẽ ném một ngoại lệ

 Khối finally: ta có thể xác định mã lệnh thực sự cần thực thi trước khi một phương thức trả về

Trang 53

Phân cấp các lớp Exception

Trang 54

Java Simplified / Session 22 / 54 of 45

Mô hình xử lý ngoại lệ

 Hai cách xử lý ngoại lệ trong Java

◦ Các lệnh có thể ném các ngoại lệ nằm trong khối try và các lệnh xử lý ngoại

lệ trong khối catch

◦ Một phương thức có thể được đặc tả theo cách sao cho khi ngoại lệ xảy ra thì

việc thực thi nó bị cấm

Trang 55

Khối try và catch – Ví dụ

Trang 56

Java Simplified / Session 22 / 56 of 45

Trang 57

Các phương thức trong ví dụ

toString() rút trích biểu diễn thông tin lưu trong một đối tượng

Exception dưới dạng String

printStackTrace() dùng để in ra nguyên nhân gây ngoại lệ và dòng

lệnh tạo ra nó

Trang 58

Java Simplified / Session 22 / 58 of 45

……….

try{

} catch(ArrayIndexOutOfBoundsException e) { }

catch(Exception e) { }

……….

Nhiều khối catch

 ArrayIndexOutOfBoundsException là một lớp con của lớp Exception được xử

lý đầu tiên

 Một đoạn code có thể tạo ra nhiều lỗi

 Nhiều khối catch phải được cung cấp

 Mỗi lệnh catch có thứ tự xuất hiện của nó

Trang 59

String num = args[0];

int numValue = Integer.parseInt(num);

System.out.println("The square is: " + numValue * numValue);

Trang 60

Java Simplified / Session 22 / 60 of 45

Khối try - catch lồng nhau

 Trong trường hợp đó, các trình xử lý ngoại lệ phải lồng nhau

 Khi các khối try lồng nhau được dùng, khối try bên trong sẽ thực thi

trước

 Đôi khi một phần của khối có thể gây ra một lỗi và toàn bộ khối có thể gây ra một lỗi khác

Trang 61

int numValue = Integer.parseInt( args[0]);

System.out.println("The square is " + numValue * numValue);

Trang 62

Java Simplified / Session 22 / 62 of 45

Khối finally

 Đảm bảo rằng tất cả các việc dọn dẹp được thực hiện khi một ngoại lệ xảy ra

 Dùng kết hợp với khối try

 Được đảm bảo thực thi bất kể ngoại lệ có xảy ra hay không

catch block finally

Exception

finally

No exception

try block

Trang 63

Khối finally

try {

… } catch(Exception1 e1) {

… } catch(Exception2 e2) {

… } finally {

Trang 64

Java Simplified / Session 22 / 64 of 45

System.out println( "Exception occured" );

System.out println( "C" );

static void staticLengthmethod() {

System.out println( str length());

}

Trang 65

Sử dụng throw

 Một phương thức có thể ném ra nhiều ngoại lệ

 Ngoại lệ được ném ra dùng từ khoá throw

try {

if(flag<0) {

throw new NullPointerException();

} }

Trang 66

Java Simplified / Session 22 / 66 of 45 Java Simplified / Session 12 / 66 of 27

Sử dụng throws

 Tửừ khoá throws liệệt kệ các ngoaệi lệệ mà phửơng thửức chặện

public static void main (String[] args) throws IOException

{

BufferedReader in =

new BufferedReader ( new InputStreamReader (System.in ));

int num1;

double num2, Mul;

System.out print ( "Enter the number 1: " );

num1 = Integer.parseInt (in.readLine());

System.out print ( "Enter the number 2: " );

num2 = Double.parseDouble (in.readLine());

Mul = num1 * num2;

System.out println ( "Mul is: " + Mul);

}

Trang 67

Ngoại lệ do người dùng định nghĩa

 Cần có lớp ngoại lệ do người dùng định nghĩa:

◦ Nên là lớp con của lớp Exception

◦ Kiểu ngoại lệ mới có thể được bắt độc lập với những lớp con khác của

Throwable

◦ Được tạo ra sẽ có tất cả các phương thức của lớp Throwable

 Những ngoại lệ xây dựng sẵn không phải lúc nào cũng đủ để bẫy tất cả lỗi

Trang 68

Java Simplified / Session 22 / 68 of 45 Java Simplified / Session 12 / 68 of 27

class ArraySizeException extends NegativeArraySizeException

checkSize();

} catch(ArraySizeException e) {

System.out.println(e);

} }

void checkSize() throws ArraySizeException {

if(size < 0) throw new ArraySizeException();

array = new int[3];

for(int count = 0; count < 3; count++) array[count] = count+1;

} public static void main(String arg[]) {

new UserDefinedException(Integer.parseInt(arg[0]));

} }

Trang 69

RuntimeException Lớp cơ sở cho nhiều ngoại lệ java.lang

ArthmeticException Trạng thái lỗi về số, ví dụ như ‘chia cho 0’

IllegalAccessException Lớp không thể truy cập

IllegalArgumentException Phương thức nhận một đối số không hợp lệ

ArrayIndexOutOfBoundsExeption Kích thước của mảng lớn hơn 0 hay lớn hơn kích thước thật sự của mảng NullPointerException Khi muốn truy cập đối tượng null

SecurityException Việc thiết lập cơ chế bảo mật không được hoạt động

ClassNotFoundException Không thể nạp lớp yêu cầu

NumberFormatException Việc chuyển đối không thành công từ chuỗi sang số thực

FileNotFoundException Không thể định vị tập tin

Trang 70

Java Simplified / Session 22 / 70 of 45

 „ Dễ sử dụng

◦ …dàng chuyển điều khiển đếnnơi có khả năng xử lý ngoại lệ

◦ …có thể ném nhiều loại ngoại lệ

 „ Tách xử lý ngoạilệ khỏi thuật toán

◦ … tách mã xử lý

◦ … sử dụng cú pháp khác

 „ Không bỏ sót ngoại lệ (ném tự động)

 „ Làm chương trình dễ đọc hơn, an toàn hơn

Ưu điểm của ném bắt ngoại lệ

70

Trang 71

 Khai báo:

<Type>[] <arrayname>;

<Type> <arrayname>[];

◦ <Type>: kiểu nguyên thủy hoặc kiểu lớp

◦ Ex: int [] IntArray, IntVariable;

Poly[] recArray, squArray, ovalArray;

 Tạo lập đối tượng: dùng new

<Arrayname> = new <Type>[size];

◦ Ex: IntArray=new Int[10]; recArray=new Poly[5];

 Kết hợp: <Type1>[] <arrayname> = new <Type2>[size];

 Khởi tạo: khai báo, tạo lập, gán gtri

<Type>[] <arrayname>={value1, value2 }

Cấu trúc mảng

Trang 72

Java Simplified / Session 22 / 72 of 45

 Truy xuất mảng: <Arrayname>.[index]

◦ index: 0-> Arrayname.length-1

 Ngoại lệ: ArrayIndexOutOfBoundsExceptin

Array

72

Trang 73

for ( int i=0; i < mangA length ; i++)

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

System.out println();

}

Trang 74

Java Simplified / Session 22 / 74 of 45

int[] myCopy(int[] a) {

int b[] = new int[a.length];

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

Trang 75

 Khai báo

◦ <Type>[] [] []… <arrayname>;

◦ <Type> <arrayname>[][]…;

 Khai báo,tạo lập:

◦ Ex: int [][] A=new int[4][5];

 Khởi tạo: khai báo, tạo lập, gán gtri

Ex: int [] [] matrix = { {3,5,6,0}, {1,2,0,3}, {0,1,2,4}}

int c[][] = new int[2][];

c[0] = new int[5];

Multi Dimensional Array

Trang 76

Java Simplified / Session 22 / 76 of 45

import java.util.Scanner;

class vd_math {

public static int n =2;

public static int m =3;

public static int [][] A;

public static void nhap() {

int i,j;

Scanner nhap = new Scanner(System.in);

for ( i=0; i<=n-1; i++)

Trang 77

public static void xuat() {

Trang 78

Java Simplified / Session 22 / 78 of 45

 „ System.arraycopy(src, s_off, des, d_off, len)

◦ …src/ des : mảng nguồn,

◦ s_off/ d_off : offset của mảng nguồn/đích

◦ …len: số phầntử cần copy

 „ Copy nội dung của dữ liệu nguyên thủy, copy tham chiếu đối với đối tượng

 Cung cấp 4 phương thức static

◦ …fill(): khởi tạo các phần tử của mảng vớimột giá trị như nhau

Trang 79

int b[] = new int[a.length];

System.out.println( Arrays.equals (a,b));

Trang 80

Java Simplified / Session 22 / 80 of 45

◦ Math.E

◦ Math.PI

 „ Các phương thức static

◦ type abs(type), sqrt(double)

◦ double ceil(double), double floor(double)

◦ int round(float), long round(double)

◦ type max(type, type), type min(type, type)

◦ double random(): sinh số ngẫu nhiên trong đoạn [0.0,1.0]

Xử lý toán học: Math class

80

Trang 82

Java Simplified / Session 22 / 82 of 45

Trang 83

 Khởi tạo xâu:

◦ String str=“cong hoa xa hoi” (ko dung constructor)

◦ Dùng toán tử new:

◦ String str= new String(“cong hoa”);

◦ String str= new String(mang); nhập xâu từ mảng

◦ String str= new String(buff); buff là chuỗi động

 Độ dài xâu: int length()

 Ký tự thứ i: char charAt(int i)

 Hoa: String toUperCase(),

 Chữ thường: String toLowerCase()

 Xâu bắt đầu là s: boolean startWith(String s)

 Xâu kết thúc là s: boolean endWith(String s)

String class

Trang 84

Java Simplified / Session 22 / 84 of 45

 Ghép xâu: String concat(String s) hoặc dùng +

String str1=new String("hello");

String str2=new String("Hello");

String str3=new String("hello all");

Trang 85

 Vị trí xuất hiện đầu tiên/cuối cùng của ch (bắt đầu từ start)

◦ indexOf(int ch); lastindexOf(int ch);

◦ indexOf(int ch, int start); lastindexOf(int ch, int start)

 Vị trí xuất hiện đầu tiên/cuối cùng của xâu con str (bắt đầu từ start)

◦ indexOf(String str); lastindexOf(String str);

◦ indexOf(String str, int start); lastindexOf(String str, int start);

 Thay thế:

◦ String replace(char old, char new);

◦ String replaceAll(String src, String dst)

Method: xâu con

Ngày đăng: 12/04/2015, 03:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w