Bài giảng lập trình java - Bài 5
Số trang: 6
Loại file: pdf
Dung lượng: 48.40 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu tham khảo bài giảng lập trình java - Lê Đình Thanh , bộ môn mạng và truyền thông máy tính , khoa công nghệ thông tin - Bài 05 Kiểu chung
Nội dung trích xuất từ tài liệu:
Bài giảng lập trình java - Bài 5 Bài gi ng L P TRÌNH JAVA Lê ðình Thanh B môn M ng và Truy n thông Máy tính Khoa Công ngh Thông tin Trư ng ð i h c Công ngh , ðHQGHNLê ðình Thanh, Ki u chung Bài 5 Ki u chungLê ðình Thanh, Ki u chungN i dung• Các l i l p trình• Ki u chung Phương th c chung•Lê ðình Thanh, Ki u chungLêL i l p trình L i l p trình (bug), thư ng xuyên g p trong quá trình phát • tri n ph n m m, ñư c chia làm hai lo i: • L i khi d ch (compile-time bugs): Các trình d ch có th ch ra các l i này và l p trình viên ph i s a (debug) trư c khi ph n m m ch y ñư c. L i khi ch y (runtime bugs): L i không th phát hi n ñư c • khi d ch mà ch ñư c phát hi n khi ch y. • M t trong nh ng nguyên nhân gây l i khi ch y là s d ng SAI KI U. • Ki u t ng quát ñư c ñưa vào java nh m phát hi n các l i s d ng sai ki u ngay khi d ch.Lê ðình Thanh, Ki u chungVí d v l i khi ch ypublic class Box { private Object object; public void add(Object object) { this.object = object; } public Object get() { return object; }}public class BoxDemo1 { public static void main(String[] args) { Box abox = new Box(); abox.add(10); Integer anotherbox = (Integer) abox.get(); System.out.println(anotherbox ); } Exception in thread main java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at } BoxDemo1.main(BoxDemo1.java:6)Lê ðình Thanh, Ki u chungKi u chung – Generic Typepublic class Box { private T object; public void add(T object) { this.object = object; } public T get() { return object; }}public class BoxDemo2 { public static void main(String[] args) { Box abox = new Box(); abox.add(new Integer(10)); Integer anotherbox = abox.get(); System.out.println(anotherbox); } }Lê ðình Thanh, Ki u chungKi u chung Ki u ñư c s d ng như m t tham s• public class Box { …} Box abox = new Box();Lê ðình Thanh, Ki u chungPhát hi n l i nh ki u chungpublic class Box { private T object; public void add(T object) { this.object = object; } public T get() { return object; }}public class BoxDemo3 { public static void main(String[] args) { Box abox = new Box(); abox.add(10); Integer anotherbox = (Integer) abox.get(); System.out.println(anotherbox); } BoxDemo3.java:5: add(java.lang.Integer) in Box cannot be applied to } (java.lang.String) abox.add(10); ^ 1 errorLê ðình Thanh, Ki u chungPhương th c chung Là phương th c có tham s ki u chung• public void inspect(U u){ System.out.println(U: + u.getClass().getName()); } public static void fillBoxes(U u, List boxes) { for (Box box : boxes) { box.add(u); } } Crayon red = ...; List crayonBoxes = ...; Box.fillBoxes(red, crayonBoxes); //ho c Box.fillBoxes(red, crayonBoxes);Lê ðình Thanh, Ki u chungTham s ki u ñư c gi i h n Là phương th c có tham s ki u chung• public void inspect(U u){ System.out.println(U: + u.getClass().getName()); } abox.inspect(some text); Box.java:21: inspect(U) in Box cannot be applied to (java.lang.String) abox.inspect(“some text); ^ 1 errorLê ðình Thanh, Ki u chung Ti p theo Các l p thi t y uLê ðình Thanh, Ki u chung
Nội dung trích xuất từ tài liệu:
Bài giảng lập trình java - Bài 5 Bài gi ng L P TRÌNH JAVA Lê ðình Thanh B môn M ng và Truy n thông Máy tính Khoa Công ngh Thông tin Trư ng ð i h c Công ngh , ðHQGHNLê ðình Thanh, Ki u chung Bài 5 Ki u chungLê ðình Thanh, Ki u chungN i dung• Các l i l p trình• Ki u chung Phương th c chung•Lê ðình Thanh, Ki u chungLêL i l p trình L i l p trình (bug), thư ng xuyên g p trong quá trình phát • tri n ph n m m, ñư c chia làm hai lo i: • L i khi d ch (compile-time bugs): Các trình d ch có th ch ra các l i này và l p trình viên ph i s a (debug) trư c khi ph n m m ch y ñư c. L i khi ch y (runtime bugs): L i không th phát hi n ñư c • khi d ch mà ch ñư c phát hi n khi ch y. • M t trong nh ng nguyên nhân gây l i khi ch y là s d ng SAI KI U. • Ki u t ng quát ñư c ñưa vào java nh m phát hi n các l i s d ng sai ki u ngay khi d ch.Lê ðình Thanh, Ki u chungVí d v l i khi ch ypublic class Box { private Object object; public void add(Object object) { this.object = object; } public Object get() { return object; }}public class BoxDemo1 { public static void main(String[] args) { Box abox = new Box(); abox.add(10); Integer anotherbox = (Integer) abox.get(); System.out.println(anotherbox ); } Exception in thread main java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at } BoxDemo1.main(BoxDemo1.java:6)Lê ðình Thanh, Ki u chungKi u chung – Generic Typepublic class Box { private T object; public void add(T object) { this.object = object; } public T get() { return object; }}public class BoxDemo2 { public static void main(String[] args) { Box abox = new Box(); abox.add(new Integer(10)); Integer anotherbox = abox.get(); System.out.println(anotherbox); } }Lê ðình Thanh, Ki u chungKi u chung Ki u ñư c s d ng như m t tham s• public class Box { …} Box abox = new Box();Lê ðình Thanh, Ki u chungPhát hi n l i nh ki u chungpublic class Box { private T object; public void add(T object) { this.object = object; } public T get() { return object; }}public class BoxDemo3 { public static void main(String[] args) { Box abox = new Box(); abox.add(10); Integer anotherbox = (Integer) abox.get(); System.out.println(anotherbox); } BoxDemo3.java:5: add(java.lang.Integer) in Box cannot be applied to } (java.lang.String) abox.add(10); ^ 1 errorLê ðình Thanh, Ki u chungPhương th c chung Là phương th c có tham s ki u chung• public void inspect(U u){ System.out.println(U: + u.getClass().getName()); } public static void fillBoxes(U u, List boxes) { for (Box box : boxes) { box.add(u); } } Crayon red = ...; List crayonBoxes = ...; Box.fillBoxes(red, crayonBoxes); //ho c Box.fillBoxes(red, crayonBoxes);Lê ðình Thanh, Ki u chungTham s ki u ñư c gi i h n Là phương th c có tham s ki u chung• public void inspect(U u){ System.out.println(U: + u.getClass().getName()); } abox.inspect(some text); Box.java:21: inspect(U) in Box cannot be applied to (java.lang.String) abox.inspect(“some text); ^ 1 errorLê ðình Thanh, Ki u chung Ti p theo Các l p thi t y uLê ðình Thanh, Ki u chung
Tìm kiếm theo từ khóa liên quan:
Lập trình Java lập trình máy tính ngôn ngữ lập trình lập trình cơ bản giao diệnGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 271 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 263 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 262 0 0 -
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 235 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 230 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 221 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 214 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 203 0 0 -
15 trang 199 0 0
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 179 0 0