(NB) Mục tiêu của Giáo trình Lập trình hướng đối tượng là Trình bày các khái niệm trong lập trình hướng đối tượng. Sử dụng ngôn ngữ C# trong lập trình hướng đối tượng. Thiết kế lớp đối tượng và các thành phần của lớp. Viết chương trình những bài toán theo quan điểm lập trình hướng đối tượng. Cài đặt tính kế thừa, đa hình trong hướng đối tượng
ỦY BAN NHÂN DÂN TỈNH BR – VT TRƯỜNG CAO ĐẲNG NGHỀ GIÁO TRÌNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NGHỀ LẬP TRÌNH MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG, TRUNG CẤP Ban hành kèm theo Quyết định số: 01 /QĐCĐN, ngày 04 tháng 01 năm 2016 của Hiệu trưởng trường Cao đẳng nghề tỉnh Bà Rịa – Vũng Tàu Bà Rịa – Vũng Tàu, năm 2016 TUN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể được phép dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm LỜI GIỚI THIỆU Lập trình theo phương pháp hướng đối tượng là một phương pháp lập trình xuất hiện từ những năm 1990 và được hầu hết các ngơn ngữ lập trình hiện nay hỗ trợ Giáo trình này sẽ giới thiệu các đặc trưng của phương pháp lập trình hướng đối tượng như tính đóng gói, tính kế thừa và tính đa hình. Chúng tơi chọn ngơn ngữ C# để minh họa, vì đây là ngơn ngữ lập trình hướng đối tượng dễ học và phổ dụng nhất hiện nay Sau khi hồn tất giáo trình này, sinh viên sẽ biết được cách mơ hình hóa các lớp đối tượng trong thế giới thực thành các lớp đối tượng trong C# và cách phối hợp các đối tượng này để giải quyết vấn đề đang quan tâm Bà Rịa – Vũng Tàu, ngày tháng năm 2016 Tham gia biên soạn Nguyễn Bá Thủy MỤC LỤC MƠ ĐUN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mã mơ đun: MĐ 16 Vị trí, tính chất của mơn học Lập trình hướng đối tượng là phương pháp lập trình mới trên bước đường tiến hóa của việc lập trình máy tính, nhằm giúp chương trình trở nên linh hoạt, tin cậy và dễ phát triển. Tư tưởng lập trình hướng đối tượng được áp dụng cho hầu hết các ngơn ngữ lập trình chạy trên mơi trường Windows như Visual Basic, Java, Visual C, C# Vì vậy việc nghiên cứu phương pháp lập trình mới này là thật sự cần thiết đối với những người làm Tin học Mục tiêu mơn học + Trình bày các khái niệm trong lập trình hướng đối tượng + Sử dụng ngơn ngữ C# trong lập trình hướng đối tượng + Thiết kế lớp đối tượng và các thành phần của lớp + Viết chương trình những bài tốn theo quan điểm lập trình hướng đối tượng + Cài đặt tính kế thừa, đa hình trong hướng đối tượng + Trình bày được sự cần thiết của các khái niệm: tốn tử, uỷ nhiệm hàm và sự kiện trong lập trình hướng đối tượng Phân tích, cài đặt và xây dựng được chương trình theo phương pháp hướng đối tượng trên một ngơn ngữ lập trình cụ thể Nội dung của mơ đun: TT Tên bài Thời gian Hình thức giảng dạy Tổng quan về các phương pháp lập trình Lý thuyết Căn bản về C# Tích hợp Sử dụng các bổ từ truy cập Tích hợp Thiết lập các phương thức của lớp Tích hợp Thiết lập các thuộc tính của lớp Tích hợp Cài đặt lớp trong C# Tích hợp Kiểm tra bài 6 TH Xây dựng các hàm khởi tạo của lớp Tích hợp Định nghĩa tốn tử Tích hợp Sử dụng các loại tốn tử Tích hợp 10 Kế thừa Tích hợp Kiểm tra bài 10 TH 11 Đa hình Tích hợp 12 Giao diện Tích hợp 13 Uỷ nhiệm hàm (delegate) Tích hợp 14 Sự kiện (event) Tích hợp 15 Kiểm tra bài 14 TH 16 Cộng 75 BÀI 1 TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP LẬP TRÌNH Giới thiệu: Phương pháp lập trình kiểu bản lập trình vi tính (Computer Programming). Programming với các khái niệm và sự trừu tượng dùng trong mơ tả các thành phần của một chương trình (như: các đối tượng (objects), các hàm (functions), các biến, các hằng,…) và các bước để tính tốn (như: các phép gán, biểu thức, các dịng liệu,…). Một ngơn ngữ lập trình có thể hỗ trợ nhiều Phương thức (lập trình), ví dụ: trong ngơn ngữ C++ hay Object Pascal ta có thể lập trình theo phương thức định hướng thủ tục hoặc theo phương thức hướng đối tượng, hay cũng có thể chứa cả 2 kiểu viết này Cho dù là chọn phương thức lập trình nào, chúng ta vẫn mong muốn đạt đến một kết quả là làm sao để có sản phẩm tối ưu, đầy đủ các tính năng so với u cầu đề ra. Sự chọn lựa một phương thức lập trình phù hợp với u cầu đặt ra sẽ giúp các lập trình viên có được một kết quả tốt nhất. Do vậy, thực sự khơng thể so sánh ưu nhược điểm giữa các phương thức lập trình nếu khơng đặt nó vào một hồn cảnh cụ thể của u cầu Mục tiêu: Trình bày được các phương pháp của lập trình hướng đối tượng, các đặt điểm nỗi bật của phương pháp lập trình hướng đối tượng Trình bày được các khái niệm cơ bản của lập trình hướng đối tượng Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm Nội dung: 1. Các phương pháp lập trình Xây dựng phần mềm bao gồm rất nhiều cơng đoạn: phân tích & thiết kế, cài đặt, kiểm tra/thử nghiệm và bảo trì Cài đặt (programming/coding) chỉ là 1 phần trong q trình trên C++/C#/Java/v.v… là NNLT để viết chương trình PPLT là hệ thống hướng dẫn các giai đoạn cần thiết, cấu trúc của một chương trình PPLT là các cách tiếp cận giúp cho q trình cài đặt hiệu quả hơn Các u cầu chính của phần mềm: Tính tái sử dụng (reusability) Tính mở rộng (extensibility) Tính mềm dẻo (flexibility) 1.1. Lập trình tuyến tính Chương trinh la mơt day cac lênh ̀ ̀ ̣ ̃ ́ ̣ Lâp trinh la xây d ̣ ̀ ̀ ựng cac lênh trong day lênh ́ ̣ ̃ ̣ Khơng mang tính thiết kế 1.2. Lập trình cấu trúc Chương trinh la mơt hê thơng cac thu tuc/ ham ̀ ̀ ̣ ̣ ́ ́ ̉ ̣ ̀ Môi thu tuc/ ham la môt day cac lênh ̃ ̉ ̣ ̀ ̀ ̣ ̃ ́ ̣ Lâp trinh la xac đinh xem ch ̣ ̀ ̀ ́ ̣ ương trinh gơm bao nhiêu thu tuc/ ham ̀ ̀ ̉ ̣ ̀ Kết quả là hệ thống cấu trúc và mối quan hệ giữa các hàm/ thủ tục 1.3. Lập trình mơđun Chương trinh la mơt hê thơng nh ̀ ̀ ̣ ̣ ́ ững modul hay đơn thê.̉ Đơn thê la môt hê thông cac thu tuc/ ham ̉ ̀ ̣ ̣ ́ ́ ̉ ̣ ̀ Phân tích và tìm ra các đơn thể Gom nhóm các thành phần tương tự nhau về ý nghĩa, phạm vi… Bài tập củng cố: Xet ch ́ ương trinh nhâp vao ho tên, điêm văn, điêm toan cua môt hoc sinh va xuât điêm ̀ ̣ ̀ ̣ ̉ ̉ ́ ̉ ̣ ̣ ̀ ́ ̉ trung binh t ̀ ương ưng. Hay viêt ch ́ ̃ ́ ương trinh trên băng cac ph ̀ ̀ ́ ương pháp 1.4. Lập trình hướng đối tượng Chương trinh la mơt hê thơng nh ̀ ̀ ̣ ̣ ́ ững lơp đôi t ́ ́ ượng. Môi môt l ̃ ̣ ớp đôi t ́ ượng vê măt th ̀ ̣ ực tê t ́ ương ưng v ́ ơi nh ́ ưng đôi t ̃ ́ ượng co xuât hiên trong th ́ ́ ̣ ực tê.́ LT hương đôi t ́ ́ ượng la xây d ̀ ựng nhưng l ̃ ơp đôi t ́ ́ ượng va yêu câu chung th ̀ ̀ ́ ực hiên ̣ nhưng trach nhiêm cua minh ̃ ́ ̣ ̉ ̀ LT hướng đối tượng là phương pháp LT dựa trên kiến trúc lớp (class) và đối tượng (object). 2. Các đặc điểm lập trình hướng đối tượng Đối tượng là gì ? Đối tượng trong thế giới thực: là một thực thể cụ thể mà ta có thể sờ, nhìn thấy hay cảm nhận được Đối tượng phần mềm: dùng để biểu diễn các đối tượng trong thế giới thực Mỗi đối tượng bao gồm 2 thành phần: thuộc tính và hành động Ví dụ: một người A Một người có các thuộc tính: tên, tuổi, địa chỉ, màu mắt, … Các hành động: đi, nói, thở, … Một đối tượng là 1 thực thể bao gồm thuộc tính & hành động Hình 1.1: Mơ hình đối tượng Lớp đối tượng là gì ? return T; } } public override void Xuat() { Console.WriteLine(hoten + "\t" + giothue +"\t" + TienThue); } } CÂU HỎI, BÀI TẬP Xây dựng lớp máy tính có sử dụng tính đa hình các phương thức U CẦU, ĐÁNH GIÁ Ý nghĩa của việc sử dụng đa hình Các trường họp sử dụng đa hình 52 BÀI 12 GIAO DIỆN Giới thiệu Những account ngân hàng. Chúng ta sẽ viết mã để cho phép các máy điện tốn chuyển khoảng qua lại giữa các account. Có nhiều cơng ty thực thi account và đều đồng ý với nhau là phải thi hành một giao diện IBankaccount có các phương thức nạp hay rút tiền và thuộc tính trả về số tài khoản Mục tiêu Trình bày được vai trị của giao diện Vận dụng giao diện cho các lớp có liên quan Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm 12.1. Khái niệm Giao diện là một dạng của lớp trừu tượng được sử dụng với mục đích hỗ trợ tính đa hình. Trong giao diện khơng có bất cứ một cài đặt nào, chỉ có ngun mẫu của các phương thức, chỉ mục, thuộc tính mà một lớp khác khi kế thừa nó thì phải có cài đặt cụ thể cho các thành phần này (tức là lớp kế thừa giao diện tun bố rằng nó hỗ trợ các phương thức, thuộc tính, chỉ mục được khai báo trong giao diện) Khi một lớp kế thừa một giao diện ta nói rằng lớp đó thực thi (implement) giao diện 12.2. Cài đặt giao diện Ta dùng từ khóa interface để khai báo một giao diện với cú pháp sau: [MứcĐộTruyCập] interface TênGiaoDiện [:CácGiaoDiệnCơSở] { Nội dung } 53 MứcĐộTruyCập: public hoặc internal CácGiaoDiệnCơSở: danh sách các interface khác mà nó kế thừa Về mặt cú pháp, một giao diện giống như một lớp chỉ có phương thức trừu trượng Nó có thể chứa khai báo của phương thức, thuộc tính, chỉ mục, sự kiện (events) nhưng khơng được chứa biến dữ liệu. Khi kế thừa một giao diện ta phải thực thi mọi phương thức, thuộc tính,… của giao diện 12.3. Thực thi giao diện Mọi chiếc xe hơi hoặc xe máy đều có hành động (phương thức) khởi động và dừng. Ta có thể dùng định nghĩa một giao diện kèm thêm một thuộc tính để cho biết chiếc xe đã khởi động hay chưa: public interface IDrivable { void KhoiDong(); void Dung(); bool DaKhoiDong { get; } } Thuộc tính đã khởi động (DaKhoiDong) chỉ có phương thức get vì khi gọi phương thức KhoiDong() thì thuộc tính này sẽ có giá trị true, khi gọi phương thức Dung() thì thuộc tính này sẽ có giá trị false Khi đó, một lớp Car thực thi giao diện này phải cài đặt các phương thức và thuộc tính đã khai báo trong giao diện Idrivable trên: 54 public interface IDrivable { void KhoiDong(); void Dung(); bool DaKhoiDong { get; } } public class Car:IDrivable { public bool Started = false; public void KhoiDong() { Console.WriteLine("Xe ca khoi dong"); Started = true; } public void Dung() { Console.WriteLine("Xe ca dung"); Started = false; } public bool DaKhoiDong 55 { get{return Started;} } } public class Tester { public static void Main() { Car c = new Car(); c.KhoiDong(); Console.WriteLine("c.DaKhoiDong = " + c.DaKhoiDong); CÂU HỎI, BÀI TẬP Xây dựng lớp Acount chứa giao diện xử lý rút tiền U CẦU, ĐÁNH GIÁ Các tính chất của giao diện Thực thi giao diện 56 BÀI 13 ỦY NHIỆM HÀM (DELEGATE) Giới thiệu Delegate là một kiến thức căn bản cần nắm vững khi bạn nhập mơn C#, .NET Mặc dù bạn có thể cho rằng delegate khơng cần thiết và tránh sử dụng nó (một cách trực tiếp) nhưng cuối cùng bạn vẫn phải nhận thấy rằng: mình khơng thể “sống” khi thiếu delegate. Delegate khơng khó hiểu cũng như khơng khó để áp dụng, nếu bạn dành một chút thời gian nghiên cứu Mục tiêu Trình bày được ý nghĩa và khai báo của ủy nhiệm hàm (delegate) Vận dụng thực thi ủy nhiệm hàm (delegate) cho lớp Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm 13.1. Định nghĩa Trong ngơn ngữ C#, ủy quyền là lớp đối tượng đầu tiên (firstclass object), được hỗ trợ đầy đủ bởi ngơn ngữ lập trình. Theo kỹ thuật thì ủy quyền là kiểu dữ liệu tham chiếu được dùng để đóng gói một phương thức với tham số và kiểu trả về xác định. Chúng ta có thể đóng gói bất cứ phương thức thích hợp nào vào trong một đối tượng ủy quyền. Trong ngơn ngữ C++ và những ngơn ngữ khác, chúng ta có thể làm được điều này bằng cách sử dụng con trỏ hàm (function pointer) và con trỏ đến hàm thành viên. Khơng giống như con trỏ hàm như trong C/C++, ủy quyền là hướng đối tượng, kiểu dữ liệu an tồn (typesafe) và bảo mật. 13.2. Khai báo Để tạo một ủy quyền ta dùng từ khóa delegate theo sau là kiểu trả về tên phương thức được ủy quyền và các đối mục cần thiết: public delegate int WhichIsFirst(object obj1, object obj2); 57 Khai báo trên định nghĩa một ủy quyền tên là WhichIsFirst, nó sẽ đóng gói bất cứ phương thức nào lấy hai tham số kiểu object và trả về giá trị int 13.3. Thực thi Trong chương trình thử nghiệm này chúng ta sẽ tạo ra hai đối tượng Student và hai đối tượng Cat và lưu chúng vào mỗi một đối tượng Pair. Sau đó chúng ta sẽ tạo những đối tượng ủy quyền để đóng gói những phương thức của chúng, những phương thức này phải phù hợp với ký pháp và kiểu trả về của ủy quyền. Sau cùng chúng ta sẽ yêu cầu những đối tượng Pair này sắp xếp những đối tượng Student và Cat, ta làm từng bước như sau: Bắt đầu bằng việc tạo phương thức khởi dựng Pair lấy hai đối tượng và đưa chúng vào trong từng mảng riêng: public class Pair { // đưa vào 2 đối tượng theo thứ tự public Pair( object firstObjectr, object secondObject) { thePair[0] = firstObject; thePair[1] = secondObject; } // biến lưu giữ hai đối tượng private object[] thePair = new object[2]; } Tiếp theo là chúng ta phủ quyết phương thức ToString() để chứa giá trị mới của hai đối 58 tượng mà Pair nắm giữ: public override string ToString() { // xuất thứ tự đối tượng thứ nhất trước đối tượng thứ hai return thePair[0].ToString() +”,” + thePair[1].ToString(); } CÂU HỎI, BÀI TẬP Xây dựng lớp SV có hàm tính trung bình điểm của 3 mơn U CẦU, ĐÁNH GIÁ Khai báo Thực thi 59 BÀI 14 SỰ KIỆN (EVENT) Giới thiệu Các hành động của người dùng, ví dụ như nhấn phím, click, di chuyển chuột, … Các Application cần phản hồi các sự kiện này khi chúng xuất hiện Mục tiêu Trình bày được ý nghĩa và khai báo của sự kiện (event) Vận dụng thực thi sự kiện (event) cho lớp Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm 14.1. Định nghĩa Trong mơi trường giao diện đồ họa (Graphical User Interfaces: GUIs), Windows hay trong trình duyệt web địi hỏi các chương trình phải đáp ứng các sự kiện. Một sự kiện có thể là một nút lệnh được nhấn, một mục trong menu được chọn, hành động sao chép tập tin hồn thành, Hay nói ngắn gọn là một hành động nào đó xảy ra, và ta phải đáp ứng lại sự kiện đó Chúng ta khơng thể đốn trước được khi nào thì các sự kiện sẽ xuất hiện. Hệ thống sẽ chờ cho đến khi nhận được sự kiện, và sẽ chuyển vào cho trình xử lý sự kiện thực Trong mơi trường giao diện đồ họa, bất cứ thành phần nào cũng có thể đưa ra sự kiện Ví dụ, khi chúng ta kích vào một nút lệnh, nó có thể đưa ra sự kiện Click. Khi chúng ta thêm một mục vào danh sách, nó sẽ đưa ra sự kiện ListChanged 14.2. Khai báo Giả sử chúng ta muốn tạo một lớp Clock dùng những sự kiện để cảnh báo những lớp subscriber bất cứ khi nào đồng hồ hệ thống thay đổi giá trị trong một giây. Gọi sự kiện 60 này là OnSecondChange. Chúng ta khai báo sự kiện và kiểu delegate xử lý sự kiện của nó như sau: [attributes] [modifiers] event type member name 14.3. Thực thi Một sự kiện được phát ra thì sẽ gọi bất cứ phương thức nào được đăng ký với lớp Clock thơng qua delegate, chúng ta sẽ kiểm tra điều này sau Một khi mà sự kiện được phát ra, chúng ta sẽ cập nhật lại trạng thái của lớp Class: this.second = dt.Second; this.minute = dt.Minute; this.hour = dt.Hour; 61 CÁC BÀI TẬP MỞ RỘNG, NÂNG CAO VÀ GIẢI QUYẾT VẤN ĐỀ Bài 1. Viết lớp giải phương trình bậc hai. Lớp này có các thuộc tính a, b, c và nghiệm x1, x2. Hãy xây dựng theo hướng đối tượng lớp trên. Lớp cho phép bên ngồi xem được các nghiệm của phương trình và cho phép thiết lập hay xem các giá trị a, b, c Bài 2. Viết một chương trình để cài đặt một hệ thống quản lý kho. Hãy lưu trữ mã số, tên hàng, giá và số lượng đang có của mỗi món hàng trong một lớp. Nhập chi tiết của N (N nhập từ bàn phím) món hàng hiển thị tên từng món hàng và tổng giá trị của nó Bài 3. Viết một chương trình để lưu trữ các sinh viên gồm: mã sinh viên, họ và tên và điểm trung bình của N (N nhập từ bàn phím) sinh viên. Hãy sắp xếp danh sách sinh viên này theo thứ tự điểm trung bình giảm dần. Hiển thị 3 sinh viên có điểm trung bình cao nhất Bài 4. Tạo một lớp CD gồm: CDName, CDType và CDPrice và các phương thức cần thiết khác. Viết một ứng dụng có dạng menu như sau: Thêm CD: Cho phép thêm một đĩa CD vào danh mục các đĩa CD hiện có. Hãy cung cấp khả năng quản lý khoảng 1000 đĩa CD. Cần có sự kiểm sốt nếu số lượng đĩa CD được nhập vượt q 1000 Search CD: Nhập vào tên của đĩa CD, nếu khơng tìm thấy thì báo lỗi, nếu tìm thấy thì in các thơng tin liên quan đến đĩa CD đó Display catalog: Hiển thị tất cả các đĩa CD hiện có trong danh mục, danh mục đĩa CD được hiển thị ở dạng bảng, có chứa cột tiêu đề Bài 5. 62 1. Xây dựng các lớp đối tượng hình học như: điểm, đoạn thẳng, đường trịn, hình chữ nhật, hình vng, tam giác, hình bình hành, hình thoi. Mỗi lớp có các thuộc tính riêng để xác định được hình vẽ biểu diễn của nó như đoạn thẳng thì có điểm đầu, điểm cuối 2. Mỗi lớp thực thi một phương thức Draw() ghi đè (overriding) phương thức Draw() của lớp cơ sở gốc của các hình mà nó dẫn xuất. Hãy xây dựng lớp cơ sở của các lớp trên và thực thi đa hình với phương thức Draw(), sau đó tạo lớp Tester cùng với hàm Main() để thử nghiệm Bài 6: Cho thiết kế lớp Employee (nhân viên) như sau: Các thành phần dữ liệu: id: Định danh, kiểu int. Định danh này được sinh tự động và tăng dần bắt đầu từ 1. name: Họ tên nhân viên, kiểu String. yearOfBirth: Năm sinh nhân viên, kiểu int. salaryLevel: Bậc lương, kiểu double. basicSalary: Lương cơ bản, kiểu double. (Chú ý lương cơ bản là thuộc tính được sử dụng chung cho mọi đối tượng của lớp Employee). Các phương thức: GetId( ): trả lại định danh của nhân viên. GetName( ): trả lại tên của nhân viên. GetYearOfBirth( ): trả lại năm sinh của nhân viên. GetIncome( ): trả lại thu nhập của nhân viên. Thu nhập được tính bằng bậc lương nhân lương cơ bản (salaryLevel * basicSalary) Input(): nhập thơng tin nhân viên. Display( ): hiển thị thơng tin về nhân viên. Bao gồm các thơng tin: định danh, tên, năm sinh, lương cơ bản, thu nhập. 63 SetSalaryLevel( ): thiết lập bậc lương cho nhân viên SetBasicSalary( ): thiết lập lương cơ bản Hãy viết chương trình cài đặt lớp Employee và lớp sử dụng Employee Bài 7: Xây dựng chương trình quản lý lương cho cơng ty ABC. Thơng tin để tính lương cho mỗi Nhân viên trong cơng ty bao gồm: Họ tên, q qn, hệ số lương, lương cơ bản. Hãy nhập vào một danh sách các Nhân viên của cơng ty sau đó thực hiện các u cầu sau: Tính và hiển thị lương của các Nhân viên có trong danh sách Liệt kê những nhân viên có hệ số lương cao nhất Sắp xếp danh sách theo thứ tự tăng dần của trường hệ số lương Hướng dẫn: Xây dựng lớp có tên NhanVien với các thành phần • Dữ liệu: Họ tên, q qn, hệ số lương, lương cơ bản(là thành phần dữ liệu tĩnh) • Phương thức: Các thuộc tính để truy xuất tới các thành phần dữ liệu họ tên, hệ số lương, phương thức nhập, hiển thị, tính lương,… Xây dựng lớp QuanLy nhân viên bao gồm • Dữ liệu: ds là một mảng các nhân viên Phương thức: Phương thức nhập, hiển thị, sắp xếp,… Bài 8: Xây dựng lớp có tên là TienDien với các thơng tin bao gồm: + Dữ liệu: Họ tên chủ hộ Địa chỉ Số cơng tơ tháng trước Số cơng tơ tháng này 64 + Phương thức Phương thức thiết lập khơng tham số và 4 tham số Phương thức nhập dữ liệu Phương thức hiển thị dữ liệu Thuộc tính tính số cơng tơ điện đã dùng(=Số cơng tơ tháng này Số cơng tơ tháng trước) Phương thức tính tiền điện được tính theo cơng thức: Số điện đã dùng*1240 Sau đó xây dựng lớp TienDienMoi bằng việc kế thừa lớp TienDien để tính tiền điện theo một quy định mới. Việc tính tiền điện lúc này căn cứ vào định mức quy định. Nếu trong định mức là 1240, ngồi định mức là 1600 Hướng dẫn: Xây dựng lớp TienDien theo như đã mơ tả 65 TÀI LIỆU THAM KHẢO 1. Đồn Văn Ban Phân tích , thiết kế và lập trình hướng đối tượng Nhà xuất bản thống kê, Hà Nội 1997 2. Phạm Văn Ất C++ và lập trình hướng đối tượng Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội 2000 3. Giáo trình lập trình hướng đối tượng C# 66 ... ? ?Trình? ?bày được các phương pháp của? ?lập? ?trình? ?hướng? ?đối? ?tượng, các đặt điểm nỗi bật của phương pháp? ?lập? ?trình? ?hướng? ?đối? ?tượng ? ?Trình? ?bày được các khái niệm cơ bản của? ?lập? ?trình? ?hướng? ?đối? ?tượng. .. vậy việc nghiên cứu phương pháp? ?lập? ?trình? ?mới này là thật sự cần thiết? ?đối? ?với những người làm Tin học Mục tiêu mơn học + Trình? ?bày các khái niệm trong? ?lập? ?trình? ?hướng? ?đối? ?tượng? ? + Sử dụng ngơn ngữ C# trong? ?lập? ?trình? ?hướng? ?đối? ?tượng? ? + Thiết kế lớp? ?đối? ?tượng? ?và các thành phần của lớp ... MƠ ĐUN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mã mơ đun: MĐ 16 Vị trí,? ?tính? ?chất của mơn học Lập? ?trình? ?hướng? ?đối? ?tượng? ?là phương pháp? ?lập? ?trình? ?mới trên bước đường tiến hóa của việc? ?lập? ?trình? ?máy? ?tính, nhằm giúp chương? ?trình? ?trở