Chương 6 của bài giảng Lập trình hướng đối tượng cung cấp cho người học những kiến thức về lập trình Generic. Mục tiêu của chương này nhằm giúp người học: Trình bày được mục đích của lập trình Generic, có thể hiện thực các lớp và các phương thức Generic, trình bày được mối quan hệ giữa các kiểu Generic và kế thừa. . | Chương 6 LẬP TRÌNH GENERIC Mục tiêu Trình bày được mục đích của lập trình Generic Có thể hiện thực các lớp và các phương thức Generic Trình bày được mối quan hệ giữa các kiểu Generic và kế thừa Nội dung . Đặt vấn đề . Mục đích của Generic . Generics ở mức lớp . Generics ở mức phương thức . Sử dụng Type Bounds . Sử dụng Wildcard trong Generic . Generics và xử lý ngoại lệ . Thừa kế và Generic 3 . Đặt vấn đề Trước khi có JDK , người lập trình có thể đưa bất kỳ đối tượng nào vào Collection, ví dụ: List myList = new ArrayList(10); (new Integer(10)); ("Hello, World"); Do đó, khi muốn lấy một đối tượng, người lập trình phải dùng toán tử ép kiểu, ví dụ: Integer myInt = (Integer)(0); . Đặt vấn đề Nếu người lập trình vô ý chuyển đổi sai kiểu, chương trình vẫn có thể thực thi nhưng sẽ xảy ra ngoại lệ Có thể khắc phục bằng cách dùng toán tử instance of, ví dụ: Iterator listItor = (); while (()) { { Object myObject = (); Integer myInt; if (myObject instanceof Integer) { myInt = (Integer)myObject; } } . Mục đích của Generics JDK cung cấp sự chuyển đổi an toàn kiểu lúc biên dịch cho Collections Framework thông qua Generic Generic cho phép người lập trình xác định trước loại đối tượng muốn lưu trong Collection Do đó, không cần phải ép kiểu khi lấy đối tượng. Và nếu có phép gán sai kiểu, trình biên dịch cũng sẽ phát sinh lỗi Ví dụ: generic programming = programming with classes and methods parameterized with types 6 . Generic ở mức lớp Lớp Generic là một cơ chế để chỉ rõ mối quan hệ giữa lớp và kiểu dữ liệu liên quan đến nó - type parameter Các type parameter sẽ được xác định tại thời điểm đối tượng của lớp được tạo Quy ước về tên của type parameter Viết hoa, dùng một chữ cái E – Element K – Key N – Number T – Type V – Value 7 public class GenericClass { // class body } Type parameter Cách dễ nhất để tạo 1 generic class là bạn hãy tạo 1 class non-generic trước, . | Chương 6 LẬP TRÌNH GENERIC Mục tiêu Trình bày được mục đích của lập trình Generic Có thể hiện thực các lớp và các phương thức Generic Trình bày được mối quan hệ giữa các kiểu Generic và kế thừa Nội dung . Đặt vấn đề . Mục đích của Generic . Generics ở mức lớp . Generics ở mức phương thức . Sử dụng Type Bounds . Sử dụng Wildcard trong Generic . Generics và xử lý ngoại lệ . Thừa kế và Generic 3 . Đặt vấn đề Trước khi có JDK , người lập trình có thể đưa bất kỳ đối tượng nào vào Collection, ví dụ: List myList = new ArrayList(10); (new Integer(10)); ("Hello, World"); Do đó, khi muốn lấy một đối tượng, người lập trình phải dùng toán tử ép kiểu, ví dụ: Integer myInt = (Integer)(0); . Đặt vấn đề Nếu người lập trình vô ý chuyển đổi sai kiểu, chương trình vẫn có thể thực thi nhưng sẽ xảy ra ngoại lệ Có thể khắc phục bằng cách dùng toán tử instance of, ví dụ: Iterator listItor = (); while (()) { { .