Lập trình hướng đối tượng trong C

11 141 0
Lập trình hướng đối tượng trong C

Đ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

CHƯƠNG 2: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG C# Lớp - Khái niệm lớp (Class)   Lớp tập hợp đối tượng (object) có chất Class = method + properties - Method: Là phương thức class (là Function, procedure) Một phương thức quy định phạm vi sử dụng thông qua từ khóa truy cập (private, public, protecd…) Phương thức gọi hành vi, thể hành động, chức đối tượng - Properties: Là thuộc tính (đặc điểm) đối tượng gọi biến thành viên lớp, biến quy định phạm vi sử dụng thông qua từ khóa truy cập  Phân loại lớp + Lớp xây dựng sẵn trong ngơn ngữ lập trình: Các class chứa các không gian tên Ví dụ Lớp Math, string, array  Math: Thư viện chứa hàm toán học Sqrt(): trả bậc hai số kiểu double Pow(): hàm mũ Round(), sin(), cos(), floor()… Số pi, số e thuộc tính số có sẵn   String: lớp chứa hàm xử lý chuỗi Array: Chứa hàm xử lý mảng + Lớp người lập trình xây dựng có cú pháp sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class Class1 { // Định nghĩa biến // Định nghĩa phương thức } } Ví dụ Xây dựng class clstong để tính tổng hai số nguyên class clstong{ // khai báo thuộc tính private int a,b; // khai báo phương thức public int tong(int a,int b) { Return a+b; } } Trên đây, hai biến a,b biến thành viên lớp clstong Hai biến quy định phạm vi kiểu private (chỉ thành phần bên class nhìn thấy, nghĩa sử dụng chúng đối tượng bên ngồi khơng dùng a b) Phương thức tong(a,b) dùng để tính tổng hai số nguyên khai báo pham vi public (cho phép đối tượng bên ngồi nhìn thấy sử dụng thơng qua chế chuyền thông điệp) Phương thức - Cú pháp Access_specifier modifier datatype method_name(parameter_list) { //body of method } Trong đó:            Access_specifier: Chỉ định truy cập vào phương thức Modifier: Cho phép bạn đặt thuộc tính cho phương thức Datatype: Kiểu liệu mà phương thức trả về, khơng có giá trị trả về, kiểu liệu void Method_name: Tên phương thức Parameter_list: Chứa tên tham số sử dụng phương thức kiểu liệu, dấu phẩy dùng để phân cách tham số Phương thức khởi tạo lớp (contructor) Là phương thức dùng để khởi tạo giá trị cho biến thành viên lớp Thường dùng cần che dấu kiểm sốt(Đóng gói) liệu Có tên trùng với tên class chứa Khơng có giá trị trả (Kiểu trả void) Được gọi đến khởi tạo INSTANCE lớp   Trong lớp nhiều phương thức khởi tạo (hiện tương nạp chồng), nhiên phương thức phải khác danh sách tham số Cấu trúc contructor Phạm Vi > < Void>< Danh sách tham số > { // Các câu lệnh } Ví dụ tạo contructor cho lớp clstong class clstong { private int a,b; public void clstong(int oa, int ob) { If ((oa>0) &&(ob>b)) a=oa;b=ob; } Giải thích: + Contructor cho phép khởi tạo giá trị cho biến thành viên a,b với hai tham số truyền vào tương ứng oa>0 ob>0 + Trong trường hợp cần che dấu liệu biến lớp cần khai báo pham vi sử dụng private cần xây dựng phương thức set(), get() Set(): thiết lập giá trị cho biến lớp Get(): lấy giá trị từ bên ngồi vào - Phương thức thơng thường : Được gọi hàm thành phần lớp Cấu trúc: < Phạm vi > < Tên PT> < [ DSTS]) { // biến cục //các câu lệnh Return bt; } Giải thích: + < phạm vi>: Cho biết phạm vi sử dụng phương thức  private: Chỉ cho phép sử dụng class   public: Cho phép đối tương bên sử dụng (phá vỡ ngun lý đóng gói encapsulation ) proteced: Khơng cho phép lớp thừa kế + < Kiểu trả >: kiểu liệu sở (double, int, string…) + < [DSTS]): Dùng nhận giá trị đầu vào cho phương thức + < Tên phương thức >: Do người dùng đặt tuân theo quy tắc đặt tên biến + < return bt; >: Câu lệnh trả giá trị cho hàm Ví dụ public int tonghaiso(int a,int b) { // biến cục s Int s; // câu lệnh s=a+b; return s; // câu lệnh trả giá trị cho hàm } Nhận xét - Có thể dùng hàm thành phần làm phương thức khởi tạo cho biến thành viên lớp Ví dụ private void kt(int oa,int ob) { a=oa;b=ob;} Thuộc tính - Thuộc tính đối tượng dùng để mơ tả tính chất cho đối tượng Ví dụ Trong đối Diem – điểm không gian hai chiều ta có thuộc tính x,y Trong lớp, thuộc tính gọi biến thành viên lớp Là nguồn liệu sử dụng cho phương thức bên lớp Ta truy cập vào biến lớp tùy theo phạm vi quy định sử dụng biến  Cú pháp khai báo thuộc tính: ; + PVTC: Phạm vi truy cập biến cho biết phạm vi sử dụng biến    Private: Chỉ cho phép sử dụng class Public: Cho phép đối tương bên ngồi sử dụng (phá vỡ ngun lý đóng gói encapsulation) Proteced: Khơng cho phép lớp thừa kế + KDL: kiểu trả biến + Danh sách biến: ngăn cách dấu phẩy Ví dụ Định nghĩa lớp điểm khơng gian hai chiều: Class DIEM { // khai báo biến lớp private double x,y; // định nghĩa hàm thành phần public double khoang_cach() {// mã lệnh; } } Thí dụ thiết kế lớp Xây dựng lớp clsmaxmin gồm:    Các biến thành viên a,b Phương thức khởi tạo cho biến thành viên a,b Phương thức timmin(), timmax() để tìm giá trị nhỏ nhất, lớn a b Mã lệnh: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class clsmaxmin { // thuoc tinh a,b public int a, b; //phuong thuc khoi tao gia tri a va b public void clsmaxmin(int oa, int ob) { a = oa; b = ob; } //phuong thuc timmin() public int timmin(int a, int b) { int min; if (a > b) = a; else = b; return min; } //phuong thuc timmax() public int timmax(int a, int b) { int max; if (a > b) max = a; else max = b; return max; } } } Nạp chồng Trong lớp có nhiều phương thức trùng tên phải khác danh sách tham số (hiện tượng nạp chồng ) Ví dụ: Trong phạm vi lớp ta xây dưng hai phương thức tên A(a,b), A(a,b,c) hai phương thức tên khác danh sách tham số Thừa kế - Khái niệm kế thừa + Tính thừa kế cho phép lớp chia sẻ thuộc tính phương thức định nghĩa nhiều lớp khác + Kế thừa cho phép thừa hưởng mã lệnh có, giảm thiểu cơng việc lập trình viên, Đây điểm mạnh lập trình OOP ( lập trình hướng đối tượng) Thơng qua khả kế thừa, chương trình gắn gọn, dễ hiểu, Khơng phải viết lại mã lệnh thực công việc có tính chất kế thừa  Khai báo lớp kế thừa: public class A : B { // Các thuộc tính // Các phương thức } Giải thích:   Trên A lớp định nghĩa, bên có chứa thành phần phương thức thuộc tính Ta xây dựng lớp B kế thừa từ lớp A Khi B thừa kế thành phần A Trong B ta xây dựng thêm phương thức thuộc tính tùy theo mục đích kế thừa A gọi lớp cha, B gọi lớp Ví dụ Xây lớp clsmaxmin sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class clsmaxmin { // thuoc tinh a,b public int a, b; //phuong thuc khoi tao gia tri a va b public void khoitao(int oa, int ob) { a = oa; b = ob; } //phuong thuc timmin() public int timmin(int a, int b) { int min; if (a > b) = a; else = b; return min; } //phuong thuc timmax() public int timmax(int a, int b) { int max; if (a > b) max = a; else max = b; return max; } } } Sau ta xây dựng lớp thừa kế clsmaxminTK bổ sung thuộc tính c,d, phương thức tìm max, bốn số nguyên a,b,c,d Khi lớp clsmaxmin từa hưởng tất thành phần cs lớp clsmaxmin Lớp clsmaxminTK xây dựng sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class clsmaxminTK: clsmaxmin { // khai bao thuoc tinh cua lop ke thua public int c, d; public void khoitaoTK(int oc, int od) { c = oc; d = od; } //dinh nghia phuong thuc timmaxTK() public int timmaxTk(int a, int b, int c, int d) { return(timmax(timmax(a,b),timmax(c,d))); } public int timminTk(int a, int b, int c, int d) { return (timmin(timmin(a, b), timmin(c, d))); } } } Ví dụ Xây dựng lớp clssinhvien sau: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class clssinhvien { public string hoten; public string masv; public string diachi; public string sdt; public int cn; public float dcc; public float dtx; public float dgk; public float dt; public float diemtrungbinh(float dcc, float dtx, float dgk, float dt) { return (dcc * 10 + dtx * 10 + dgk * 20 + dt * 60) / 100; } public int chuyencan(int cn) { if (cn >= 5) return 0; return 1; } } } Sau ta xây dựng lớp thừa kế clsdiem để thực xếp loại theo điểm trung bình môn học: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class clsdiem:clssinhvien { public string monhoc; public int xeploai(float dcc, float dtx, float dgk, float dt) { float dtb = diemtrungbinh(dcc, dtx, dgk, dt); if (dtb >= 85) return 0; else if (dtb >= 70) return 1; else if (dtb >= 55) return 2; else if (dtb >= 40) return 3; return 4; } } } Tham khảo thêm: https://itstudent.net/vi/tin-t%E1%BB%A9c/chuy%C3%AAnm%E1%BB%A5c/l%E1%BA%ADp-tr%C3%ACnh/l%E1%BB%9Bp-v%C3%A0-%C4%91%E1%BB%91it%C6%B0%E1%BB%A3ng-trong-l%E1%BA%ADp-tr%C3%ACnh-c-sharp.html Tham khảo: http://p2share.com/oop-lop-va-doi-tuong-trong-c.html?i=1 ... nạp chồng), nhiên phương th c phải kh c danh sách tham số C u tr c contructor Phạm Vi > < Void>< Danh sách tham số > { // C c câu lệnh } Ví dụ tạo contructor cho lớp clstong class clstong... c ng vi c lập trình viên, Đây điểm mạnh lập trình OOP ( lập trình hướng đối tượng) Thơng qua khả kế thừa, chương trình gắn gọn, dễ hiểu, Khơng phải viết lại mã lệnh th c công vi c có tính chất kế... namespace WindowsFormsApplication1 { class clssinhvien { public string hoten; public string masv; public string diachi; public string sdt; public int cn; public float dcc; public float dtx; public

Ngày đăng: 04/05/2018, 13:40

Từ khóa liên quan

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

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

Tài liệu liên quan