Bài giảng Lập trình hướng đối tượng - Bài 4: Đối tượng và lớp - TS. Nguyễn Mạnh Hùng

pdf 23 trang phuongnguyen 4670
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Bài 4: Đối tượng và lớp - TS. Nguyễn Mạnh Hùng", để 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:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_bai_4_doi_tuong_va_lop_t.pdf

Nội dung text: Bài giảng Lập trình hướng đối tượng - Bài 4: Đối tượng và lớp - TS. Nguyễn Mạnh Hùng

  1. Lập trình hướng đối tượng Đối tượng và lớp Giảng viên: TS. Nguyễn Mạnh Hùng Học viện Công nghệ Bưu chính Viễn thông (PTIT)
  2. Nội dung  Đối tượng  Trừu tượng hóa đối tượng thành lớp  Khai báo lớp trong Java  Khai báo và sử dụng đối tượng  Bài tập 2
  3. Đối tượng và lớp
  4. Đối tượng (1) Một chiếc CIVIC: Hãng: HONDA Màu: bạc Dung tích xilanh: 2.4 Giá : 30 000$ Chạy theo hướng xác định Dừng lại Tự động báo động Kính chống đạn Túi hơi 4
  5. Đối tượng (2) Một chiếc CIVIC: Tên đối tượng: CIVIC Hãng: HONDA Màu: bạc Các đặc điểm: Dung tích xilanh: 2.4 Hãng: HONDA Giá : 30 000$ Màu: bạc Tự động báo động Dung tích xilanh: 2.4 Chạy theo hướng xác định Giá : 30 000$ Dừng lại Kính chống đạn Các tính năng: Túi hơi Tự động báo động Chạy theo hướng xác định Dừng lại Kính chống đạn Túi hơi 5
  6. Trừu tượng hóa đối tượng (1) Tên đối tượng: CIVIC Tên chung: Xe hơi Các đặc điểm: Các đặc điểm chung: Hãng: HONDA Hãng sản xuất: Màu: bạc Màu xe: Dung tích xilanh: 2.4 Dung tích xilanh: Giá : 30 000$ Giá : Các tính năng: Các tính năng chung: Tự động báo động Chạy theo hướng xác định Chạy theo hướng xác định Dừng lại Dừng lại Kính chống đạn Túi hơi 6
  7. Trừu tượng hóa đối tượng (2) Tên chung: Xe hơi Tên: Xe hơi Các đặc điểm chung: Các thuộc tính: Hãng sản xuất: Hãng sản xuất: Màu xe: Màu xe: Dung tích xilanh: Dung tích xilanh: Giá : Giá : Các tính năng chung: Các hành động: Chạy theo hướng xác định Chạy theo hướng xác định Dừng lại Dừng lại 7
  8. Bài tập Trừu tượng hóa các đối tượng để thành lớp:  Người  Sinh viên  Môn học 8
  9. Khai báo lớp trong Java
  10. Khai báo lớp public class Car{ } Khai báo phạm vi Khai báo tên lớp Từ khóa cho khai báo lớp 10
  11. Khai báo thuộc tính cho lớp public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe } 11
  12. Hàm khởi tạo public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe public Car(){ productor = ""; color = ""; capacity = 0.0; price = 0; } } 12
  13. Nạp chồng hàm khởi tạo public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe public Car(){ productor = ""; color = ""; capacity = 0.0; price = 0; } public Car(String v1, String v2, float v3, int v4){ productor = v1; color = v2; capacity = v3; price = v4; } } 13
  14. Biến this public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe public Car(){ productor = ""; color = ""; capacity = 0.0; price = 0; } public Car(String productor, String color, float capacity, int price){ this.productor = productor; this.color = color; this.capacity = capacity; this.price = price; } } 14
  15. Phương thức của lớp public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe public void setProductor(String productor){ this.productor = productor; } public String getProductor(){ return productor; } } 15
  16. Đóng gói dữ liệu public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe public void setProductor(String productor){ this.productor = productor; } public String getProductor(){ return productor; } } Chỉ cho truy nhập Không cho truy nhập gián tiếp qua phương trực tiếp vào dữ liệu thức 16
  17. Bài tập  Định nghĩa lớp sinh viên với các thuộc tính: mã sinh viên Họ và tên Tuổi Điểm tổng kết Mức học bổng Viết phương thức xác định mức học bổng của sinh viên 17
  18. Khai báo và sử dụng đối tượng
  19. Khai báo/khởi tạo đối tượng public class Test{ public static void main(String args[]){ Car myCar; // khai báo đối tượng // khởi tạo đối tượng myCar = new Car(); System.out.println(myCar.getProductor()); // khởi tạo lại đối tượng myCar = new Car("HONDA", "White", 2.4, 30000); System.out.println(myCar.getProductor()); } } Chạy chương trình: >java Test kết quả là gì? 19
  20. Biến static public class Car{ // lớp xe ô tô private String productor; // tên nhà sản xuất private String color; // màu xe private float capacity; // dung tích xilanh private int price; // giá xe static int sold; // số xe đã bán } public class Test{ public static void main(String args[]){ Car myCar, hisCar; System.out.println(Car.sold); hisCar = new Car(); hisCar.sold++; myCar = new Car("HONDA", "White", 2.4, 30000); myCar.sold++; System.out.println(Car.sold); } } 20
  21. Lệnh nào lỗi? public class Test{ public static void main(String args[]){ 1: Car myCar, hisCar; 2: System.out.println(myCar.getProductor()); 3: myCar = new Car("HONDA", "White", 2.4, 30000); 4: System.out.println(myCar.productor); 5: hisCar = myCar; 6: System.out.println(hisCar.getProductor()); 7: System.out.println(myCar.setProductor("HONDA")); } } 21
  22. Bài tập  Viết chương trình nhập dữ liệu sinh viên, theo lớp đã định nghĩa, từ bàn phím  In thông tin sinh viên ra màn hình, bao gồm cả mức học bổng 22
  23. Questions?