intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Ochuong_999 Ochuong_999 | Ngày: | Loại File: DOC | Số trang:68

48
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

(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

Chủ đề:
Lưu

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

  1. Ủ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
  2. Bà Rịa – Vũng Tàu, năm 2016
  3. 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
  4. 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
  5. MỤC LỤC 3
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. { 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
  17. 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
  18. ̉ 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
  19. ……… 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2