Chương 3 Lập trình hướng đối tượng C phần 1

33 1.4K 1
Chương 3 Lập trình hướng đối tượng C phần 1

Đ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 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG C# Lê Quý Tài quytai3985@gmail.com Nội dung Lớp đối tượng Tạo huỷ đối tượng Truyền tham số Nạp chồng hàm Đóng gói liệu với thuộc tính Kế thừa đa hình Lớp trừu tượng giao diện Xử lý ngoại lệ Lớp đối tượng  Lớp kiểu cấu trúc mở rộng, kiểu mẫu chung cho đối tượng loại  Cú pháp: [phạm vi truy cập] [thuộc tính] class { //Khai báo thuộc tính //Khai báo phương thức } [phạm vi truy cập]: khả truy nhập thành phần liệu (public, private, internal, protected, internal protected) [thuộc tính]: static Phạm vi truy nhập public Có thể truy xuất phương thức lớp khác private Chỉ truy xuất phương thức lớp protected Có thể truy xuất phương thức lớp lớp dẫn xuất (derived) từ internal Có thể truy xuất phương thức lớp khối kết hợp (assembly) internal protected Có thể truy xuất phương thức lớp đó, lớp dẫn xuất từ lớp lớp khối kết hợp (assembly) với Ví dụ - Lớp hình chữ nhật class HCN { protected float Dai, Rong; public float ChuVi() { return (Dai + Rong )*2; } public float DienTich() { return Dai* Rong; } public void Nhap() { Console.WriteLine("Nhap chieu dai: "); Dai = float.Parse(Console.ReadLine()); Console.WriteLine("Nhap chieu rong: "); Rong = float.Parse(Console.ReadLine()); } } Chú ý  Các thành phần liệu xem biến toàn cục phương thức lớp (các phương thức lớp có quyền truy cập đến thành phần mà không cần khai báo lại)  Mặc định, mức độ truy cập private  Các lớp thuộc project xem khối kết hợp (assembly) Khai báo đối tượng  Cú pháp: Sử dụng từ khoá new ; = new ([các giá trị khởi tạo có]); Hoặc: = new ([các giá trị khởi tạo có]);  Chú ý   Sau khai báo biến đối tượng biến trỏ Sau cấp phát từ khố new biến trỏ tới đối tượng thực Truy cập thuộc tính/phương thức  Truy cập thuộc tính  .  Truy cập phương thức  .([danh sách đối số có])  Ví dụ:  Tạo đối tượng hình chữ nhật h HCN h; h = new HCN(); h.Nhap(); h.Xuat(); Tạo huỷ đối tượng  Khởi tạo đối tượng  Gọi phương thức tạo lập (constructor)   Phương thức tạo lập mặc định: CLR cung cấp người lập trình khơng định nghĩa Phương thức tạo lập người lập trình định nghĩa  Phương thức tạo lập có chức   Tạo đối tượng lớp chuyển sang trạng thái xác định (valid state) Phương thức tạo lập thường dùng để khởi tạo thuộc tính đối tượng Phương thức tạo lập mặc định  Mặc định tạo đối tượng lớp  Các thuộc tính khởi tạo giá trị mặc định Kiểu liệu Giá trị mặc định Numeric (int, long,…) bool false char ‘\0’ (null) reference null Truyền tham số  Mặc định tham số truyền cho phương thức kiểu tham trị    Một tham số tạo bị huỷ kết thúc phương thức Giá trị tham số truyền không thay đổi sau kết thúc phương thức Ví dụ: //Phương thức đổi chỗ số, truyền tham trị static void Swap1(int a, int b) { int temp; temp=a; a=b; b=temp; } Truyền tham chiếu  C# hỗ trợ truyền tham chiếu, sử dụng từ khoá:   ref: truyền tham chiếu, biến tham chiếu phải khởi tạo trước truyền out: truyền tham chiếu, biến tham chiếu không cần khởi gán trước truyền Trong phương thức phải có lệnh gán giá trị cho biến tham chiếu Ví dụ - truyền tham chiếu, từ khố ref //Phương thức đổi chỗ số, truyền tham chiếu, từ khoá ref static void Swap2(ref int a, ref int b) { int temp; temp = a; a = b; b = temp; Console.WriteLine("Trong phuong thuc: a={0}, b={1},",a,b); } static void Main(string[] args) { int n,m; n = 30; m = 40; Console.WriteLine("Truoc goi swap2: n = {0}, m={1},", n, m); Swap2(ref n, ref m); Console.WriteLine("Sau goi swap2: n = {0}, m = {1},", n, m); Console.ReadLine(); } Ví dụ - truyền tham chiếu, từ khố out //Phương thức thay đổi giá trị, sử dụng truyền tham chiếu, từ khoá out static void Change(out int a, out int b) { a = 100; b = 200; Console.WriteLine("Trong phuong thuc: a={0},b={1},", a,b); } static void Main(string[] args) { int n,m; Change (out n, out m); Console.WriteLine("Sau goi Change: n={0}, m={1},",n, m); Console.ReadLine(); } Nạp chồng hàm  Khi muốn có nhiều phương thức (hàm) tên, nhiều hàm với tham số đầu vào khác  sử dụng kĩ thuật nạp chồng hàm (overloading)  Để phân biệt hàm với nhau, vào hai yếu tố: Khác tên  Khác tham số kiểu liệu tham số Ví dụ:  void myMethod(int p1); void myMethod(int p1, int p2); void myMethod(int p1, string s1); Ví dụ - Nạp chồng hàm  Xây dựng lớp PhanSo class PhanSo { int Tu, Mau; //nạp chồng phương thức khởi tạo public PhanSo() { Tu = 0; Mau = 1; } public PhanSo(int x) { Tu = x; Mau = 1; } public PhanSo(int t, int m) { Tu = t; Mau = m; } public void InPhanSo() { Console.WriteLine("{0}/{1} ", Tu, Mau); } public PhanSo Cong(PhanSo PS2) { int TS = Tu * PS2.Mau + Mau * PS2.Tu; int MS = Mau * PS2.Mau; //Gọi phương thức tạo tham số PhanSo KetQua = new PhanSo(TS, MS); return KetQua; } Ví dụ - Nạp chồng hàm static void Main(string[] args) { PhanSo p1 = new PhanSo(); Console.Write("Phan so p1 = "); p1.InPhanSo(); PhanSo p2 = new PhanSo(5); Console.Write("Phan so p2 = "); p2.InPhanSo(); int ts, ms; Console.Write("Nhap tu so: "); ts = int.Parse(Console.ReadLine()); Console.Write("Nhap mau so: "); ms = int.Parse(Console.ReadLine()); PhanSo p3 = new PhanSo(ts, ms); Console.Write("Phan so p3 = "); p3.InPhanSo(); //p1=p2+p3 p1 = p2.Cong(p3); Console.Write("Phan so p1 = p2 + p3 = "); p1.InPhanSo(); Console.ReadLine(); } Bài tập nhà  Bài Xây dựng chương trình làm việc với phân số  Xây dựng lớp PhanSo gồm: class PhanSo{ private int TuSo; //Tử số private int MauSo; //Mẫu số }  Xây dựng phương thức lớp PhanSo      Hàm tạo (khởi tạo tử số = 0, mẫu số = 1) Nhập phân số In phân số Rút gọn phân số Tính tổng/hiệu/tích/thương phân số Bài tập nhà  Bài Xây dựng chương trình làm việc với điểm khơng gian chiều  Khai báo lớp Điểm gồm: class Diem{ private double x; //Hoành độ private double y; //Tung độ }  Xây dựng phương thức      Hàm tạo không tham số: khởi tạo điểm toạ độ (0,0) Hàm tạo tham số x, y: khởi tạo điểm có toạ độ (x,y) Nhập toạ độ In toạ độ điểm hình Tính khoảng cách điểm Bài tập nhà  Bài Chương trình làm việc với mảng chiều Xây dựng lớp Mang1Chieu gồm  class Mang1Chieu{ private int n; //Số phần tử mảng int[ ] a; //Mảng chiều } Xây dựng phương thức lớp Mang1Chieu  Hàm tạo Mang1Chieu(int n) để khởi tạo mảng gồm n phần tử  Nhập mảng  In mảng hình  Sắp xếp mảng  public void sapxep(int thutu) //thutu = 0: tăng dần, thutu=1: giảm dần  Tìm kiếm public int timkiem(int m) //Trả -1 không thấy, trả vị trí tìm thầy Bài tập nhà  Bài Xây dựng chương trình làm việc với ma trận  Xây dựng lớp MaTran gồm class MaTran{ private int m; //Số dòng private int n; //Số cột private int[ , ] a; //Mảng chiều }  Xây dựng phương thức lớp MaTran     Hàm tạo MaTran(int m, int n) để khởi tạo ma trận m dòng, n cột Nhập ma trận In ma trận hình Cộng ma trận Bài tập nhà  Xây dựng phương thức lớp MaTran     Tính hiệu ma trận Tính tích ma trận Tìm ma trận chuyển vị Kiểm tra ma trận có phải ma trận vuông hay không? Bài tập nhà  Bài Xây dựng lớp NhanVien  Các thành phần liệu   Họ tên, Năm sinh, Địa chỉ, Lương bản, Hệ số, Phụ cấp, Tổng tiền Các phương thức     Hàm tạo không tham số Nhập nhân viên Tính lương: Tổng tiền = Lương x Hệ số + Phụ cấp In nhân viên hình Bài tập nhà  Bài Chương trình quản lý Sinh viên  Xây dựng lớp SinhVien  Các thành phần liệu:   Các hàm tạo    Mã sinh viên, Họ tên, Năm sinh, Điểm lập trình, Điểm CSDL , Điểm TB (trong đó: Điểm TB=Điểm Lập trình + Điểm CSDL)/2 Hàm tạo khơng tham số Hàm tạo có tham số (Họ tên, năm sinh, quê quán, Điểm lập trình, Điểm CSDL) Các phương thức   Nhập thông tin sinh viên In thơng tin sinh viên hình Bài tập nhà  Xây dựng lớp DanhSach Các thành phần liệu class DanhSach{  private int n; //Số lượng sinh viên private SinhVien[ ] DS; //Mảng chứa danh sách Sinh viên }  Các phương thức     Nhập danh sách sinh viên In thông tin sinh viên có danh sách Liệt kê sinh viên có điểm TB>8.0 Sắp xếp danh sách theo Mã sinh viên

Ngày đăng: 26/05/2016, 10:39

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung

  • 1. Lớp và đối tượng

  • Phạm vi truy nhập

  • Ví dụ - Lớp hình chữ nhật

  • Chú ý

  • Khai báo đối tượng

  • Truy cập thuộc tính/phương thức

  • 2. Tạo và huỷ đối tượng

  • Phương thức tạo lập mặc định

  • Xây dựng phương thức tạo lập

  • Ví dụ - Phương thức tạo lập

  • Ví dụ - Phương thức tạo lập (tiếp)

  • Phương thức tạo lập sao chép

  • Ví dụ - phương thức tạo lập sao chép

  • Từ khoá this

  • Từ khoá this

  • Phương thức huỷ (destructor)

  • 3. Truyền tham số

  • Truyền tham chiếu

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

Tài liệu liên quan