Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 3 - Trần Minh Thái (2017 - P2)
Số trang: 132
Loại file: pptx
Dung lượng: 1.75 MB
Lượt xem: 7
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hướng đối tượng (dùng Java) - Chương 3: Lập trình Hướng đối tượng với Java (P2)" cung cấp cho người học các kiến thức: Vấn đề tái sử dụng code, kế thừa trong Java, tính đa hình trong Java, cài đặt interface trong Java, lập trình tổng quát. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 3 - Trần Minh Thái (2017 - P2) Chương 3 Lập trình Hướng đốitượng với Java (tt)TRẦNMINHTHÁIEmail:minhthai@huflit.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 22 tháng 03 năm 2017 Nội dung#2 1. Vấn đề tái sử dụng code 2. Kế thừa trong Java 3. Tính đa hình trong Java 4. Cài đặt interface trong Java 5. Lập trình tổng quátVẤN ĐỀ TÁI SỬ DỤNG CODE Tái sử dụng code#4 • Lập trình cấu trúc: chương trình con • OOP: nhiều loại đối tượng có thuộc tính, hành vi tương tự nhau tái sử dụng các lớp đã viết • Trong một lớp vẫn tái sử dụng phương thức • Ưu điểm: • Giảm chi phí • Nâng cao khả năng bảo trì và khả năng mô hình hóa Các hình thức tái sử dụng code#5 1. Sao chép lớp cũ thành 1 lớp khác Hạn chế: Dư thừa, khó quản lý khi có thay đổi 2. Kết hợp: Lớp mới là tập hợp/ sử dụng các lớp đã có 3. Kế thừa: Lớp mới phát triển thêm các thuộc tính hoặc phương thức từ lớp đã có KẾT HỢPAGGREGATION Kết hợp (Aggregation)#7 • Thể hiện mối quan hệ “has-a”: Lớp mới chứa các đối tượng của lớp cũ • Lớp mới: Lớp chứa/ Lớp toàn thể • Lớp cũ: Lớp thành phần • Ví dụ: • Lớp cũ: Điểm (Point) • Lớp mới: Tam giác (Triangle) có 3 điểm Lớp chứa tái sử dụng các thành viên của lớp thành phần thông qua đối tượng Sơ đồ lớp#8 Số lượng thành phần • 1 số nguyên dương (1, 2, 3...) • Dải số (0..1, 1..n) • Bấtkỳgiátrịnào:* • Khôngghi:1 Ví dụ Lớp ToaDoDiem#9 package minhthai.oop.thietkelop; public class ToaDoDiem { private int x; private int y; public ToaDoDiem() { this.setX(0); this.setY(0); } public ToaDoDiem(int x, int y) { this.setX(x); this.setY(y); } public int getX() {return x;} public void setX(int x) {this.x = x;} public int getY() {return y;} public void setY(int y) {this.y = y;} public void hienThi() { System.out.printf((%d, %d) , this.x, this.y); } } Ví dụ Lớp TamGiac#10 Nếu lớp thành phần khácpackage thì dùng lệnh import Ví dụ Lớp TamGiac …#11 Bài tập 1#12 Xây dựng một trò chơi xúc xắc. Cách chơi như sau: • Mỗi hạt xúc xắc được gieo sẽ có giá trị ngẫu nhiên 1...6 • Hai người lần lượt gieo 1 hạt xúc xắc • Sau mỗi lượt gieo, số điểm của lượt đó được tích lũy vào số điểm của người chơi • Sau các lượt gieo theo quy định, người thắng cuộc là người có tổng số điểm lớn hơn Hãy xác định các lớp cần thiết và cài đặt Xác định lớp#13 • Xúc xắc (XucXac) • Fields: giá trị của mặt (giaTri) • Methods: sinh ngẫu nhiên giá trị mặt của xúc xắc (sinhGiaTri()) • Người chơi (NguoiChoi) • Fields: tên (ten), điểm (diem) • Methods: gieo xúc xắc (gieoXucXac()) Xác định lớp#14 • Trận đấu (TranDau) • Fields: xúc xắc (xucXac), 2 người chơi (nguoiChoi), số vòng chơi (soVong), người thắng cuộc (nguoiThang) • Methods: bắt đầu (batDau()), kết thúc (ketThuc), hiển thị thông tin (hienThi()), thực hiện trận đấu (thucHienTranDau()) Xác định lớp#15 Lớp XucXac#16 public class XucXac { private int giaTri; public int getGiaTri() { return giaTri; } public void setGiaTri(int giaTri) { this.giaTri = giaTri; } public XucXac(){ giaTri=1; } public void sinhGiaTri(){ Random random = new Random(); this.giaTri=random.nextInt(5) + 1; } } Lớp NguoiChoi#17 public class NguoiChoi { private String ten; private int diem; public String getTen() { return ten; } public void setTen(String ten) { this.ten = ten; } public int getDiem() { return diem; } public void setDiem(int diem) { this.diem = diem; } Lớp NguoiChoi public NguoiChoi(String ten){#18 this.ten=ten; this.diem=0; } public void gieoXucXac(XucXac xucXac){ Scanner sn = new Scanner(System.in); System.out.print(>>> Hay nhan Enter de gieo xuc xac...); sn.nextLine(); xucXac.sinhGiaTri(); ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 3 - Trần Minh Thái (2017 - P2) Chương 3 Lập trình Hướng đốitượng với Java (tt)TRẦNMINHTHÁIEmail:minhthai@huflit.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: 22 tháng 03 năm 2017 Nội dung#2 1. Vấn đề tái sử dụng code 2. Kế thừa trong Java 3. Tính đa hình trong Java 4. Cài đặt interface trong Java 5. Lập trình tổng quátVẤN ĐỀ TÁI SỬ DỤNG CODE Tái sử dụng code#4 • Lập trình cấu trúc: chương trình con • OOP: nhiều loại đối tượng có thuộc tính, hành vi tương tự nhau tái sử dụng các lớp đã viết • Trong một lớp vẫn tái sử dụng phương thức • Ưu điểm: • Giảm chi phí • Nâng cao khả năng bảo trì và khả năng mô hình hóa Các hình thức tái sử dụng code#5 1. Sao chép lớp cũ thành 1 lớp khác Hạn chế: Dư thừa, khó quản lý khi có thay đổi 2. Kết hợp: Lớp mới là tập hợp/ sử dụng các lớp đã có 3. Kế thừa: Lớp mới phát triển thêm các thuộc tính hoặc phương thức từ lớp đã có KẾT HỢPAGGREGATION Kết hợp (Aggregation)#7 • Thể hiện mối quan hệ “has-a”: Lớp mới chứa các đối tượng của lớp cũ • Lớp mới: Lớp chứa/ Lớp toàn thể • Lớp cũ: Lớp thành phần • Ví dụ: • Lớp cũ: Điểm (Point) • Lớp mới: Tam giác (Triangle) có 3 điểm Lớp chứa tái sử dụng các thành viên của lớp thành phần thông qua đối tượng Sơ đồ lớp#8 Số lượng thành phần • 1 số nguyên dương (1, 2, 3...) • Dải số (0..1, 1..n) • Bấtkỳgiátrịnào:* • Khôngghi:1 Ví dụ Lớp ToaDoDiem#9 package minhthai.oop.thietkelop; public class ToaDoDiem { private int x; private int y; public ToaDoDiem() { this.setX(0); this.setY(0); } public ToaDoDiem(int x, int y) { this.setX(x); this.setY(y); } public int getX() {return x;} public void setX(int x) {this.x = x;} public int getY() {return y;} public void setY(int y) {this.y = y;} public void hienThi() { System.out.printf((%d, %d) , this.x, this.y); } } Ví dụ Lớp TamGiac#10 Nếu lớp thành phần khácpackage thì dùng lệnh import Ví dụ Lớp TamGiac …#11 Bài tập 1#12 Xây dựng một trò chơi xúc xắc. Cách chơi như sau: • Mỗi hạt xúc xắc được gieo sẽ có giá trị ngẫu nhiên 1...6 • Hai người lần lượt gieo 1 hạt xúc xắc • Sau mỗi lượt gieo, số điểm của lượt đó được tích lũy vào số điểm của người chơi • Sau các lượt gieo theo quy định, người thắng cuộc là người có tổng số điểm lớn hơn Hãy xác định các lớp cần thiết và cài đặt Xác định lớp#13 • Xúc xắc (XucXac) • Fields: giá trị của mặt (giaTri) • Methods: sinh ngẫu nhiên giá trị mặt của xúc xắc (sinhGiaTri()) • Người chơi (NguoiChoi) • Fields: tên (ten), điểm (diem) • Methods: gieo xúc xắc (gieoXucXac()) Xác định lớp#14 • Trận đấu (TranDau) • Fields: xúc xắc (xucXac), 2 người chơi (nguoiChoi), số vòng chơi (soVong), người thắng cuộc (nguoiThang) • Methods: bắt đầu (batDau()), kết thúc (ketThuc), hiển thị thông tin (hienThi()), thực hiện trận đấu (thucHienTranDau()) Xác định lớp#15 Lớp XucXac#16 public class XucXac { private int giaTri; public int getGiaTri() { return giaTri; } public void setGiaTri(int giaTri) { this.giaTri = giaTri; } public XucXac(){ giaTri=1; } public void sinhGiaTri(){ Random random = new Random(); this.giaTri=random.nextInt(5) + 1; } } Lớp NguoiChoi#17 public class NguoiChoi { private String ten; private int diem; public String getTen() { return ten; } public void setTen(String ten) { this.ten = ten; } public int getDiem() { return diem; } public void setDiem(int diem) { this.diem = diem; } Lớp NguoiChoi public NguoiChoi(String ten){#18 this.ten=ten; this.diem=0; } public void gieoXucXac(XucXac xucXac){ Scanner sn = new Scanner(System.in); System.out.print(>>> Hay nhan Enter de gieo xuc xac...); sn.nextLine(); xucXac.sinhGiaTri(); ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Lập trình Java Lập trình Hướng đối tượng với Java Cài đặt interface trong Java Lập trình tổng quát Tính đa hình trong JavaGợ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 275 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Excel add in development in c and c phần 9
0 trang 109 0 0 -
Program C Ansi Programming Embedded Systems in C and C++ phần 4
12 trang 96 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
Lập trình Java cơ bản : GUI nâng cao part 3
6 trang 84 0 0 -
265 trang 80 0 0