Bài giảng Cấu trúc dữ liệu: Chương 2 - Nguyễn Xuân Vinh
lượt xem 18
download
Bài giảng Cấu trúc dữ liệu - Chương 2: Java generics giới thiệu về generic, generic trong Java, lớp generic, phương thức generic, giới hạn (bound) của các biến kiểu (Type variables), wildcard, generic và máy ảo java, các lớp generic collection, hạn chế của generic, kết luận và bài tập.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu: Chương 2 - Nguyễn Xuân Vinh
- GV: NGUYỄN XUÂN VINH CẤU TRÚC DỮ LIỆU DATA STRUCTURES [214331] JAVA GENERICS MÔN: CẤU TRÚC DỮ LIỆU Source: Nguyễn Văn Khiêm 6/12/14 /XX 1
- Nội dung chính GV: NGUYỄN XUÂN VINH • Giới thiệu về Generic. • Generic trong Java. • Lớp Generic. • Phương thức Generic. MÔN: CẤU TRÚC DỮ LIỆU • Giới hạn (bound) của các biến kiểu (Type variables). • Wildcard. • Generic và Máy ảo Java. • Các lớp Generic Collection. • Hạn chế của Generic. • Kết luận. 6/12/14 • Bài tập. /XX 2
- Giới thiệu về Generic GV: NGUYỄN XUÂN VINH • Lập trình Generic được đề xướng bởi ngôn ngữ Ada năm 1983. • Cho phép các giải thuật có thể dựa trên các kiểu được xác định sau, và các kiểu này sẽ được thể hiện khi cần thiết. MÔN: CẤU TRÚC DỮ LIỆU • Định nghĩa các kiểu ở mức trừu tượng. • Các kiểu này có thể được thay thế bằng nhiều kiểu cụ thể (class, interface) khác khi sử dụng. • Hiện nay Generic có trong Ada, Java, Template trong C++, C#, Visual Basic, .Net, Eiffel và Haskell 6/12/14 /XX 3
- 4 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH • Trước jdk1.5: Generic trong Java
- JDK 1.4 GV: NGUYỄN XUÂN VINH • Trước jdk1.5: MÔN: CẤU TRÚC DỮ LIỆU Phải ép kiểu Ném ngoại 6/12/14 lệ khi chạy /XX 5
- GV: NGUYỄN XUÂN VINH Một giải pháp tồi • Chúng ta có thể tạo class sau chỉ để chứa danh sách Student: class StudentList { void add(Student element) { ... } Student remove(int index) { ... } MÔN: CẤU TRÚC DỮ LIỆU } Nhưng, khi cần một danh sách chỉ chứa đối tượng Teacher? Copy-paste? 6/12/14 /XX 6
- Generic trong Java (tt) GV: NGUYỄN XUÂN VINH Sử dụng Generic • Từ jdk1.5: MÔN: CẤU TRÚC DỮ LIỆU Lỗi ngay khi biên dịch Không phải ép kiểu 6/12/14 /XX 7
- 8 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH • Lớp Generic Là lớp với một hoặc nhiều biến kiểu.
- Lớp Generic GV: NGUYỄN XUÂN VINH • Là lớp với một hoặc nhiều biến kiểu. Các biến kiểu khai báo cách nhau bởi dấu phẩy MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /XX 9
- Lớp Generic GV: NGUYỄN XUÂN VINH • Là lớp với một hoặc nhiều biến kiểu. Các biến kiểu khai báo cách nhau bởi dấu phẩy MÔN: CẤU TRÚC DỮ LIỆU Sử dụng các biến kiểu để khai báo thuộc tính 6/12/14 /XX 10
- Lớp Generic(tt) GV: NGUYỄN XUÂN VINH MÔN: CẤU TRÚC DỮ LIỆU Lỗi biên dịch Không cần ép kiểu, không cần bắt ngoại lệ 6/12/14 /XX 11
- Phương thức Generic GV: NGUYỄN XUÂN VINH • Ta có thể định nghĩa một phương thức với các tham số kiểu ngay trong một lớp bình thường hoặc một lớp Generic. MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 Lỗi biên dịch /XX 12
- Giới hạn của các kiểu biến GV: NGUYỄN XUÂN VINH Làm thế nào để first luôn nhỏ hơn second? MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /XX 13
- 14 /XX 6/12/14 MÔN: CẤU TRÚC DỮ LIỆU GV: NGUYỄN XUÂN VINH Giới hạn của các kiểu biến (tt) Giải pháp?
- Giới hạn của các kiểu biến (tt) GV: NGUYỄN XUÂN VINH Làm sao để T có thể được so sánh? MÔN: CẤU TRÚC DỮ LIỆU Lỗi biên dịch 6/12/14 /XX 15
- Giới hạn của các kiểu biến (tt) GV: NGUYỄN XUÂN VINH • Cần phải giới hạn T trong Interface Comparable. Giới hạn T MÔN: CẤU TRÚC DỮ LIỆU 6/12/14 /XX 16
- Giới hạn của các kiểu biến (tt) GV: NGUYỄN XUÂN VINH • Một kiểu biến có thể có nhiều giới hạn. MÔN: CẤU TRÚC DỮ LIỆU Giới hạn T vừa có thể so sánh, vừa có thể sao chép 6/12/14 /XX 17
- Wildcard GV: NGUYỄN XUÂN VINH • Java cho phép sử dụng các Wildcard để xác định biên của kiểu tham số Generic. MÔN: CẤU TRÚC DỮ LIỆU • Được sử dụng khi: Ø Không biết kiểu Generic là gì. Ø Các kiểu Generic được khai báo nhưng không được sử dụng. Ø Chúng ta muốn kiểu Generic là “read-only”. 6/12/14 /XX 18
- GV: NGUYỄN XUÂN VINH Bounded Wildcards • Upper bound (Wildcard biên trên) – List any items 6/12/14 • So, it can contain any things. /XX 19
- GV: NGUYỄN XUÂN VINH Josh Bloch’s Bounded Wildcards Rule • The rule is: PECS (Producer-Extends, Comsumer-Super) – Use
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu cơ bản và giải thuật - Chương 1
9 p | 258 | 29
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 180 | 17
-
Bài giảng Cấu trúc dữ liệu: Chương 10 - Nguyễn Xuân Vinh
31 p | 95 | 10
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 163 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 82 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 118 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 89 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 63 | 7
-
Bài giảng Cấu trúc dữ liệu: Chương Giới thiệu - Nguyễn Xuân Vinh
8 p | 112 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 177 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu
10 p | 74 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 107 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 70 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các khái niệm cơ bản
23 p | 48 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 53 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn