Kĩ thuật lập trình - Chương 2: Lập trình hướng đối tượng với java

pdf 25 trang vanle 2170
Bạn đang xem 20 trang mẫu của tài liệu "Kĩ thuật lập trình - Chương 2: Lập trình hướng đối tượng với java", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfki_thuat_lap_trinh_chuong_2_lap_trinh_huong_doi_tuong_voi_ja.pdf

Nội dung text: Kĩ thuật lập trình - Chương 2: Lập trình hướng đối tượng với java

  1. Chương 2: LẬP TRÌNH HĐT VỚI JAVA Khoa CNTT ĐH GTVT TP.HCM Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 1 / 25
  2. Nội dung 1 Object oriented programming 2 Class & Object 3 Interface 4 Collection & Map Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 2 / 25
  3. Object Oriented Programming (1) Thế nào là OOP? * Thực chất lập trình là mô tả thế giới thực bằng ngôn ngữ của máy tính. * Thế giới thực bao gồm các sự vật, hiện tượng và sự tương tác giữa chúng. * Lập trình OOP hướng đến việc xây dựng phần mềm có mô hình như thế giới thực. * Bắt đầu từ việc xem xét các thành phần của một phần mềm như là các đối tượng (objects) * Và cho phép chúng (objects) tương tác với nhau để giải quyết bài toán Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 3 / 25
  4. Object Oriented Programming (2) Ví dụ OOP mô tả thế giới thực: Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 4 / 25
  5. Object Oriented Programming (3) Các đặc điểm của OOP (1): * Tính trừu tượng (Abstraction): 1 Quốc Tuấn là một Giảng viên 2 Thành Nam là một Sinh viên 3 Lập trình Java là một Học phần * Tính đóng gói (Encapsulation) & Che dấu dữ liệu (Data hiding) 1 Thông tin sinh viên gồm: Mã, Họ tên, Ngày sinh, 2 Thông tin học phần gồm: Mã HP, Tên HP, Số tiết, 3 Sinh viên không nên biết hệ số lương của Giảng viên Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 5 / 25
  6. Object Oriented Programming (4) Các đặc điểm của OOP (2): * Tính thừa kế (Inheritance) 1 Giảng viên & Sinh viên đều là Người 2 Máy tính là một loại Thiết bị * Tính đa hình (Polymorphism) 1 Giảng viên & Sinh viên đều Làm việc 2 Nhưng công việc của GV là Dạy, trong khi với sinh viên là Học Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 6 / 25
  7. Object & Class (1) Object là gì? (1) Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 7 / 25
  8. Object & Class (2) Ojbject là gì? (2) Object = Methods + Fields Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 8 / 25
  9. Object & Class (3) Class là khuôn mẫu để tạo ra các Objects Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 9 / 25
  10. Object & Class (4) Các vấn đề liên quan đến class & interface: 1 Xây dựng class như thế nào? 2 Tạo object và khởi tạo các giá trị cho các thành phần dữ liệu. 3 Truy xuất đến thành phần của một object. 4 Phạm vi truy xuất của các thành phần trong class 5 Thành phần chung (static) cho tất cả các object của cùng một class. 6 Mối quan hệ giữa các class & các interface (thừa kế và đa hình) Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 10 / 25
  11. Object & Class (5) Tạo class như thế nào? public class HangHoa implements Serializable { public int maHH; public int soLuong; public double donGia; public String tenHH; public HangHoa() {/*initialization*/} @Override public String toString() { return String.format("%d,%s,%f", maHH, tenHH, donGia); } static public ArrayList dsHangHoa() { ArrayList lst = new ArrayList(); //add elements to lst return lst; } } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 11 / 25
  12. Interface Interface là gì? * An interface in java is a blueprint of a class. It has static constants and abstract methods only. * There can be only abstract methods in the java interface not method body. It is used to achieve fully abstraction and multiple inheritance in Java. Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 12 / 25
  13. Interface Tạo interface như thế nào? public interface IGioHang { double tinhTongTien(); HangHoa tim(int maHH); void them(HangHoa h, int soLuong); void hienThi(); int tinhTongHang(); int soMatHang(); void xoa(int maHH); } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 13 / 25
  14. Interface Multiple inheritance in Java by interface Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 14 / 25
  15. Collection in Java Hierarchy Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 15 / 25
  16. Collection in Java List public static void listDemo() { List lst = new ArrayList (); lst.add("collection"); lst.add("in"); lst.add("java"); for (Iterator i = lst.iterator(); i.hasNext();) { System.out.println(i.next()); } System.out.println(lst.indexOf("java")); } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 16 / 25
  17. Collection in Java Stack public static void stackDemo() { Stack st = new Stack (); st.push("collection"); st.push("in"); st.push("java"); Iterator i = st.iterator(); while (i.hasNext()) { System.out.println(i.next()); } } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 17 / 25
  18. Collection in Java Set public static void setDemo(){ Set s = new HashSet(); s.add("GTVT"); s.add("KHTN"); s.add("HUTECH"); for(Iterator i = s.iterator();i.hasNext();){ System.out.println(i.next()); } } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 18 / 25
  19. Map in Java Hierarchy Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 19 / 25
  20. Map in Java Map public static void mapDemo() { Map m = new Hashtable (); m.put(1,"tivi"); m.put(2,"laptop"); m.put(3,"iphone"); for (Object i : m.keySet()) { System.out.println(m.get(i)); } } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 20 / 25
  21. Xử lý sự kiện trong Java Mô hình truyền sự kiện Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 21 / 25
  22. Xử lý sự kiện trong Java Các thành phần trong mô hình xử lý sự kiện * Generator / Publisher: đối tượng phát sự kiện. Ví dụ: rạp Galaxy phát sự kiện "có phim mới" * Listener / Subscriber: đối tượng lắng nghe / đăng ký sự kiện. Ví dụ: sinh viên Tuấn thường xuyên theo dõi thông báo về phim mới trên website của Galaxy * Event: thông tin sự kiện được truyền từ Generator → Listener Ví dụ: thông tin về bộ phim, diễn viên chính, xuất chiếu, giá vé, Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 22 / 25
  23. Xử lý sự kiện trong Java Generator public interface Generator { void addListener(Listener listener); void removeListener(Listener listener); } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 23 / 25
  24. Xử lý sự kiện trong Java Listener public interface Listener { void receive(Generator from, Event event); } Event public interface Event { //anything you want. } Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 24 / 25
  25. —Hết— Khoa CNTT (ĐH GTVT TP.HCM) Java Programming 25 / 25