Giáo trình Lập trình hướng đối tượng - Nghề: Lập trình máy tính - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu
lượt xem 3
download
(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
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Lập trình hướng đối tượng - Nghề: Lập trình máy tính - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu
- Ủ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
- TUYÊN 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 nguyên 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. 1
- 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 hoà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 2
- MỤC LỤC 3
- 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 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 + Trình bày được sự cần thiết của các khái niệm: toá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ể. 4
- Nội dung của mô đun: Hình thức TT Tên bài Thời gian giảng dạy 1 Tổng quan về các phương pháp lập trình 5 Lý thuyết 2 Căn bản về C# 5 Tích hợp 3 Sử dụng các bổ từ truy cập 5 Tích hợp 4 Thiết lập các phương thức của lớp 5 Tích hợp 5 Thiết lập các thuộc tính của lớp 5 Tích hợp 6 Cài đặt lớp trong C# 9 Tích hợp Kiểm tra bài 6 1 TH 7 Xây dựng các hàm khởi tạo của lớp 5 Tích hợp 8 Định nghĩa toán tử 5 Tích hợp 9 Sử dụng các loại toán tử 5 Tích hợp 10 Kế thừa 4 Tích hợp Kiểm tra bài 10 1 TH 11 Đa hình 5 Tích hợp 12 Giao diện 4 Tích hợp 13 Uỷ nhiệm hàm (delegate) 5 Tích hợp 14 Sự kiện (event) 5 Tích hợp 15 Kiểm tra bài 14 1 TH 16 Cộng 75 5
- 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 là một kiểu cơ bản của 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 toán (như: các phép gán, biểu thức, các dòng dữ 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 yêu cầu đề ra. Sự chọn lựa một phương thức lập trình phù hợp với yê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 hoàn cảnh cụ thể của yê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 6
- 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 quá 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 quá trình cài đặt hiệu quả hơn. Các yê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ể. 7
- 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ố: ́ ươ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 Xet ch ̀ ̣ ̀ ̣ ̉ ̉ ́ ̉ ̣ ̣ ̀ ́ ̉ ̀ ương ưng. Hay viêt ch trung binh t ́ ̃ ́ ươ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 ́ ương ưng v tê t ́ ơ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ì ? 8
- Lớp đối tượng thể hiện cho một nhóm các đối tượng giống nhau (cùng thuộc tính & hành động) VD: học sinh A, học sinh B, học sinh C… Thiết kế phần mềm hướng đối tượng: Trừu tượng hóa dữ liệu và các hàm/ thủ tục liên quan Chia hệ thống ra thành các lớp/ đối tượng Mỗi lớp/ đối tượng có các tính năng và hành động chuyên biệt Các lớp có thể được sử dụng để tạo ra nhiều đối tượng cụ thể Các bước thiết kế đối tượng: Bươc 1: Xây d ́ ựng sơ đô đôi t ̀ ́ ượng ́ ̣ ́ ơp đôi t Xac đinh cac l ́ ́ ượng ́ ̣ ̣ ữa cac l Xac đinh cac quan hê gi ́ ́ ơṕ Bươc 2: Thiêt kê cac l ́ ́ ́ ́ ơṕ ̣ ́ ̣ Thiêt kê thuôc tinh, cac hanh đông ́ ́ ́ ̀ Bươc 3: Cai đăt cac l ́ ̀ ̣ ́ ơp ́ Bước 4: Sử dụng các lớp để tạo ra các đối tượng Một số ngôn ngữ lập trình HĐT: C++, C#, VB.Net, J#, VC++, Java, JavaScript, PHP 3. Một số khái niệm cơ bản 3.1. Tính trừu tượng (abstraction) Sự trừu tượng hóa: 9
- Hình 1.2: Mô hình trừu tượng hóa thực thể 3.2. Tính đóng gói (encapsulation) ̉ ́ ữ riêng biêt d Kha năng cât gi ̣ ữ liêu va ph ̣ ̀ ương thưc tac đông lên d ́ ́ ̣ ữ liêu đo. Do ̣ ́ ̣ ̉ vây chung ta không phai quan tâm t ́ ơi “phai lam nh ́ ̉ ̀ ư thê nao” ma chi điêu khiên băng ́ ̀ ̀ ̉ ̀ ̉ ̀ ̣ ̀ ́ ữa dữ liêu va cac thao tac tac đông lên d “lam viêc gi”. Đong goi giúp đông nhât gi ̀ ́ ́ ̀ ̣ ̀ ́ ́ ́ ̣ ữ liêu ̣ đo.́ 3.3. Tính đa hình (polymorphism) ́ ởi cung môt thông điêp đên nh Cho phep g ̀ ̣ ̣ ́ ững đôi t ́ ượng khac nhau cung co chung ́ ̀ ́ ̣ ̣ ̉ môt đăc điêm. 3.4. Tính kế thừa (inheritance) Giúp tạo đối tượng mới từ đối tượng có sẵn, bô sung nh ̉ ưng đăc tinh cân thiêt ̃ ̣ ́ ̀ ́ ́ ượng mơi. trong đôi t ́ Lơp đôi t ́ ́ ượng đa co đ ̃ ́ ược sử dung lai goi la l ̣ ̣ ̣ ̀ ơp c ́ ơ sở. Lơp th ́ ưa kê l ̀ ́ ớp cơ sở goi la l ̣ ̀ ơp dân xuât. ́ ̃ ́ CÂU HỎI, BÀI TẬP Xây dựng quy trình tổng quát về lớp HOCSINH 10
- Gợi ý: Tên lớp, các thuộc tính,.. YÊU CẦU, ĐÁNH GIÁ Các khái niệm cơ bản về lập trình Đặc điểm của đối tượng Các khái niệm cơ bản trong hướng đối tượng 11
- BÀI 2 CƠ BẢN VỀ C# Giới thiệu Ngôn ngữ C# khá đơn giản, chỉ khoảng hơn 80 từ khóa và hơn mười mấy kiểu dữ liệu được dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa to lớn khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại. Mục tiêu Củng cố kiến thức nền tảng về các kiểu dữ liệu, cấu trúc điều khiển, hàm thủ tục. Vận dụng các kiểu dữ liệu, cấu trúc điều khiển, hàm thủ tục vào các bài tập cơ bản. Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm. 2.1. Các kiểu dữ liệu cơ bản 2.1.1. Định nghĩa KDL là các loại dữ liệu và phạm vi giá trị của chúng trong bộ nhớ mà người lập trình sử dụng để lưu trữ. Có 2 loại : KDL dựng sẵn & KDL tự định nghĩa. C# cũng chia tập dữ liệu thành hai kiểu: giá trị và tham chiếu. Biến kiểu giá trị được lưu trong vùng nhớ stack, còn biến kiểu tham chiếu được lưu trong vùng nhớ heap. 2.1.2. Khai báo Số nguyên: Int a,b; Số thực: float x,y; Ký tự, logic: char c; bool T; 12
- Chuỗi ký tự: Kiểu string có thể chứa nội dung không giới hạn, vì đây là kiểu dữ liệu đối tượng được chứa ở bộ nhớ heap. Khai báo: string s = “Nguyen Van A”; Kiểu mảng: Mảng là một tập hợp các phần tử cùng một kiểu dữ liệu liên tiếp nhau và được truy xuất thông qua chỉ số. Chỉ số bắt đầu từ 0. Mảng một chiều []=new [Số phần tử]; VD: Khai báo mảng số nguyên arr gồm 5 phần tử int [] arr = new int [5]; Enum (kiểu liệt kê): Enum là một cách thức để đặt tên cho các trị nguyên (các trị kiểu số nguyên, theo nghĩa nào đó tương tự như tập các hằng), làm cho chương trình rõ ràng, dễ hiểu hơn VD1: enum Ngay {Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat}; Hai = 0; Ba = 1; … ; ChuNhat = 6 Struct (kiểu cấu trúc): Struct dùng để nhóm các dữ liệu cùng liên quan đến một đối tượng nào đó. Khai báo : struct 13
- { Danh sách các thuộc tính; } Truy xuất: .thuộc tính Ví dụ: struct SV { public string ten; public string maso; } static void Main(string[] args) { SV a; a.ten = "Le Van Teo"; a.maso = "002"; Console.WriteLine("Ten: "+a.ten+" Ma so: "+a.maso); Console.ReadLine(); } Bài tập cũng cố: Viết chương trình nhập vào thông tin: Mã số nhân viên Họ tên Hệ số lương (hs) 14
- Lương cơ bản (lcb) Phụ cấp (pc) In tổng lương ra màn hình theo công thức: Tổng lương = lcb*hs + pc 2.2. Các cấu trúc điều khiển Rẽ nhánh : if…else ̉ if (biêu th ưc điêu kiên) ́ ̀ ̣ { ́ ̣ ; } ̉ Nêu biêu th ́ ưc điêu kiên cho kêt qua khac không (true) thi th ́ ̀ ̣ ́ ̉ ́ ̀ ực hiên khôi lênh. ̣ ́ ̣ ́ ̣ ̣ ̉ Vi du: Nhâp vao sô nguyên n. Kiêm tra nêu n > 0 tăng n lên 1 đ ̀ ́ ́ ơn vi. Xuât kêt qua. ̣ ́ ́ ̉ static void Main(string[] args) { int n; Console.Write("Nhap vao mot so nguyen: "); n = int.Parse(Console.ReadLine()); if (n > 0) n++; Console.WriteLine("Ket qua: n = " + n); } 15
- ̉ if (biêu th ưc điêu kiên) ́ ̀ ̣ { ́ ̣ ; } else { ́ ̣ ; } ̉ Nêu biêu th ́ ưc điêu kiên cho kêt qua khac không thi th ́ ̀ ̣ ́ ̉ ́ ̀ ực hiên khôi lênh 1, ng ̣ ́ ̣ ược lai thi ̣ ̀ cho thực hiên khôi lênh th ̣ ́ ̣ ứ 2. Bài tập cũng cố: ̣ ́ ̀ ̀ ́ ̣ ơn nhât. Nhâp vao hai sô nguyên a, b. In ra man hinh gia tri l ̀ ́ ́ ́ ̣ ̀ ừ ban phim. Hay tim gia tri l Cho ba sô a, b, c đoc vao t ̀ ́ ̃ ̀ ́ ̣ ơn nhât cua ba sô trên va in ́ ́ ̉ ́ ̀ ̉ ra kêt qua. ́ Cấu trúc lựa chọn: ̉ switch (biêu thưc) ́ KQ phải là nguyên case n1: ̣ cac câu lênh ; ́ break ; case n2: ̣ cac câu lênh ; ́ break ; 16
- ……… case nk: ̣ ; ́ break ; ̣ [default: cac câu lênh] ́ break; Cấu trúc lặp while: ; ́ ̉ while () ́ ̀ ̣ ̣ ́ ̣ lênh/ khôi lênh; ̉ ̉ ́ ̣ ; Cấu trúc lặp for: for (;;) ̉ { ́ ̣ ; } Cấu trúc lặp do…while: do { ́ ̣ ; ̉ } while (biêu thưc ĐK); ́ Thực hiên khôi lênh cho đên khi biêu th ̣ ́ ̣ ́ ̉ ức điều kiện là false Cấu trúc lặp foreach: 17
- Sử dụng cho mảng foreach ( in ) { Khối lệnh; } Xét từng phần tử trong mảng VD: Tính tổng các phần tử chẵn trong mảng static void Main(string[] args) { int s=0; int [ ] a = new int [5] {3, 8, 7, 1, 6}; foreach(int m in a) if(m%2==0) s+=m; Console.WriteLine("Tong chan = " +s); } Bài tập cũng cố: ́ ương trinh đêm sô US cua sô nguyên d Viêt ch ̀ ́ ́ ̉ ́ ương. ́ ương trinh in ra man hinh hinh ch Viêt ch ̀ ̀ ̀ ̀ ữ nhât đăc kich th ̣ ̣ ́ ước (m, n nhâp t ̣ ừ ban ̀ phim). ́ ́ ̣ ̣ Vi du: Nhâp m=5, n=4 * * * * * * * * * * 18
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình lập trình hướng đối tượng - PGS TS Trần Đình Quế & KS Nguyễn Mạnh Hùng
173 p | 2241 | 1086
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 p | 1406 | 510
-
Giáo trình Lập trình hướng đối tượng C++ - Đặng Ngọc Hoàng Thành
208 p | 470 | 141
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 1
102 p | 186 | 48
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2
139 p | 129 | 37
-
Giáo trình Lập trình hướng đối tượng với C++
52 p | 188 | 33
-
Giáo trình Lập trình hướng đối tượng trong Java
33 p | 142 | 30
-
Giáo trình Lập trình hướng đối tượng: Phần 1
53 p | 65 | 13
-
Giáo trình Lập trình hướng đối tượng (Nghề: Lập trình viên máy tính - Cao đẳng) - Trường CĐ Nghề Kỹ thuật Công nghệ
94 p | 53 | 10
-
Giáo trình Lập trình hướng đối tượng (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề
68 p | 42 | 10
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 1 - Trần Thị Minh Châu, Nguyễn Việt Hà
150 p | 16 | 9
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 p | 21 | 8
-
Giáo trình Lập trình hướng đối tượng (Nghề: Lập trình máy tính) - CĐ Cơ Giới Ninh Bình
185 p | 60 | 8
-
Giáo trình Lập trình hướng đối tượng (Nghề: Công nghệ thông tin - Cao đẳng) - Trường CĐ nghề Kỹ thuật Công nghệ
63 p | 42 | 7
-
Giáo trình Lập trình hướng đối tượng (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
41 p | 38 | 7
-
Giáo trình Lập trình hướng đối tượng (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2022)
78 p | 9 | 7
-
Giáo trình Lập trình hướng đối tượng (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2023)
78 p | 14 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn