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

Lập trình windows C# - Chương 5 docx

31 282 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 31
Dung lượng 652,5 KB

Nội dung

Lớp và Đối tượng Lớp và Đối tượng dqtk4c65@gmail.com dqtk4c65@gmail.com 2 2 /36 /36 Nội dung Nội dung  Khai báo lớp đơn giản Khai báo lớp đơn giản  Đối tượng Đối tượng  Phạm vi truy xuất thành phần lớp Phạm vi truy xuất thành phần lớp  Đối tượng this Đối tượng this  Phương thức khởi tạo Phương thức khởi tạo  Thành phần tĩnh Thành phần tĩnh  Thành phần hằng Thành phần hằng 3 3 /36 /36 1. Khai báo lớp đơn giản 1. Khai báo lớp đơn giản  Cú pháp: Cú pháp: class <TênLớp> class <TênLớp> { { Khai báo các thuộc tính Khai báo các thuộc tính Khai báo các phương thức Khai báo các phương thức } }  Khai báo thuộc tính: Khai báo thuộc tính: Kiểu tênThuộcTính; Kiểu tênThuộcTính; 4 4 /36 /36 1. Khai báo lớp đơn giản {2} 1. Khai báo lớp đơn giản {2}  Khai báo phương thức: Khai báo phương thức: Kiểu tênPhươngThức(ds Tham số) Kiểu tênPhươngThức(ds Tham số) { { Các lệnh của phương thức; Các lệnh của phương thức; return kếtQuả; return kếtQuả; } } 5 5 /36 /36 1. Khai báo lớp đơn giản {3} 1. Khai báo lớp đơn giản {3}  Ví dụ: khai báo lớp phân số đơn giản. Ví dụ: khai báo lớp phân số đơn giản. class PS class PS { { int tu, mau; int tu, mau; void hienThi() void hienThi() {System.console.writeln (tu+“/”+mau);} {System.console.writeln (tu+“/”+mau);} double giaTri() double giaTri() {return (double)tu/mau;} {return (double)tu/mau;} } } 6 6 /36 /36 2. Đối tượng 2. Đối tượng  Đối tượng được tạo từ lớp theo cú pháp: Đối tượng được tạo từ lớp theo cú pháp: new TênLớp(); new TênLớp(); • Ví dụ: new PS(); Ví dụ: new PS(); • Sẽ cấp phát vùng nhớ lưu đối tượng. Sẽ cấp phát vùng nhớ lưu đối tượng. • Trong C# vùng nhớ cấp phát cho đối tượng Trong C# vùng nhớ cấp phát cho đối tượng là Heap. là Heap. 7 7 /36 /36 2. Đối tượng {2} 2. Đối tượng {2}  Tham chiếu: Tham chiếu: • Để thao tác với đối tượng cần có tên, gọi là tham Để thao tác với đối tượng cần có tên, gọi là tham chiếu. chiếu. • Khai báo tham chiếu: Khai báo tham chiếu: TênLớp tênThamChiếu; TênLớp tênThamChiếu; • Ví dụ: PS p; Ví dụ: PS p; • Tham chiếu đến đối tượng: Tham chiếu đến đối tượng: tênThamChiếu = new TênLớp(); tênThamChiếu = new TênLớp(); • Ví dụ: p = new PS(); Ví dụ: p = new PS(); • Phép gán tham chiếu: Phép gán tham chiếu: tênThamChiếu1 = tênThamChiếu2; tênThamChiếu1 = tênThamChiếu2; 8 8 /36 /36 2. Đối tượng {3} 2. Đối tượng {3}  Thao tác với đối tượng qua tham chiếu: Thao tác với đối tượng qua tham chiếu: • Thao tác với thuộc tính: Thao tác với thuộc tính:  tênThCh.tênThuộcTính tênThCh.tênThuộcTính  Ví dụ: p.tu=1; p.mau=2; Ví dụ: p.tu=1; p.mau=2; • Thao tác với phương thức: Thao tác với phương thức:  tênThCh.tênPhươngThức(ds đối số); tênThCh.tênPhươngThức(ds đối số);  Ví dụ: p.hienThi(); Ví dụ: p.hienThi();  double x = p.giaTri(); double x = p.giaTri(); 9 9 /36 /36 3. Phạm vi truy xuất các thành phần 3. Phạm vi truy xuất các thành phần của lớp của lớp  Khai báo các thành phần với phạm vi Khai báo các thành phần với phạm vi truy xuất: truy xuất: <Phạm vi> <Khai báo thành phần> <Phạm vi> <Khai báo thành phần> • <Phạm vi> gồm: <Phạm vi> gồm:  public: dùng chung tại mọi vị trí. public: dùng chung tại mọi vị trí.  private: chỉ được truy xuất trong phạm vi của private: chỉ được truy xuất trong phạm vi của lớp. lớp. 10 10 /36 /36 3. Phạm vi truy xuất các thành phần 3. Phạm vi truy xuất các thành phần của lớp {2} của lớp {2} • Ví dụ: Ví dụ: class PS class PS { { private int tu,mau; private int tu,mau; public void hienThi() { … } public void hienThi() { … } } } [...]... 18/36 5 Phương thức khởi tạo {3} class PS { private int tu, mau; public PS() {tu = 0; mau = 1;} public PS(int n) { tu=n; mau=1;} public PS(int t, int m) { tu = t; mau = m;} public PS(PS p) { tu = p.tu; mau = p.mau;} } 19/36 5 Phương thức khởi tạo {4}  Sử dụng phương thức khởi tạo: PS p1 = new PS(); // p1 = 0/1 PS p2 = new PS (5) ;// p2 = 5/ 1 PS p3 = new PS (5, 7);// p3 = 5/ 7 PS p4 = new PS(p2);// p4 = 5/ 1... họa các thao tác: + + + + + Tạo 2 ma trận m1(3,3), m2(3,3) Tìm vị trí phần tử lớn nhất trong ma trận m1 Cộng hai ma trận m3 = m1 + m2 Trừ hai ma trận m4 = m1 - m2 Nhân hai ma trận m5 = m1 × m2 30/36 Sơ đồ lớp MATRAN MATRAN - int[][] mt - int soDong - int soCot + MATRAN(int d, int c) + MATRAN(int[][] mang, int m, int n) + MATRAN(MATRAN mt) + int laySoDong() + int laySoCot() + int layGiaTri(int d, int c)... (ngày/tháng/năm)  Viết chương trình sử dụng lớp vừa định nghĩa: • Tạo 2 đối tượng n1=1/1/2006, n2=10/9/2007 • Tính khoảng cách giữa hai ngày • So sánh hai ngày 28/36 Sơ đồ lớp NTN NTN - int ngay int thang int nam + + + + + + + NTN() NTN(int nam) NTN(int ng, int th, int na) NTN(NTN ntn) void datNgay(int ngay) int layNgay() void datThang(int thang) + int layThang() + void datNam(int nam) + int layNam() -int songay(int... this.tu = tu; } } 15/ 36 4 Đối tượng this {2}  Khi thực hiện: PS p = new PS(); p.ganTu (5) ; thì this chính là phân số p 16/36 5 Phương thức khởi tạo   PTKT (constructor) là phương thức đặc biệt dùng để khởi tạo giá trị các thuộc tính của đối tượng khi mới được tạo ra Phương thức khởi tạo ngầm định: khi không khai báo phương thức khởi tạo Chẳng hạn: PS p = new PS(); Khi đó p=? 17/36 5 Phương thức khởi... số>) 21/36 6 Thành phần tĩnh {2}  Ví dụ: class A { int x; static int y; } A o1 = new A(), o2= new A() ; o1.x =5; o1.y=7; o2.x=10; o2.y=9; System.console.writeln(o1.y);?? 22/36 6 Thành phần tĩnh {3}  Thành phần tĩnh có thể thao tác qua tên lớp Chẳng hạn với ví dụ trên có thể thực hiện: A.y = 5;  Trong phương thức tĩnh ta chỉ được phép dùng các phương thức tĩnh hoặc dữ liệu tĩnh 23/36 6 Thành phần tĩnh... nam) NTN(int ng, int th, int na) NTN(NTN ntn) void datNgay(int ngay) int layNgay() void datThang(int thang) + int layThang() + void datNam(int nam) + int layNam() -int songay(int th, int na) - NTN cong1ngay() - NTN tru1ngay() + NTN cong(int n) + NTN tru(int n) + int tru(NTN ng) + String toString() + void HienThi() + int SoSanh(NTN ntn) 29/36 Bài tập {3}   Bài 2: Khai báo lớp ma trận số nguyên sao... static void pt1() { y=1;} //không được gán x=1; void pt2() { x=1;y=1;} } 24/36 6 Thành phần tĩnh {5}  Ví dụ: class StaticClass { static int count=0; private int data; public StaticClass(int d){ data = d; count++;} public void display(){ System.console.writeln("So doi tuong: "+ count + " du lieu= "+data); } } 25/ 36 6 Thành phần tĩnh {6} class StaticTest { public static void main(String args[]) { StaticClass... tu,mau; public int layTu(){ return tu;} public int layMau(){ return mau;} public void ganTu(int t){ tu = t;} public void ganMau(int m) { if (m>0) mau=m;} } 12/36 3 Phạm vi truy xuất các thành phần của lớp {5}  Xét các thao tác sau: PS p = new PS(); p.tu = 1; p.mau=2; //sai vì tu, mau có phạm vi truy xuất là private 13/36 3 Phạm vi truy xuất các thành phần của lớp {6}  Thay cho thao tác trên bằng thao tác: . p2 = new PS (5) ;// p2 = 5/ 1 PS p2 = new PS (5) ;// p2 = 5/ 1 PS p3 = new PS (5, 7);// p3 = 5/ 7 PS p3 = new PS (5, 7);// p3 = 5/ 7 PS p4 = new PS(p2);// p4 = 5/ 1 PS p4 = new PS(p2);// p4 = 5/ 1 . p = new PS(); PS p = new PS(); p.ganTu (5) ; p.ganTu (5) ; thì this chính là phân số p. thì this chính là phân số p. 17 17 /36 /36 5. Phương thức khởi tạo 5. Phương thức khởi tạo  PTKT (constructor). cấp phát vùng nhớ lưu đối tượng. Sẽ cấp phát vùng nhớ lưu đối tượng. • Trong C# vùng nhớ cấp phát cho đối tượng Trong C# vùng nhớ cấp phát cho đối tượng là Heap. là Heap. 7 7 /36 /36 2. Đối tượng

Ngày đăng: 28/07/2014, 20:20

TỪ KHÓA LIÊN QUAN