Bài giảng môn học Kỹ thuật lập trình C: Chương 4 - Đại học Kinh tế Luật

58 147 0
Bài giảng môn học Kỹ thuật lập trình C: Chương 4  - Đại học Kinh tế Luật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Kỹ thuật lập trình C - Chương 4: Lớp và đối tượng cung cấp cho người học các kiến thức: Lập trình truyền thống và lập trình hướng đối tượng, các khái niệm liên quan tới Lớp và Đối tượng, các mức truy xuất, các thành phần của lớp,... Mời các bạn cùng tham khảo.

Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Chương 4 Lớp và đối tượng Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Nội dung v Lập trình truyền thống và lập trình hướng đối tượng v Các khái niệm liên quan tới Lớp và Đối tượng v Các mức truy xuất v Các thành phần của lớp v Thuộc tính, phương thức v Operator v Service Method và Support Method v Overloading method v Parameter list method v Alias và cơ chế gom rác tự động Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Lập trình truyền thống q Phương pháp tiếp cận của lập trình truyền thống ü Lập trình tuyến tính ü Lập trình cấu trúc q Ưu điểm ü Chương trình rõ ràng, dễ hiểu, dễ theo dõi ü Tư duy giải thuật rõ ràng q Khuyết điểm ü Khơng hỗ trợ việc sử dụng lại mã nguồn ü Khi thay đổi cấu trúc dữ liệu, phải thay đổi giải thuật.  ü Phải giải quyết các mối quan hệ vĩ mơ giữa các module phần  Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Lập trình hướng đối tượng q Đặc điểm cơ bản ü Tập trung vào dữ liệu thay cho các hàm.  ü Chương trình được chia thành các đối tượng độc lập.  ü Cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng ü Dữ liệu được che giấu, bao bọc.  ü Các đối tượng trao đổi với nhau thơng qua các hàm ü Chương trình được thiết kế theo hướng tiếp cận từ dưới lên.  Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Lập trình hướng đối tượng q Một số ưu điểm nổi bật ü Khơng có nguy cơ dữ liệu bị thay đổi tự do trong chương trình.  ü Khi  thay  đổi  cấu  trúc  dữ  liệu  của  một  đối  tượng,  khơng  cần  thay đổi mã nguồn của các đối tượng khác ü Có thể sử dụng lại mã nguồn, tiết kiệm tài ngun ü Phù hợp với các dự án phần mềm lớn, phức tạp Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Khái niệm Lớp và Đối tượng v Khái  niệm  đối  tượng  (object)  trong  lập  trình  hướng đối tượng giống như một đối tượng cụ thể  trong thế giới thực v Mỗi  đối  tượng  có  các  thuộc  tính  và  các  hành  vi  riêng § Thuộc  tính  (attribute)  mơ  tả  đặc  điểm  của  đối  tượng § Hành  vi  là  phương  thức  hoạt  động  của  đối  tượng, gọi tắt là phương thức (method) Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khái niệm Lớp và Đối tượng v Ví dụ: Phân số v Đặc điểm § Tử số § Mẫu số v Thao tác § Cộng, trừ, nhân, chia § Tối giản § Nghịch đảo Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khái niệm Lớp và Đối tượng v Ví dụ: xe hơi § Màu trắng § 4 cửa § 4 bánh § Hiệu Toyota § Chạy tới § Chạy lui § Xe dừng §… Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Khái niệm Lớp và Đối tượng v Đối tượng: v XeHoi v Hiệu xe v Màu xe v Số bánh xe v Số cửa v Chạy tới v Chạy lui v Dừng xe v Tên đối tượng v Thuộc tính v Phương thức Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Khái niệm Lớp và Đối tượng v Các  đối  tượng  có  các  đặc  điểm  (thuộc  tính  và  phương  thức)  giống  nhau  được  gom  nhóm  thành  một lớp để phân biệt với các đối tượng khác và dễ  quản lý ⇒Một  lớp  (class)  là  sự  phân  loại  của  các  đối  tượng  hay là kiểu (type) của đối tượng v Ví dụ:  − Các  chiếc  xe  Toyota,  Honda,  Porsche  thuộc  lớp  xe hơi • Các  con  chó  giữ  nhà,  chó  săn,  chó  kiểng  thuộc  lớp chó Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Thực hiện bằng Hàm v Xây dựng hàm để thực hiện tính tốn class PhanSo { private int tuSo; private int mauSo; public PhanSo Cong(PhanSo b) { PhanSo c = new PhanSo(); c.TuSo = this.MauSo * b.TuSo + this.TuSo * b.MauSo; c.MauSo = this.MauSo * b.MauSo; return c; } } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Sử dụng tốn tử ublic static PhanSo operator +(PhanSo trai, PhanSo phai PhanSo c = new PhanSo(); c.TuSo = trai.MauSo * phai.TuSo + trai.TuSo * phai.MauSo; c.MauSo = trai.MauSo * phai.MauSo; return c; Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Sử dụng toán tử v Các tốn tử logic phải đi đơi với nhau § > và < § >= và  0 && CanhB > 0 && CanhC > 0 &&                 (CanhA + CanhB) > CanhC &&                 (CanhB + CanhC) > CanhA &&                 (CanhA + CanhC) > CanhB)                 return true;             return false;         }         public int ChuVi()        {             if (laHopLe() == false)                 return ­1;             return CanhA + CanhB + CanhC;         }     } Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Overloading Method v Overloading Method: ü Là  đặc  điểm  trong  cùng  1  lớp  có  nhiều  phương  thức cùng tên nhưng khác nhau về Signature.  ü Signature bao gồm: Số lượng các đối số hoặc kiểu  dữ liệu các đối số hoặc thứ tự các đối số ü Kiểu dữ liệu trả về khơng được tính vào signature ü Lợi ích của Overloading là khả năng tái sử dụng lại  phương thức và giúp việc gọi hàm “uyển chuyển” ü Các  Constructor  là  trường  hợp  đặc  biệt  của  Overloading Method Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Overloading Method float tryMe(int x) { return x + 375; } Invocation result = tryMe(25, 4.32) float tryMe(int x, float y) { return x*y; } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Parameter List Method v C#  cung  cấp  một  loại  phương  thức  đặc  biệt  đó  là  Parameter List, cũng là một trường hợp đặc biệt của  Overloading Method public int Sum(params int { int s = 0; foreach(int x in arr) { s += x; } return s; } []arr) Sum(1, 2, 4) Sum() Sum(1, 5, -8,2) v Ta có thể truyền bao nhiêu đối số kiểu int vào cho  phương thức Sum cũng được Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Alias và cơ chế gom rác tự động v Alias là đặc điểm mà trên một ơ nhớ có nhiều biến  đối tượng cùng trỏ tới v Ví dụ: PhanSo psA=new PhanSo(1,5); PhanSo psB=new PhanSo(3,7); Lúc này trên thanh RAM sẽ có 2 ơ nhớ cấp phát cho 2  đối tượng phân số được quản lý bởi 2 biến đối tượng  psA và psB psB psA Vùng  nhớ A Vùng  nhớ B Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Alias và cơ chế gom rác tự động v Giả sử ta thực hiện lệnh:  psA=psB;  Ngơn ngữ nói “Phân số A bằng Phân số B”, nhưng  hệ thống máy tính sẽ làm việc theo cơ chế “Phân số A  trỏ tới vùng nhớ mà phân số B đang quản lý”. Hay nói  cách khác “Vùng nhớ B” bây giờ có 2 biến đối tượng  cùng trỏ tới(cùng quản lý) psB psA Vùng  nhớ A Vùng  nhớ B Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Alias và cơ chế gom rác tự động v Như  vậy  đã  xuất  hiện  Alias  ở  “vùng  nhớ  B”.  Lúc  này sẽ xảy ra 2 hiện tượng như sau: v v Tại “vùng nhớ B”, nếu psA thay đổi thơng tin sẽ làm cho  psB thay đổi thơng tin (vì cả 2 đối tượng này cùng quản  lý một vùng nhớ) “Vùng nhớ A” khơng cịn đối tượng nào tham chiếu tới,  lúc  này  hệ  thống  sẽ  tự  động  thu  hồi  bộ  nhớ  (hủy  vùng  nhớ  A  đã  cấp  trước  đó),  cơ  chế  này  gọi  là  cơ  chế  gom  rác tự động psB psA Vùng  nhớ A Vùng  nhớ B Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin Alias và cơ chế gom rác tự động v Đơi  khi  trong  q  trình  thực  hiện  phần  mềm  ta  có  nhu  cầu  sao  chép  đối  tượng  ra  (tạo  thêm  một  đối  tượng giống y xì đối tượng cũ nhưng nằm  ở ơ nhớ  khác, để ta có thể tự do thay đổi thơng tin trên đối  tượng  sao  chép  mà  không  làm  ảnh  hưởng  tới  đối  tượng  gốc).  C#  hỗ  trợ  chúng  ta  hàm  MemberwiseClone để sao chép đối tượng public PhanSo copy() { return this.MemberwiseClone() as PhanSo; } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Alias và cơ chế gom rác tự động v Ví dụ: PhanSo psB = new PhanSo(1,4); psB Vùng  nhớ B Sao chép tồn bộ thơng tin trong Vùng  PhanSo psA = psB.copy(); nhớ B vào vùng nhớ A  Tức là ta có  psA 2 đối tượng có thơng tin giống nhau y  xì  nhưng  nằm  trên  2  ơ  nhớ  hồn  tồn  khác nhau Vùng  nhớ A psA thay đổi khơng ảnh hưởng gì tới psB và ngược lại Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thơng Tin END ... Alias và cơ chế gom rác tự động Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Khoa Hệ Thống Thơng Tin Lập? ?trình? ?truyền thống q Phương pháp tiếp cận của? ?lập? ?trình? ?truyền thống ü Lập? ?trình? ?tuyến tính ü Lập? ?trình? ?cấu trúc... Khái niệm này sẽ? ?trình? ?bày chi tiết ở? ?chương? ?sau Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Khái niệm Lớp và Đối tượng v Tính kế thừa: v Ví dụ: Khoa Hệ Thống Thơng Tin Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật. .. c; Đại? ?Học? ?Quốc Gia TP.HCM Đại? ?Học? ?Kinh? ?Tế? ?Luật Sử dụng tốn tử v Các tốn tử logic phải đi đơi với nhau § > và < § >= và 

Ngày đăng: 11/01/2020, 19:24

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Slide 3

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan