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 Lớp đố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 Lập trình truyền thống lập trình hướng đối tượng Các khái niệm liên quan tới Lớp Đối tượng Các mức truy xuất Các thành phần lớp Thuộc tính, phương thức Operator Service Method Support Method Overloading method Parameter list method Alias 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 Phương pháp tiếp cận lập trình truyền thống Lập trình tuyến tính Lập trình cấu trúc Ưu điểm Chương trình rõ ràng, dễ hiểu, dễ theo dõi Tư giải thuật rõ ràng 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 liệu, phải thay đổi giải thuật Phải giải mối quan hệ vĩ mô module phần mềm dự án 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 Đặc điểm Tập trung vào liệu thay cho hàm Chương trình chia thành đối tượng độc lập Cấu trúc liệu thiết kế cho đặc tả đối tượng Dữ liệu che giấu, bao bọc Các đối tượng trao đổi với thông qua hàm Chương trình thiết kế theo hướng tiếp cận từ 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 Một số ưu điểm bật Khơng có nguy liệu bị thay đổi tự ch ương trình Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi mã nguồn đối tượng khác Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên Phù hợp với 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 Đối tượng Khái niệm đối tượng (object) lập trình hướng đối tượng giống đối tượng cụ thể giới thực Mỗi đối tượng có thuộc tính hành vi riêng Thuộc tính (attribute) mơ tả đặc điểm đối tượng Hành vi phương thức hoạt động đối tượng, gọi tắt 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 Đối tượng Ví dụ: Phân số Đặc điểm Tử số Mẫu số 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 Đối tượng Ví dụ: xe Màu trắng cửa 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 Đối tượng Đối tượng: XeHoi Hiệu xe Màu xe Số bánh xe Số cửa Chạy tới Chạy lui Dừng xe Tên đối tượng Thuộc tính 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 Đối tượng Các đối tượng có đặc điểm (thuộc tính phương thức) giống gom nhóm thành lớp để phân biệt với đối tượng khác dễ quản lý Một lớp (class) phân loại đối tượng kiểu (type) đối tượng Ví dụ: − Các xe Toyota, Honda, Porsche thuộc lớp xe Các 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 Hàm Xây dựng hàm để thực tính toán class PhanSo { private int tuSo; private int m auSo; public PhanSo Cong(PhanSo b) { PhanSo c = new PhanSo(); c.TuSo = this.M auSo * b.TuSo + this.TuSo * b.M auSo; c.M auSo = this.M auSo * b.M auSo; 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 toán tử public static PhanSo operator + (PhanSo trai,PhanSo phai) { PhanSo c = new PhanSo(); c.TuSo = trai.M auSo * phai.TuSo + trai.TuSo * phai.M auSo; c.M auSo = trai.M auSo * phai.M auSo; return c; } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Sử dụng toán tử Các toán tử logic phải đôi với > < >= && CanhB > && CanhC > && (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 Overloading Method: Là đặc điểm lớp có nhiều phương thức tên khác Signature Signature bao gồm: Số lượng đối số kiểu liệu đối số thứ tự đối số Kiểu liệu trả khơng tính vào signature Lợi ích Overloading khả tái sử dụng lại phương thức giúp việc gọi hàm “uyển chuyển” Các Constructor trường hợp đặc biệt 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 C# cung cấp loại phương thức đặc biệt Parameter List, trường hợp đặc biệt 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) Ta truyền đối số kiểu int vào cho phương thức Sum Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Khoa Hệ Thống Thông Tin Alias chế gom rác tự động Alias đặc điểm mà nhớ có nhiều biến đối tượng trỏ tới Ví dụ: PhanSo psA=new PhanSo(1,5); PhanSo psB=new PhanSo(3,7); Lúc RAM có nhớ cấp phát cho đối tượng phân số quản lý biến đối tượng psA psB 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 chế gom rác tự động Giả sử ta thực lệnh: psA=psB; Ngơn ngữ nói “Phân số A Phân số B”, hệ thống máy tính làm việc theo chế “Phân số A trỏ tới vùng nhớ mà phân số B quản lý” Hay nói cách khác “Vùng nhớ B” có biến đối tượ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 chế gom rác tự động Như xuất Alias “vùng nhớ B” Lúc xảy tượng sau: Tại “vùng nhớ B”, psA thay đổi thông tin làm cho psB thay đổi thơng tin (vì đối tượng quản lý vùng nhớ) “Vùng nhớ A” khơng cịn đối tượng tham chiếu tới, lúc hệ thống tự động thu hồi nhớ (hủy vùng nhớ A cấp trước đó), chế gọi 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 chế gom rác tự động Đơi q trình thực phần mềm ta có nhu cầu chép đối tượng (tạo thêm đối tượng giống y xì đối tượng cũ nằm nhớ khác, để ta tự thay đổi thông tin đối tượng chép mà không làm ảnh hưởng tới đối tượng gốc) C# hỗ trợ hàm MemberwiseClone để 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 chế gom rác tự động Ví dụ: PhanSo psB = new PhanSo(1,4); psB Vùng nhớ B Sao chép toàn thông tin PhanSo psA = psB.copy(); Vùng nhớ B vào vùng nhớ A Tức psA ta có đối tượng có thơng tin giống y xì nằm nhớ hồn tồn khác Vùng nhớ A psA thay đổi khơng ảnh hưởng tới psB 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 ... niệm 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 Đối tượng Tính kế thừa: Ví dụ: Khoa Hệ Thống Thơng Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật. .. 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 Phương pháp tiếp cận lập trình truyền thống Lập trình tuyến tính Lập trình cấu trúc... c; } Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật Sử dụng toán tử Các toán tử logic phải đôi với > < >=