intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng lập trình java - Bài 5

Chia sẻ: Nguyen Van Nam | Ngày: | Loại File: PDF | Số trang:6

118
lượt xem
32
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

Nội dung Text: Bài giảng lập trình java - Bài 5

  1. 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 , ðHQGHN Lê ðình Thanh, Ki u chung Bài 5 Ki u chung Lê ðình Thanh, Ki u chung
  2. N i dung • Các l i l p trình • Ki u chung Phương th c chung • Lê ðình Thanh, Ki u chung Lê 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 chung
  3. Ví d v l i khi ch y public 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 chung Ki u chung – Generic Type public 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 chung
  4. Ki 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 chung Phát hi n l i nh ki u chung public 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 error Lê ðình Thanh, Ki u chung
  5. Phươ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 chung Tham 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 error Lê ðình Thanh, Ki u chung
  6. Ti p theo Các l p thi t y u Lê ðình Thanh, Ki u chung
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2