1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kỹ thuật lập trình: Chương 4 - ThS Trần Duy Thanh

58 21 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 2,51 MB

Nội dung

Bài giảng Kỹ thuật lập trình: Chương 4 Lớp và đối tượng do ThS Trần Duy Thanh biên soạn 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, thuộc tính, phương thức, operator, service method và support method,

Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Chương Lớp đối tượng Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 Thực Hàm  Xây dựng hàm để thực tính tố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; } } Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thơng Tin Đại Học Kinh Tế Luật Sử dụng tố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 tố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; } } Đạ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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 []arr) { int s = 0; foreach(int x in arr) Sum(1, 2, 4) { Sum() s += x; Sum(1, 5, -8,2) } return s; }  Ta truy ền đối số kiểu int vào cho phương thức Sum Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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ý b ởi biến đối tượng psA psB psB psA Vùng nhớ A Vùng nhớ B Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật 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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Alias chế gom rác tự động  Ví dụ: PhanSo psB = new PhanSo(1,4); psB Vùng nhớ B Sao chép tồn thơng tin Vùng nh B vào vùng nh A PhanSo psA = psB.copy(); psA Tức ta có đối tượng có thơng tin giống y xì nh ưng 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 Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật END ... Tế Luật 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õ... 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... 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 Khoa Hệ Thống Thông Tin Đại Học Quốc Gia TP.HCM Khoa Hệ Thống Thông Tin Đại Học Kinh Tế Luật Lập trình hướng đối

Ngày đăng: 11/05/2021, 01:22