Đang tải... (xem toàn văn)
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à