1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CH03 lap trinh huong doi tuong java kho tài liệu bách khoa

66 88 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 66
Dung lượng 0,99 MB

Nội dung

Người biên soạn: Hồ Quang Thái (MSCB: 2299) BM Công Nghệ Phần Mềm, Khoa CNTT&TT Email: hqthai@cit.ctu.edu.vn Số tín chỉ: (20 LT + 20TH) Chương LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA Các phương pháp lập trình truyền thống Lập trình tuyến tính: Chương trình thực từ đầu đến cuối, lệnh lệnh kết thúc chương trình Đặc trưng đơn giản đơn luồng • Ưu điểm: Chương trình đơn giản, dễ hiểu Ứng dụng cho chương trình đơn giản • Nhược điểm: Với ứng dụng phức tạp, người ta khơng thể dùng lập trình tuyến tính để giải Các phương pháp lập trình truyền thống Lập trình cấu trúc: Chương trình chia nhỏ thành chương trình chương trình thực cơng việc xác định Chương trình gọi đến chương trình theo giải thuật, cấu trúc xác định chương trình - Ngơn ngữ: Pascal, C, C++, … Đặc trưng : Chương trình = Cấu trúc DL + Giải thuật • Cấu trúc liệu cách tổ chức liệu, cách mơ tả tốn dạng ngơn ngữ lập trình • Giải thuật quy trình để thực cơng việc xác định Các phương pháp lập trình truyền thống Ưu điểm: • Chương trình sáng sủa, dễ hiểu, dễ theo dõi • Tư giải thuật rõ ràng Nhược điểm: • Lập trình cấu trúc khơng hỗ trợ việc sử dụng lại mã nguồn: Giải thuật phụ thuộc chặt chẽ vào cấu trúc liệu, đó, thay đổi cấu trúc liệu, phải thay đổi giải thuật, nghĩa phải viết lại chương trình • Khơng phù hợp với phần mềm lớn: tư cấu trúc với giải thuật phù hợp với toán nhỏ, nằm phạm vi module chương trình Phương pháp lập trình hướng đối tượng Để khắc phục hai hạn chế giải toán lớn, người ta xây dựng phương pháp tiếp cận mới, phương pháp lập trình hướng đối tượng, với hai mục đích chính: • Đóng gói liệu để hạn chế truy nhập tự vào liệu, khơng quản lí • Cho phép sử dụng lại mã nguồn, hạn chế việc phải viết lại mã từ đầu cho chương trình Phương pháp lập trình hướng đối tượng Đặc trưng: • Đóng gói liệu: liệu tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp • Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn thể thông qua chế kế thừa Cơ chế cho phép lớp đối tượng kế thừa từ lớp đối tượng khác Phương pháp lập trình hướng đối tượng Ưu điểm : • Khơng nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Phải thông qua phương thức cho phép đối tượng • Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi đổi mã nguồn đối tượng khác, mà cần thay đổi số hàm thành phần đối tượng bị thay đổi • Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên • Phù hợp với dự án phần mềm lớn, phức tạp Đối tượng • Đối tượng thực thể hoạt động chương trình chạy Một đối tượng xác định ba yếu tố: – Định danh đối tượng: xác định cho đối tượng hệ thống, nhằm phân biệt đối tượng với – Trạng thái đối tượng: tổ hợp giá trị thuộc tính mà đối tượng có – Hoạt động đối tượng: hành động mà đối tượng có khả thực Ví dụ đối tượng Họ tên: Nguyễn Thị B Giới tính: Nữ Nghề nghiệp: Sinh viên Ngày sinh: 20/12/1987 Trạng thái: Vui, buồn, hờn, giận … Hành động: Ăn, nói, đọc, viết, đi, … Chức giao tiếp Giao tiếp Comparable xác định chức mà lớp có Nó làm cho việc sử dụng thành viên giao tiếp mà không cần biết kiểu thực Ví dụ: Viết phương thức trả lại đối tượng đối tượng Phương thức làm việc với tất lớp sử dụng giao tiếp Comparable public static Object largest(Comparable a, Comparable b) { return (a.compare(b) > 0) ? a : b; } Chức giao tiếp Một cách sử dụng khác giao tiếp đưa khuôn mẫu chức thực cho lớp Ví dụ: Viết giao tiết MyInterface cho lớp MyClass Giao tiếp bao gồm chức năng, người sử dụng lớp MyClass cần interface MyInterface { void exposed(); } class MyClass implements MyInterface { public void exposed() {} public void hidden() {} } public static void main(String[] args){ MyInterface i = new MyClass(); } Lớp trừu tượng • Lớp trừu tượng dạng lớp đặc biệt, phương thức khai báo dạng khuôn mẫu (template) mà không cài đặt chi tiết Việc cài đặt chi tiết phương thức thực lớp kế thừa lớp trừu tượng • Lớp trừu tượng sử dụng muốn định nghĩa lớp mà biết định nghĩa thuộc tính phương thức Lớp trừu tượng (Abstract) • Ví dụ lớp trừu tượng: abstract class Shape { private int x = 100, y = 100; public abstract int GetArea(); } class Rectangle extends Shape { @Override public int getArea() { return x * y; } } Lớp trừu tượng (Abstract) • Một lớp trường khơng thể thừa kế Nhưng dùng để giữ thể lớp con: Shape s = new Rectangle(); • Lớp trừu tượng có phương thức xây dựng, lớp sử dụng phương thức xây dựng lớp trừu từ khóa super abstract class Shape { public int x = 100, y = 100; public Shape(int a, int b) { x = a; y = b; } } class Rectangle extends Shape { public Rectangle(int a, int b) { super(a,b); } } Phân biệt abstract interface Giống: • Cả hai tương tự nhau, định nghĩa khuôn mẫu để lớp tham chiếu phải mở rộng Phân biệt lớp trừu tượng giao tiếp Khác: • Lớp trừu tượng mang thành viên không trừu tượng, giao tiếp khơng • Một lớp mở rộng giao tiếp tùy thích thừa kế từ lớp, lớp trừu tượng khơng • Lớp trừu tượng thừa kế lớp sử dụng giao tiếp Giao tiếp thừa kế từ giao tiếp hiệu kết hợp hai giao tiếp thành Ngoại lệ • Ngoại lệ lỗi thực thi chương trình (runtime error) • Ngoại lệ làm q trình thực thi chương trình bị chấm dứt bất thường • Ví dụ: Ngoại lệ xảy thực thao tác đọc tập tin import java.io.*; // FileReader in = new FileReader("Missing.file"); // error Câu lệnh try-catch • Để chống lại chương trình xảy ngoại lệ, ta dùng câu lệnh try-catch để bắt ngoại lệ phát sinh try { FileReader in = new FileReader("Missing.file") } catch (FileNotFoundException e) {} • Lớp ngoại lệ tổng quát Exception lớp gốc tất ngoại lệ catch(FileNotFoundException e) { System.out.print(e.getMessage()); } catch(Exception e) { System.out.print(e.getMessage()); } Khối lệnh finally • Là khối lệnh thực thi mặc cho ngoại lệ có xảy hay khơng import java.io.*; // FileReader in = null; try { in = new FileReader("Missing.file"); } catch(FileNotFoundException e) { System.out.print(e.getMessage()); } finally { if (in != null) { try { in.close(); } catch(IOException e) {} } } Phát sinh ngoại lệ • Khi phương thức phục hồi xảy ngoại lệ, phát sinh ngoại lệ để báo cho đối tượng phương thức thực phương thức mong muốn static void MakeException() { throw new Throwable("My Throwable"); } Ngoại lệ • Ngoại lệ Java chia nhóm – checked unchecked Nhóm checked nhóm bắt buộc phải khai báo phải catch gọi Còn unchecked khơng import java.io.*; // static void MakeException() throws IOException, ArithmeticException { throw new IOException("My IO exception"); // throw new ArithmeticException("Division by zero"); } Boxing Unboxing • Boxing q trình chuyển biến kiểu sơ cấp thành đối tượng Unboxing q trình ngược lại • Java cung cấp sẵn lớp tương ứng với kiểu sơ cấp như: Byte, Short, Integer, Long, Float, Double, Character Boolean • Những lớp nằm gói java.lang int iPrimitive = 5; Integer iWrapper = new Integer(iPrimitive); // boxing iPrimitive = iWrapper.intValue(); // unboxing Boxing Unboxing • Để so sánh biến kiểu chuyển đổi này, dùng phương thức equal() • Trong Java có q trình tự unboxing boxing Integer iWrapper = iPrimitive; // autoboxing iPrimitive = iWrapper; // autounboxing • Chúng ta tự làm chuyện sử dụng valueOf Integer iWrapper = Integer.valueOf(iPrimitive); iPrimitive = iWrapper.intValue() Boxing Unboxing • Nên sử dụng kiểu sơ cấp không cần thiết phải thao tác đối tượng Bởi kiểu sơ cấp nhìn tổng thể nhanh hiệu kiểu đối tượng • Kiểu đối tượng sử dụng cần • Ví dụ: Lưu trữ giá trị nguyên ArrayList java.util.ArrayList a = new java.util.ArrayList(); a.add(Integer.valueOf(5)); // boxing a.add(10); // autoboxing ... giải thuật, cấu trúc xác định chương trình - Ngơn ngữ: Pascal, C, C++, … Đặc trưng : Chương trình = Cấu trúc DL + Giải thuật • Cấu trúc liệu cách tổ chức liệu, cách mô tả tốn dạng ngơn ngữ lập trình... Phương pháp lập trình hướng đối tượng Đặc trưng: • Đóng gói liệu: liệu ln tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp • Sử dụng lại... tượng Ưu điểm : • Khơng nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Phải thông qua phương thức cho phép đối tượng • Khi thay đổi cấu trúc liệu đối tượng, không cần thay

Ngày đăng: 08/11/2019, 19:12

TỪ KHÓA LIÊN QUAN

w