java cƠ bẢn (tt)

14
JAVA CƠ BN (TT) Ging viên: ĐNgc Như Loan

Upload: others

Post on 29-Oct-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JAVA CƠ BẢN (TT)

JAVA CƠ BẢN (TT)

Giảng viên: Đỗ Ngọc Như Loan

Page 2: JAVA CƠ BẢN (TT)

NGOẠI LỆ (EXCEPTION)

Ngoại lệ là môt sự kiện xay ra trong qua trinh thực thi chương trinh, pha vơluông binh thương cua chương trinh

Ví dụ:

int i = 4/0;

Khi xay ra môt ngoại lệ, nêu không xử lý thi chương trinh kêt thúc ngay vàxuất hiện thông báo lỗi.

Môt vài ngoại lệ xay ra bởi lỗi cua ngươi dùng, môt số khac bởi lỗi cua lập trinh viên và số khac nữa đên từ lỗi cua nguôn dữ liệu vật lý. Ngươi dùng nhập dữ liệu không hợp lệ.

Truy cập ngoài chỉ số mang.

Môt file cần được mở nhưng không thể tim thấy.

Kêt nối mạng bị ngắt trong qua trinh thực hiện giao tiêp hoặc JVM hêt bô nhớ.

….

Exception là lớp cha cua tất ca các lớp Exception

Có thể kê thừa cac ngoại lệ đã được định nghĩa trước để tạo ra cac ngoại lệ mới.

Page 3: JAVA CƠ BẢN (TT)

MỘT SỐ NGOẠI LỆ

ArithmeticException: Nếu chia bất kỳ số nào cho số 0

NullPointerException: Nếu tham chiếu tới đối tượng

null.

NumberFormatException: Khi chuyển 1 chuỗi thành sốmà chuỗi có định dạng không đúng

ArrayIndexOutOfBoundsException: Nếu bạn thao tác

trên mảng với chỉ số phần tử không hợp lệ

ClassCastException: Nếu không thể chuyển kiểu object

này sang kiểu object khác

Page 4: JAVA CƠ BẢN (TT)

XỬ LÝ NGOẠI LỆ

Các từ khóa:

try

catch

finally

throw

throws

Page 5: JAVA CƠ BẢN (TT)

CÚ PHÁP KHỐI LỆNH TRY-CATCH-FINALLY

try {

// code có thể ném ra ngoại lệ

} catch(Exception_class_1 ex) {

// code xử lý ngoại lệ 1

} catch(Exception_class_2 ex) {

// code xử lý ngoại lệ 2

} catch(Exception_class_n ex) {

// code xử lý ngoại lệ n

} finally {

// code trong khối này luôn được thực thi

}

Page 6: JAVA CƠ BẢN (TT)

VÍ DỤ 1

public class ExceptionExample1 {

public static void main(String[] args) {

try {

int zero = 0;

int average = 10 / zero;

System.out.println("Average = " + average);

} catch (ArithmeticException ex) {

System.out.println(ex);

}

System.out.println("Finished!");

}

}

Page 7: JAVA CƠ BẢN (TT)

VÍ DỤ 2

public class ExceptionExample2 {

public static void main(String[] args) {

try {

int zero = 0;

int average = 10 / zero;

System.out.println("Average = " + average);

} catch (NullPointerException ex) {

System.out.println(ex);

} catch (Exception ex) {

System.out.println(ex);

} finally {

System.out.println("Khối lệnh finally luôn được thực thi");

}

System.out.println("Finished!");

}

}

Page 8: JAVA CƠ BẢN (TT)

TỪ KHÓA THROW VÀ THROWS

throw: ném ra ngoại lệ

throws: cảnh báo phương thức có khả năng ném ra

ngoại lệ

public void methodName() throws ExceptionType {

//body method

throw new ExceptionType("This is an exception");

}

Page 9: JAVA CƠ BẢN (TT)

VÍ DỤ 3

import java.io.IOException;

class M {

void method() {

try {

throw new IOException("Loi thiet bi");

} catch (Exception e) {

System.out.println("Ngoai le duoc xu ly");

}

}

}

public class ExceptionExample3 {

public static void main(String args[]) {

M m = new M();

m.method();

}

}

Page 10: JAVA CƠ BẢN (TT)

VÍ DỤ 4

import java.io.IOException;

class M {

void method() throws IOException {

throw new IOException("Loi thiet bi");

}

}

public class ExceptionExample4 {

public static void main(String args[]) {

try {

M m = new M();

m.method();

} catch (Exception e) {

System.out.println("Ngoai le duoc xu ly");

}

}

}

Page 11: JAVA CƠ BẢN (TT)

VECTOR

Là cấu trúc mảng động, hữu ích nếu không biết kích cỡcủa mảng.

Khai báo:

import java.util.Vector;

Vector<ObjectType> v = new Vector<ObjectType>();

Các phương thức:

size: trả về kích thước vector

add(Object o): thêm phần tử o vào cuối

add(int i, Object o): chèn thêm phần tử o vào vị trí i

get(int i): truy xuất phần tử tại vị trí i

remove(int i): xóa phần tử tại vị trí i

Page 12: JAVA CƠ BẢN (TT)

VÍ DỤ

import java.util.Vector;

class VectorExample {

public static void main(String[] args)

{

int n = 5;

Vector<Integer> v = new Vector<Integer>();

for (int i = 1; i <= n; i++)

v.add(i);

for (int i = 0; i < v.size(); i++)

System.out.print(v.get(i) + " ");

v.remove(3);

v.add(1,8);

for (int i = 0; i < v.size(); i++)

System.out.print(v.get(i) + " ");

}

}

Page 13: JAVA CƠ BẢN (TT)

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Lớp và đối tượng

Tính kế thừa (lớp cơ sở, lớp dẫn xuất)

Tính đa hình

Tính đóng gói

Lớp trừu tượng

Hàm trừu tượng

Phương thức static

Thuộc tính static

Giao diện (interface)

Page 14: JAVA CƠ BẢN (TT)

Thư viện ĐHSG quản lý danh sách các loại sách:

Sách giáo khoa: Mã sách, tiêu đề, đơn giá, số lượng, nhà xuất bản, tình

trạng (mới, cũ).

Nếu tình trạng sách là mới: thành tiền = số lượng * đơn giá.

Nếu tình trạng sách là cũ: thành tiền = số lượng * đơn giá * 50%

Sách tham khảo: Mã sách, tiêu đề, đơn giá, số lượng, nhà xuất bản,

chuyên ngành, thuế.

Thành tiền = số lượng * đơn giá +thuế

Sách ngoại văn: Mã sách, tiêu đề, đơn giá, số lượng, nhà xuất bản, ngôn

ngữ.

Thành tiền = số lượng * đơn giá * 120%

Thực hiện các yêu cầu sau:

Xây dựng các lớp (sử dụng kế thừa)

Nhập xuất danh sách các sách (dùng Vector để lưu trữ danh sách

sách).

Tính tổng thành tiền cho từng loại.

Xuất ra các sách giáo khoa của nhà xuất bản X.

Bắt ngoại lệ khi nhập vào đơn giá hoặc số lượng không phải là số và

hiện thông báo yêu cầu nhập lại.