14/05/2011
5.1 M(cid:1214)t s(cid:1210) khái ni(cid:1205)m
Ch(cid:1223)(cid:1215)ng 5
(cid:127) L(cid:1201)p trình truy(cid:1221)n th(cid:1237)ng (cid:127) L(cid:1201)p trình h(cid:1133)(cid:1247)ng (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:127) So sánh
Object - Oriented Programming
5.1 M(cid:1214)t s(cid:1210) khái ni(cid:1205)m c(cid:1215) b(cid:1187)n 5.2 Ti(cid:1201)p c(cid:1192)n l(cid:1192)p trình h(cid:1223)(cid:1216)ng (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng 5.3 Câu h(cid:1209)i
1
2
(cid:62)(cid:1192)p trình truy(cid:1202)n th(cid:1210)ng
Ch(cid:1223)(cid:1215)ng trình
– Ngôn ng(cid:1267) (ti(cid:1219)ng, ch(cid:1267) vi(cid:1219)t, (cid:70)(cid:1265) ch(cid:1229)) – Hình (cid:1191)nh
(cid:24)(cid:1227) li(cid:1205)u
Gi(cid:1187)i thu(cid:1192)t
h n ì r t g n (cid:1215) (cid:1223) h C
– M(cid:1245)t t(cid:1201)p (cid:87)(cid:1263) ng(cid:1267) – (cid:48)(cid:1245)t (cid:87)(cid:1201)p các ký hi(cid:1227)u
3
4
1
14/05/2011
Ngôn ng(cid:1227) l(cid:1192)p trình
(cid:1132)u (cid:284)(cid:349)(cid:1203)m – Nh(cid:1223)(cid:1220)c (cid:284)(cid:349)(cid:1203)m
– Pascal – C++
– D(cid:1225) vi(cid:1219)t, d(cid:1225)(cid:3)(cid:255)(cid:1233)c, d(cid:1225) hi(cid:1223)u, d(cid:1225) ki(cid:1223)m l(cid:1243)i và d(cid:1225) hi(cid:1227)u ch(cid:1229)nh – T(cid:1133) duy gi(cid:1191)i thu(cid:1201)t rõ ràng
(cid:127) Có r(cid:1193)t nhi(cid:1221)u ngôn ng(cid:1267) tr(cid:1255) giúp l(cid:1201)p trình: (cid:135) (cid:1132)u (cid:255)(cid:76)(cid:1223)m:
(cid:127) Nh(cid:1133)(cid:1255)c (cid:255)(cid:76)(cid:1223)m:
– Khi thay c(cid:1193)u trúc d(cid:1267) li(cid:1227)u => thay (cid:255)(cid:1241)i ch(cid:1133)(cid:1131)ng trình – Không dùng l(cid:1189)i – Không theo k(cid:1231)p s(cid:1269) phát tri(cid:1223)n
6
5
(cid:135) (cid:264)(cid:1211)c (cid:255)(cid:76)(cid:1223)m chung: – Tính (cid:255)(cid:1131)n th(cid:1223) – C(cid:1193)u trúc (cid:255)(cid:76)(cid:1221)u khi(cid:1223)n và tính vào/ra (cid:255)(cid:1131)n
(cid:62)(cid:1192)p trình h(cid:1223)(cid:1216)ng (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng
(cid:1132)u (cid:284)(cid:349)(cid:1203)m – Nh(cid:1223)(cid:1220)c (cid:284)(cid:349)(cid:1203)m
(cid:24)(cid:1227) li(cid:1205)u Gi(cid:1187)i thu(cid:1192)t
– Không trùng l(cid:1211)p d(cid:1267) li(cid:1227)u – Thay (cid:255)(cid:1241)i C(cid:1193)u trúc d(cid:1267) li(cid:1227)u c(cid:1259)a m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng, không
Object1
Objectn
(cid:70)(cid:1195)n thay (cid:255)(cid:1241)i mã ngu(cid:1239)n c(cid:1259)a các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng khác
– Có th(cid:1223) s(cid:1265) d(cid:1257)ng l(cid:1189)i mã ngu(cid:1239)n
(cid:135) (cid:1132)u (cid:255)(cid:76)(cid:1223)m:
Object4
Object2
Object3
– M(cid:1247)i l(cid:1189) – Thay (cid:255)(cid:1241)i h(cid:1227) t(cid:1133) t(cid:1133)(cid:1251)ng v(cid:1221) l(cid:1201)p trình – Thay (cid:255)(cid:1241)i v(cid:1221) ngôn ng(cid:1267) (l(cid:1201)p trình; h(cid:1227)(cid:3)(cid:255)(cid:76)(cid:1221)u hành) (cid:177) (cid:264)(cid:1239) s(cid:1245)
8
7
2
(cid:127) Nh(cid:1133)(cid:1255)c (cid:255)(cid:76)(cid:1223)m:
14/05/2011
5.2. Ti(cid:1201)p c(cid:1192)n l(cid:1192)p trình h(cid:1223)(cid:1216)ng (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng
So sánh
(cid:127) Ví nh(cid:1133) xây c(cid:259)n nhà:
– Móng – Khung – Tr(cid:1195)n – Trang trí
10
9
2.1 Class - L(cid:1247)p 2.2 Object - (cid:264)(cid:1237)i t(cid:1133)(cid:1255)ng 2.3 Truy(cid:1221)n tham s(cid:1237) 2.4 M(cid:1245)t s(cid:1237) v(cid:1193)n (cid:255)(cid:1221) b(cid:1241) tr(cid:1255)
2.1 Clacss
Khái ni(cid:1205)m
(cid:127) Class là : T(cid:1201)p h(cid:1255)p các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng có chung các thu(cid:1245)c tính và hành (cid:255)(cid:1245)ng
(cid:127) T(cid:1193)t c(cid:1191) các th(cid:1223) hi(cid:1227)n c(cid:1259)a Class (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:255)(cid:1237)i (cid:87)(cid:1133)(cid:1255)ng, s(cid:1217) có chung các tr(cid:1189)ng thái và hành vi
– Các thu(cid:1245)c tính và hành (cid:255)(cid:1245)ng có th(cid:1223)(cid:3)(cid:255)(cid:1133)(cid:1255)c gán ch(cid:1229) sau
khi m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra
– Khi m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra, lúc (cid:255)ó ta m(cid:1247)i có m(cid:1245)t
(cid:255)(cid:1189)i di(cid:1227)n th(cid:1201)t s(cid:1269) c(cid:1259)a m(cid:1245)t th(cid:1269)c th(cid:1223)
12
11
3
(cid:127) Khái ni(cid:1227)m (cid:127) Khai báo (cid:127) Thu(cid:1245)c tính truy c(cid:1201)p (cid:127) Tham s(cid:1237) (cid:127) Truy(cid:1221)n tham s(cid:1237) (cid:127) Chú ý:
14/05/2011
Ví d(cid:1221)
Khai báo l(cid:1216)p
(cid:62)(cid:1216)p
(cid:26)(cid:1210)i t(cid:1223)(cid:1220)ng
Xe moto
[Thu(cid:1245)c tính] [B(cid:1241) sung truy c(cid:1201)p] class <(cid:264)(cid:1231)nh danh l(cid:1247)p> [: L(cid:1247)p c(cid:1131) s(cid:1251)] {
Dream II Dung (cid:417)ch 97 cm3 Màu nho
Xe moto
Click Dung (cid:417)ch 97 cm3 Màu (cid:284)en
}
Sinh viên
Tr(cid:1189)n Hoàng Th(cid:1187)o (cid:69)(cid:1227) 20.07.1991 Di(cid:1204)n Châu
Sinh viên
Nguy(cid:1204)n V(cid:265)n Hùng Nam 12.02.1990 TP Vinh
14
13
(cid:26)(cid:1207)nh ngh(cid:353)a ph(cid:1223)(cid:1215)ng th(cid:1224)c
Thu(cid:1214)c tính truy c(cid:1192)p
public void/int Tênph(cid:1133)(cid:1131)ngth(cid:1261)c() {
//Câu l(cid:1227)nh;
16
15
4
}
14/05/2011
Tham s(cid:1237) c(cid:1259)a ph(cid:1133)(cid:1131)ng th(cid:1261)c
using System; public class ThoiGian {
public void ThoiGianHienHanh() {
Console.WriteLine(“Hien thi thoi gian hien hanh”);
} int Nam, Thang, Ngay, Gio, Phut, Giay;
Console.WriteLine(“hai tham so: {0} va {1}”, p1,p2);
public void SomeMethod(int p1, float p2) {
} public class Tester {
(cid:100)(cid:1186)o th(cid:1203) hi(cid:1205)n l(cid:1216)p ThoiGian và gán cho (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng t
static void Main() {
ThoiGian t = new ThoiGian(); t.ThoiGianHienHanh();}
}
Hàm Main s(cid:1226) d(cid:1221)ng ph(cid:1223)(cid:1215)ng th(cid:1224)c c(cid:1222)a t17
18
}
2.2 Object
Khái ni(cid:1205)m
(cid:127) Nh(cid:1227)ng v(cid:1192)t h(cid:1227)u
hình
(cid:127) (cid:94)(cid:1217) mó (cid:284)(cid:1223)(cid:1220)c (cid:127) (cid:100)(cid:1211)n (cid:410)(cid:1186)i trong th(cid:1201)
gi(cid:1216)i th(cid:1228)c (cid:127) Mô (cid:410)(cid:1187)(cid:3)(cid:284)(cid:1223)(cid:1220)c:
(cid:127) Thu(cid:1214)c (cid:417)nh (cid:127) Hành (cid:284)(cid:1214)ng
19
20
5
(cid:127) Khái ni(cid:1227)m (cid:127) Khai báo (cid:127) Kh(cid:1251)i t(cid:1189)o bi(cid:1219)n thành viên (cid:127) Hàm d(cid:1269)ng sao chép (cid:127) T(cid:1263) khoá this (cid:127) B(cid:1245) kh(cid:1251)i d(cid:1269)ng (cid:127) Hu(cid:1273)(cid:3)(cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng
14/05/2011
Ví d(cid:1221)
Nh(cid:1192)n xét
Thu(cid:1214)c (cid:417)nh
Hành (cid:284)(cid:1214)ng
Xe h(cid:1215)i
Ch(cid:1186)y Tri(cid:1203)n lãm
– Tr(cid:1189)ng thái (thu(cid:1245)c tính) – Hành vi (hành (cid:255)(cid:1245)ng)
Lo(cid:1186)i Màu (cid:26)(cid:1214)ng c(cid:1215)
Chó
(cid:127) S(cid:1269) thu(cid:1201)n l(cid:1255)i khi s(cid:1265) d(cid:1257)ng (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (object) :
(cid:11)n (cid:94)(cid:1222)a Ch(cid:1186)y
Gi(cid:1210)ng Gi(cid:1216)i (cid:417)nh Màu lông Tu(cid:1212)i
– Nó giúp chúng ta hi(cid:1223)u h(cid:1131)n v(cid:1221) th(cid:1219) gi(cid:1247)i th(cid:1269)c – Nó ánh x(cid:1189) các thu(cid:1245)c tính và các hành (cid:255)(cid:1245)ng c(cid:1259)a
Hoa
Lo(cid:1186)i Màu
(cid:69)(cid:1218) To(cid:1187) (cid:346)(cid:1223)(cid:1215)ng
các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng trong th(cid:1219) gi(cid:1247)i th(cid:1269)c thành tr(cid:1189)ng thái và hành vi c(cid:1259)a các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ph(cid:1195)n m(cid:1221)m
Nhà
(cid:18)(cid:1188)p (cid:115)(cid:1207) trí
(cid:1130)(cid:3616) Cho thuê Bán (cid:26)(cid:1203) không
21
22
(cid:127) Trong ph(cid:1195)n m(cid:1221)m, mô t(cid:1191) các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng :
Khai báo
Ví d(cid:1221)
using System; public class ThoiGian {
public void ThoiGianHienHanh() {
Console.WriteLine(“Hien thi thoi gian hien hanh”);
} int Nam, Thang, Ngay, Gio, Phut, Giay;
(cid:127) T(cid:1189)o m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng cho l(cid:1247)p nào (cid:255)ó t(cid:1133)(cid:1131)ng t(cid:1269) nh(cid:1133) vi(cid:1227)c g(cid:1233)i th(cid:1269)c hi(cid:1227)n m(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c c(cid:1259)a l(cid:1247)p (cid:255)ó
} public class Tester {
(cid:100)(cid:1186)o th(cid:1203) hi(cid:1205)n l(cid:1216)p ThoiGian và gán cho (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng t
static void Main() {
ThoiGian t = new ThoiGian();
ThoiGian t = new ThoiGian(); t.ThoiGianHienHanh(); }
Hàm Main s(cid:1226) d(cid:1221)ng ph(cid:1223)(cid:1215)ng th(cid:1224)c c(cid:1222)a t
}
23
24
6
(cid:55)(cid:1189)o th(cid:1223) hi(cid:1227)n l(cid:1247)p ThoiGian và gán cho (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng t Ho(cid:1211)c (cid:55)(cid:1189)o (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng t là th(cid:1223) hi(cid:1227)n c(cid:1259)a l(cid:1247)p ThoiGian
14/05/2011
Kh(cid:1218)i t(cid:1186)o bi(cid:1201)n thành viên
Hàm d(cid:1228)ng sao chép
(cid:127) Kh(cid:1251)i t(cid:1189)o các bi(cid:1219)n thành viên: (cid:127) Là th(cid:1269)c hi(cid:1227)n vi(cid:1227)c t(cid:1189)o m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng m(cid:1247)i b(cid:1205)ng
– Tr(cid:1269)c ti(cid:1219)p khi khai báo – Kh(cid:1251)i t(cid:1189)o trong b(cid:1245) kh(cid:1251)i d(cid:1269)ng
cách sao chép t(cid:1193)t c(cid:1191) các bi(cid:1219)n t(cid:1263) m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)ã có và cùng m(cid:1245)t ki(cid:1223)u d(cid:1267) li(cid:1227)u
– Chúng ta mu(cid:1237)n (cid:255)(cid:1133)a m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ThoiGian vào b(cid:1245)
(cid:127) Ví d(cid:1257) : (cid:135) (cid:264)(cid:1223) th(cid:1269)c hi(cid:1227)n vi(cid:1227)c kh(cid:1251)i t(cid:1189)o ta ch(cid:1229) vi(cid:1227)c s(cid:1265) d(cid:1257)ng phép gán giá tr(cid:1231) cho m(cid:1245)t bi(cid:1219)n:
kh(cid:1251)i d(cid:1269)ng l(cid:1247)p ThoiGian (cid:255)(cid:1223) t(cid:1189)o m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ThoiGian m(cid:1247)i có cùng giá tr(cid:1231) v(cid:1247)i (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ThoiGian (cid:70)(cid:458)
– Hai (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng này hoàn toàn khác nhau và ch(cid:1229) gi(cid:1237)ng
nhau (cid:1251) giá tr(cid:1231) bi(cid:1219)n thành viên sao khi kh(cid:1251)i d(cid:1269)ng.
26
25
private int Giay = 30;
Ví d(cid:1221)
(cid:100)(cid:1225) khóa this
(cid:127) T(cid:1263) khóa this :
public ThoiGian( ThoiGian tg) {
(cid:177) (cid:264)(cid:1133)(cid:1255)c dùng (cid:255)(cid:1223) tham chi(cid:1219)u (cid:255)(cid:1219)n th(cid:1223) hi(cid:1227)n hi(cid:1227)n hành c(cid:1259)a m(cid:1245)t
(cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng
(cid:177) (cid:264)(cid:1133)(cid:1255)c dùng tham chi(cid:1219)u (cid:255)(cid:1219)n nh(cid:1267)ng ph(cid:1133)(cid:1131)ng th(cid:1261)c khác và
các bi(cid:1219)n thành viên
(cid:127) Tham chi(cid:1219)u this này (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng th(cid:1133)(cid:1249)ng xuyên
Nam = tg.Nam; Thang = tg.Thang; Ngay = tg.Ngay; Gio = tg.Gio; Phut = tg.Phut; Giay = tg.Giay;
}
theo ba cách: – S(cid:1265) d(cid:1257)ng khi các bi(cid:1219)n thành viên b(cid:1231) che l(cid:1193)p b(cid:1251)i tham s(cid:1237)
(cid:255)(cid:1133)a vào
ThoiGian t2 = new ThoiGian( t1 );
(cid:177) (cid:264)(cid:1223) truy(cid:1221)n (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng hi(cid:1227)n hành vào m(cid:1245)t tham s(cid:1237) c(cid:1259)a m(cid:1245)t
ph(cid:1133)(cid:1131)ng th(cid:1261)c c(cid:1259)a (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng khác
Trong (cid:255)ó t1 là (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ThoiGian (cid:255)ã t(cid:1239)n t(cid:1189)i, sau khi l(cid:1227)nh trên th(cid:1269)c hi(cid:1227)n xong thì (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng t2 (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra nh(cid:1133) b(cid:1191)n sao c(cid:1259)a (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng t1
– S(cid:1265) d(cid:1257)ng tham chi(cid:1219)u this là m(cid:1191)ng ch(cid:1229) m(cid:1257)c (indexer)
28
27
7
14/05/2011
Code
(cid:17)(cid:1214) kh(cid:1218)i d(cid:1228)ng
public void SetYear( int Nam) {
this.Nam = Nam;
}
public void Method1( OtherClass otherObject ) {
// truy(cid:1221)n tham s(cid:1237) là b(cid:1191)n // thân (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)ang th(cid:1269)c hi(cid:1227)n. otherObject.SetObject( this );
}
30
29
(cid:127) Khái ni(cid:1227)m – Ch(cid:1261)c n(cid:259)ng (cid:127) T(cid:1189)o b(cid:1245) kh(cid:1251)i d(cid:1269)ng (cid:127) Gán giá tr(cid:1231) (cid:127) S(cid:1265) d(cid:1257)ng các thành viên t(cid:429)nh (cid:127) S(cid:1265) d(cid:1257)ng b(cid:1245) kh(cid:1251)i t(cid:1189)o t(cid:429)nh (cid:127) S(cid:1265) d(cid:1257)ng b(cid:1245) kh(cid:1251)i d(cid:1269)ng private (cid:127) S(cid:1265) d(cid:1257)ng các thu(cid:1245)c tính t(cid:429)nh
Khái ni(cid:1205)m – Ch(cid:1224)c n(cid:265)ng
Ch(cid:1223)a có b(cid:1214) kh(cid:1218)i d(cid:1228)ng
public class ThoiGian {
public void ThoiGianHienHanh() {
(cid:127) M(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c s(cid:1217)(cid:3)(cid:255)(cid:1133)(cid:1255)c g(cid:1233)i th(cid:1269)c hi(cid:1227)n khi chúng ta t(cid:1189)o m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng. Ph(cid:1133)(cid:1131)ng th(cid:1261)c này (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i là (cid:69)(cid:1245) kh(cid:1251)i d(cid:1269)ng (constructor): (cid:177) (cid:264)(cid:1133)(cid:1255)c (cid:255)(cid:1231)nh ngh(cid:429)a khi xây d(cid:1269)ng l(cid:1247)p – N(cid:1219)u ta không t(cid:1189)o ra thì CLR s(cid:1217) t(cid:1189)o ph(cid:1133)(cid:1131)ng th(cid:1261)c kh(cid:1251)i
Console.WriteLine(“Hien thi thoi gian hien hanh”);
(cid:71)(cid:1269)ng m(cid:1245)t cách m(cid:1211)c (cid:255)(cid:1231)nh (cid:127) Ch(cid:1261)c n(cid:259)ng c(cid:1259)a b(cid:1245) kh(cid:1251)i d(cid:1269)ng:
} int Nam, Thang, Ngay, Gio, Phut, Giay;
– Là t(cid:1189)o ra (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)(cid:1133)(cid:1255)c xác (cid:255)(cid:1231)nh b(cid:1251)i m(cid:1245)t l(cid:1247)p và (cid:255)(cid:1211)t
}
tr(cid:1189)ng thái này là h(cid:1255)p l(cid:1227)
– Sau khi b(cid:1245) kh(cid:1251)i d(cid:1269)ng th(cid:1269)c hi(cid:1227)n hoàn thành thì b(cid:1245) nh(cid:1247) s(cid:1217)
(cid:79)(cid:1133)u gi(cid:1267) m(cid:1245)t th(cid:1223) hi(cid:1227)n h(cid:1255)p l(cid:1227) c(cid:1259)a l(cid:1247)p v(cid:1263)a khai báo
32
31
8
14/05/2011
(cid:100)(cid:1186)o b(cid:1214) kh(cid:1218)i d(cid:1228)ng
Giá tr(cid:1207) m(cid:1197)c (cid:284)(cid:1207)nh
using System; public class ThoiGian {
public void ThoiGianHienHanh() {
Console.WriteLine(“Thoi gian hien hanh la : {0}/{1}/{2} {3}:{4}:{5}”, Ngay, Thang, Nam, Gio,
Phut, Giay); } public ThoiGian( System.DateTime dt ) {
Nam = dt.Year; Thang = dt.Month; Ngay = dt.Day; Gio = dt.Hour; Phut = dt.Minute; Giay = dt.Second;
(cid:26)(cid:1207)nh ngh(cid:353)a b(cid:1214) kh(cid:1218)i d(cid:1228)ng riêng Ngh(cid:353)a là (cid:26)(cid:1207)nh ngh(cid:353)a m(cid:1214)t ph(cid:1223)(cid:1215)ng th(cid:1224)c có tên gi(cid:1210)ng tên l(cid:1216)p (cid:284)ã khai báo
} int Nam, Thang, Ngay, Gio, Phut, Giay; } public class Tester {
static void Main() {
System.DateTime currentTime = System.DateTime.Now; ThoiGian t = new ThoiGian( currentTime ); t.ThoiGianHienHanh();
(cid:127) Các bi(cid:1219)n trong (cid:69)(cid:1245) kh(cid:1251)i (cid:71)(cid:1269)ng (cid:80)(cid:1211)c (cid:255)(cid:1231)nh (cid:86)(cid:1217) nh(cid:1201)n các giá tri (cid:80)(cid:1211)c (cid:255)(cid:1231)nh nh(cid:1133) sau
}
}
33
34
P(cid:75)(cid:1133)(cid:1131)ng th(cid:1261)c kh(cid:1251)i d(cid:1269)ng l(cid:1193)y m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng DateTime và kh(cid:1251)i t(cid:1189)o t(cid:1193)t c(cid:1191) các bi(cid:1219)n thành viên d(cid:1269)a trên giá tr(cid:1231) c(cid:1259)a (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng này. Khi ph(cid:1133)(cid:1131)ng th(cid:1261)c này th(cid:1269)c hi(cid:1227)n xong, m(cid:1245)(cid:87) (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ThoiGian (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra và các bi(cid:1219)n c(cid:1259)a (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng c(cid:458)ng (cid:255)ã (cid:255)(cid:1133)(cid:1255)c kh(cid:1251)i t(cid:1189)o. Hàm ThoiGianHienHanh (cid:255)(cid:1133)(cid:1255)c g(cid:1233)i trong hàm Main() s(cid:1217) hi(cid:1223)n th(cid:1231) giá tr(cid:1231) th(cid:1249)i gian lúc (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra
(cid:127) Ng(cid:1133)(cid:1249)i (cid:86)(cid:1265) d(cid:1257)ng có th(cid:1223) gán giá tr(cid:1231) khác cho các bi(cid:1219)n này
(cid:94)(cid:1226) d(cid:1221)ng các thành viên t(cid:353)nh (static member)
using System; public class Class1 {
public void SomeMethod(int p1, float p2) {
Console.WriteLine(“Ham nhan duoc hai tham so: {0} va {1}”, p1,p2);
}
(cid:127)
SomeMethod là ph(cid:1223)(cid:1215)ng th(cid:1224)c không (cid:421)nh c(cid:1222)a l(cid:1216)p Class1
} public class Tester {
(cid:127) Nh(cid:1267)ng thu(cid:1245)c tính và ph(cid:1133)(cid:1131)ng th(cid:1261)c trong m(cid:1245)t l(cid:1247)p
static void Main() {
(cid:79)(cid:1247)p
(cid:127) Main() là m(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c t(cid:429)nh (cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c t(cid:429)nh không th(cid:1223) truy c(cid:1201)p tr(cid:1269)c ti(cid:1219)p (cid:255)(cid:1219)n các thành viên không có tính ch(cid:1193)t t(cid:429)nh (nonstatic)
có th(cid:1223) là nh(cid:1267)ng thành viên : – Th(cid:1223) hi(cid:1227)n (instance members) : thành viên c(cid:1259)a (cid:255)(cid:1237)i (cid:87)(cid:1133)(cid:1255)ng liên quan (cid:255)(cid:1219)n th(cid:1223) hi(cid:1227)n c(cid:1259)a m(cid:1245)t ki(cid:1223)u d(cid:1267) li(cid:1227)u – T(cid:429)nh (static members) : (cid:255)(cid:1133)(cid:1255)c xem nh(cid:1133) m(cid:1245)t ph(cid:1195)n c(cid:1259)a
int var1 = 5; float var2 = 10.5f; Class1 c = new Class1(); c.SomeMethod( var1, var2 );
}
}
(cid:127) Gi(cid:1187)i quy(cid:1201)t : (cid:127) (cid:26)(cid:1203) truy c(cid:1192)p (cid:284)(cid:1223)(cid:1220)c ph(cid:1223)(cid:1215)ng th(cid:1224)c này, ta ph(cid:1187)i t(cid:1186)o m(cid:1214)t (cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng c là th(cid:1203) hi(cid:1205)n (cid:272)(cid:1222)a l(cid:1216)p Class1
36
35
9
(cid:127) Chúng ta có th(cid:1223) truy c(cid:1201)p (cid:255)(cid:1219)n thành viên t(cid:429)nh c(cid:1259)a (cid:80)(cid:1245)t l(cid:1247)p thông qua tên l(cid:1247)p (cid:255)ã (cid:255)(cid:1133)(cid:1255)c khai báo mà không c(cid:1195)n t(cid:1189)o m(cid:1245)t th(cid:1223) hi(cid:1227)n l(cid:1247)p
14/05/2011
(cid:94)(cid:1226) d(cid:1221)ng b(cid:1214) kh(cid:1218)i d(cid:1228)ng t(cid:353)nh
(cid:94)(cid:1226) d(cid:1221)ng b(cid:1214) kh(cid:1218)i d(cid:1228)ng private
3. Dòng (cid:367)(cid:1205)nh (cid:400)(cid:1226) d(cid:1221)ng bi(cid:1201)n thành viên ten trong ph(cid:1223)(cid:1215)ng th(cid:1224)c không (cid:421)nh
(cid:127) Ngôn ng(cid:1267) C# không có ph(cid:1133)(cid:1131)ng th(cid:1261)c toàn c(cid:1257)c và h(cid:1205)ng s(cid:1237) toàn c(cid:1257)c
– Ta có th(cid:1223) t(cid:1189)o ra nh(cid:1267)ng l(cid:1247)p ti(cid:1227)n ích nh(cid:1235) ch(cid:1229)(cid:3)(cid:255)(cid:1223) ch(cid:1261)a
các ph(cid:1133)(cid:1131)ng th(cid:1261)c t(cid:429)nh
1. (cid:100)(cid:1186)o (cid:271)(cid:1214) kh(cid:1218)i (cid:282)(cid:1228)ng (cid:421)nh
– Khi t(cid:1189)o m(cid:1245)t l(cid:1247)p mà không cho phép t(cid:1189)o b(cid:1193)t k(cid:484) th(cid:1223)
hi(cid:1227)n nào c(cid:1259)a l(cid:1247)p thì ta s(cid:1265) d(cid:1257)ng b(cid:1245) kh(cid:1251)i d(cid:1269)ng private
2. Khai báo biên thành viên ten d(cid:1186)ng (cid:421)nh
38
37
(cid:127) V(cid:1201)y :
(cid:94)(cid:1226) d(cid:1221)ng các thu(cid:1214)c tính t(cid:353)nh
(cid:17)(cid:1214) kh(cid:1218)i (cid:282)(cid:1228)ng (cid:421)nh
Bi(cid:1201)n thành viên (cid:421)nh
(cid:127) Ta không th(cid:1223) t(cid:1189)o (cid:255)(cid:1133)(cid:1255)c bi(cid:1219)n toàn c(cid:1257)c (cid:255)(cid:1223) làm
công vi(cid:1227)c (cid:255)(cid:1219)m s(cid:1237) th(cid:1223) hi(cid:1227)n c(cid:1259)a m(cid:1245)t l(cid:1247)p. V(cid:1201)y làm sao ki(cid:1223)m soát (cid:255)(cid:1133)(cid:1255)c s(cid:1237) th(cid:1223) hi(cid:1227)n c(cid:1259)a m(cid:1245)t l(cid:1247)p (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra khi th(cid:1269)c hi(cid:1227)n ch(cid:1133)(cid:1131)ng trình
(cid:127) Thông th(cid:1133)(cid:1249)ng các bi(cid:1219)n thành viên t(cid:429)nh (cid:255)(cid:1133)(cid:1255)c
dùng (cid:255)(cid:1223)(cid:3)(cid:255)(cid:1219)m s(cid:1237) th(cid:1223) hi(cid:1227)n (cid:255)ã (cid:255)(cid:1133)(cid:1255)c (cid:255)(cid:1133)(cid:1255)c t(cid:1189)o ra (cid:70)(cid:1259)a m(cid:1245)t l(cid:1247)p
0 cats 1 cats 3 cats
39
40
10
14/05/2011
Hu(cid:1231)(cid:3)(cid:284)(cid:1210)i t(cid:1223)(cid:1220)ng
(cid:17)(cid:1214) hu(cid:1231) c(cid:1222)a C#
~Class1() {
// Th(cid:1269)c hi(cid:1227)n m(cid:1245)t s(cid:1237) công vi(cid:1227)c
}
(cid:38)(cid:458)ng t(cid:1133)(cid:1131)ng t(cid:1269) nh(cid:1133) vi(cid:1219)t :
Class1.Finalize() {
// Th(cid:1269)c hi(cid:1227)n m(cid:1245)t s(cid:1237) công vi(cid:1227)c base.Finalize();
}
42
41
(cid:127) B(cid:1245) hu(cid:1273) c(cid:1259)a C# (cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c Dispose (cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c Close (cid:127) Câu l(cid:1227)nh using
Ph(cid:1133)(cid:1131)ng th(cid:1261)c Dispose
Ph(cid:1133)(cid:1131)ng th(cid:1261)c Close
public void Dispose() {
// Th(cid:1269)c hi(cid:1227)n công vi(cid:1227)c d(cid:1233)n d(cid:1213)p // Yêu c(cid:1195)u b(cid:1245) thu d(cid:1233)c GC trong th(cid:1269)c hi(cid:1227)n k(cid:1219)t thúc GC.SuppressFinalize( this );
– Ph(cid:1133)(cid:1131)ng th(cid:1261)c Dispose() v(cid:1247)i thu(cid:1245)c tính là private – Ph(cid:1133)(cid:1131)ng th(cid:1261)c Close() v(cid:1247)i thu(cid:1245)c tính public; Trong
Close() g(cid:1233)i th(cid:1269)c hi(cid:1227)n ph(cid:1133)(cid:1131)ng th(cid:1261)c Dispose()
} public override void Finalize() {
Dispose(); base.Finalize();
}
43
44
11
(cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c Close() d(cid:1225) s(cid:1265) d(cid:1257)ng h(cid:1131)n ph(cid:1133)(cid:1131)ng th(cid:1261)c Dispose trong các (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng có liên quan (cid:255)(cid:1219)n x(cid:1265) lý t(cid:1201)p tin (cid:127) Ta có th(cid:1223) xây d(cid:1269)ng :
14/05/2011
Câu l(cid:1205)nh using
2.3 Truy(cid:1202)n tham s(cid:1210) cho ph(cid:1223)(cid:1215)ng th(cid:1224)c
using System.Drawing; class Tester {
public static void Main() {
using ( Font Afont = new Font(“Arial”,10.0f))
{ // (cid:264)(cid:82)(cid:1189)n mã s(cid:1265) d(cid:1257)ng AFont ....... }// Trình biên d(cid:1231)ch s(cid:1217) g(cid:1233)i Dispose (cid:255)(cid:1223) gi(cid:1191)i phóng AFont Font TFont = new Font(“Tahoma”,12.0f); using (TFont) {
// (cid:264)(cid:82)(cid:1189)n mã s(cid:1265) d(cid:1257)ng TFont .......
}// Trình biên d(cid:1231)ch g(cid:1233)i Dispose (cid:255)(cid:1223) gi(cid:1191)i phóng TFont }
}
46
45
(cid:127) Truy(cid:1221)n tham tr(cid:1231) (cid:127) Truy(cid:1221)n tham chi(cid:1219)u
Truy(cid:1202)n tham s(cid:1210) giá tr(cid:1207)
Truy(cid:1202)n tham chi(cid:1201)u
float p2) 10.5
public void SomeMethod(int p1, 5 {
Console.WriteLine(“hai tham so: {0} va {1}”, p1, p2);
10.5
5
(cid:127) B(cid:1241) sung tham s(cid:1237) ref cho phép truy(cid:1221)n các (cid:255)(cid:1237)i (cid:87)(cid:1133)(cid:1255)ng giá tr(cid:1231) vào trong ph(cid:1133)(cid:1131)ng th(cid:1261)c theo ki(cid:1223)u tham chi(cid:1219)u
} public class Tester {
static void Main() {
(cid:127) B(cid:1241) sung out trong tr(cid:1133)(cid:1249)ng h(cid:1255)p mu(cid:1237)n truy(cid:1221)n
(cid:71)(cid:1133)(cid:1247)i d(cid:1189)ng tham chi(cid:1219)u mà không c(cid:1195)n ph(cid:1191)i kh(cid:1251)i (cid:87)(cid:1189)o giá tr(cid:1231) ban (cid:255)(cid:1195)u cho tham s(cid:1237) truy(cid:1221)n
5 int var1 = 5; float var2 = 10.5f; 10.5 Class1 c = new Class1();
10.5
c.SomeMethod( var1,
var2 );
5
}
}
48
47
12
(cid:127) B(cid:1241) sung params cho phép ph(cid:1133)(cid:1131)ng th(cid:1261)c ch(cid:1193)p nh(cid:1201)n nhi(cid:1221)u s(cid:1237) l(cid:1133)(cid:1255)ng các tham s(cid:1237)
14/05/2011
0
0
0
0
0
0
49
50
2.4 M(cid:1214)t s(cid:1210) v(cid:1188)n (cid:284)(cid:1202) b(cid:1212) tr(cid:1220)
Truy(cid:1221)n tham chi(cid:1219)u v(cid:1247)i bi(cid:1219)n ch(cid:1133)a kh(cid:1251)i t(cid:1189)o
52
51
13
Encapsulation -Tính (cid:255)óng gói Abstraction - Tr(cid:1263)u t(cid:1133)(cid:1255)ng hóa Inheritance - K(cid:1219) th(cid:1263)a Polymorphism - (cid:264)a hình
14/05/2011
Encapsulation
Encapsulation
– Tr(cid:1191) v(cid:1221) m(cid:1245)t (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng ki(cid:1223)u là m(cid:1245)t (cid:255)(cid:1211)c tính c(cid:1259)a l(cid:1247)p
– Cú pháp: get { return
(cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c get:
– Thi(cid:1219)t l(cid:1201)p giá tr(cid:1231) m(cid:1245)t property c(cid:1259)a (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng và có tr(cid:1231)
tr(cid:1191) v(cid:1221) là void
– Có th(cid:1223) ghi vào CSDL hay c(cid:1201)p nh(cid:1201)t bi(cid:1219)n thành viên
khi c(cid:1195)n
– Cú pháp: set {
54
53
(cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c set:
Abstraction
Abstraction
windows
(cid:26)(cid:1214)ng v(cid:1192)t có vú
button
listbox
Checkbox
commandbox
Chó
Mèo
(cid:62)(cid:1220)n
radiobutton
56
55
14
14/05/2011
Abstraction
Inheritance
(cid:127) Là l(cid:1247)p có ít nh(cid:1193)t m(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c tr(cid:1263)u t(cid:1133)(cid:1255)ng (cid:127) Ph(cid:1133)(cid:1131)ng th(cid:1261)c tr(cid:1263)u t(cid:1133)(cid:1255)ng :
(cid:127) Trong ngôn ng(cid:1267) C#, quan h(cid:1227)(cid:3)(cid:255)(cid:1211)c bi(cid:1227)t hóa (cid:255)(cid:1133)(cid:1255)c th(cid:1269)c thi b(cid:1205)ng cách s(cid:1265) d(cid:1257)ng s(cid:1269) k(cid:1219) th(cid:1263)a
– Không có s(cid:1269) th(cid:1269)c thi – Ch(cid:1229)(cid:3)(cid:255)(cid:1131)n gi(cid:1191)n t(cid:1189)o ra m(cid:1245)t tên ph(cid:1133)(cid:1131)ng th(cid:1261)c và kí hi(cid:1227)u
ph(cid:1133)(cid:1131)ng th(cid:1261)c
– Nó không (cid:255)(cid:1231)nh ngh(cid:429)a ph(cid:1195)n thân, thay vào (cid:255)ó chúng (cid:255)(cid:1133)(cid:1255)c
cài (cid:255)(cid:1211)t trong ph(cid:1133)(cid:1131)ng th(cid:1261)c ghi (cid:255)è c(cid:1259)a l(cid:1247)p d(cid:1199)n xu(cid:1193)t
(cid:135) (cid:264)ây cách chung nh(cid:1193)t và t(cid:1269) nhiên nh(cid:1193)t (cid:255)(cid:1223) th(cid:1269)c thi quan h(cid:1227) này
(cid:127) Khai báo l(cid:1247)p tr(cid:1263)u t(cid:1133)(cid:1255)ng : abstract class viduloptruutuong {
// Code of members
(cid:127) Trong ngôn ng(cid:1267) C# (cid:255)(cid:1223) t(cid:1189)o m(cid:1245)t l(cid:1247)p d(cid:1199)n xu(cid:1193)t t(cid:1263) (cid:80)(cid:1245)t l(cid:1247)p ta thêm d(cid:1193)u hai ch(cid:1193)m () : ) vào sau tên (cid:79)(cid:1247)p d(cid:1199)n xu(cid:1193)t và tr(cid:1133)(cid:1247)c tên l(cid:1247)p c(cid:1131) s(cid:1251)
}
58
57
public class ListBox : Window
Inheritancen
windows
(cid:127) Ta có th(cid:1223) nói ListBox (cid:78)(cid:1219) th(cid:1263)a hay (cid:255)(cid:1133)(cid:1255)c d(cid:1199)n xu(cid:1193)t (cid:87)(cid:1263) Window :
button
listbox
(cid:127) Window là l(cid:1247)p c(cid:1131) s(cid:1251) (cid:127) ListBox là l(cid:1247)p d(cid:1199)n
xu(cid:1193)t
(cid:127) Nh(cid:1133) v(cid:1201)y, ListBox :
(cid:127) D(cid:1199)n xu(cid:1193)t t(cid:1193)t c(cid:1191) các
Checkbox
commandbox
thu(cid:1245)c tính và hành vi (cid:87)(cid:1263) l(cid:1247)p Window
radiobutton
(cid:127) Thêm nh(cid:1267)ng ph(cid:1195)n (cid:255)(cid:1211)c bi(cid:1227)t riêng (cid:255)(cid:1223) xác nh(cid:1201)n ListBox
59
60
15
14/05/2011
Polymorphism
(cid:26)a hình
(cid:127) Có hai cách th(cid:1261)c khá m(cid:1189)nh (cid:255)(cid:1223) th(cid:1269)c hi(cid:1227)n vi(cid:1227)c k(cid:1219)
61
62
th(cid:1263)a : – M(cid:1245)t là s(cid:1265) d(cid:1257)ng l(cid:1189)i mã ngu(cid:1239)n – Hai là s(cid:1265) d(cid:1257)ng tính (cid:255)a hình (polymorphism)
(cid:94)(cid:1226) d(cid:1221)ng
Câu h(cid:1209)i
(cid:127) L(cid:1247)p là gì ? (cid:264)(cid:1237)i t(cid:1133)(cid:1255)ng là gì? (cid:127) L(cid:1247)p tr(cid:1263)u t(cid:1133)(cid:1255)ng là th(cid:1219) nào? Có th(cid:1223) t(cid:1189)o (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng cho l(cid:1247)p
tr(cid:1263)u t(cid:1133)(cid:1255)ng hay không?
(cid:127) Có ph(cid:1191)i khi t(cid:1189)o m(cid:1245)t l(cid:1247)p thì ph(cid:1191)i k(cid:1219) th(cid:1263)a t(cid:1263) m(cid:1245)t l(cid:1247)p nào
không?
(cid:127) Có th(cid:1223) k(cid:1219) th(cid:1263)a t(cid:1263) m(cid:1245)t l(cid:1247)p c(cid:1131) s(cid:1251)(cid:3)(cid:255)(cid:1133)(cid:1255)c vi(cid:1219)t trong ngôn
ng(cid:1267) khác ngôn ng(cid:1267) C#?
(cid:127) Khái ni(cid:1227)m (cid:255)a hình là gì? Khi nào thì c(cid:1195)n s(cid:1265) d(cid:1257)ng tính (cid:255)a
(cid:135) (cid:264)(cid:1223) t(cid:1189)o m(cid:1245)t ph(cid:1133)(cid:1131)ng th(cid:1261)c h(cid:1243) tính (cid:255)a hình, chúng ta c(cid:1195)n ph(cid:1191)i khai báo khóa virtual trong ph(cid:1133)(cid:1131)ng th(cid:1261)c c(cid:1259)a l(cid:1247)p c(cid:1131) s(cid:1251)
hình?
(cid:127) T(cid:1263) khóa new (cid:255)(cid:1133)(cid:1255)c s(cid:1265) d(cid:1257)ng làm gì trong các l(cid:1247)p? (cid:127) Hãy xây d(cid:1269)ng cây phân c(cid:1193)p các l(cid:1247)p (cid:255)(cid:1237)i t(cid:1133)(cid:1255)ng sau:
public class ListBox : Window
Xe_Toyota, Xe_Dream, Xe_Spacy, Xe_BMW, Xe_Fiat, Xe_DuLich, Xe_May, Xe?
64
63
16
public virtual void DrawWindow()

