Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) Bài 6 lap trinh ios hàm (class) lap trinh ios
Trang 1Bài 6: Hàm - Class
Chào các b n.ạ
Ph n này r t quan tr ng, s n g d ng r t nhi u trong quá trình b n vi t n g d ng sau này.ầ ấ ọ ẽ ứ ụ ấ ề ạ ế ứ ụ
B n c n ph i th c hành nhi u h n k t ph n này tr i ạ ầ ả ự ề ơ ể ừ ầ ở đ
Chúng ta không bàn n nh ng ph n g th c xây d ng hàm c , â y mình dùng Xcode đế ữ ươ ứ ự ũ ở đ
m i nh t, nên cách t o hàm c , mình không gi i thi u B n nào mu n tìm hi u thì có th t ớ ấ ạ ũ ớ ệ ạ ố ể ể ự tìm hi u v i bác zai c a mình: Google.ể ớ ủ
1 Hàm, cách kh i t o, cách s d ng: ở ạ ử ụ
Hàm trong Objective-C c ng t n g t nh hàm các ngôn ng khác v tác d ng.ũ ươ ự ư ở ữ ề ụ
Hàm được dùng để th c hi n m t lo t các công vi c n h s n mà các công vi c này ự ệ ộ ạ ệ đị ẵ ệ được dùng nhi u l n trong toàn b ch n g trình.ề ầ ộ ươ
Ví d : m t l p h c, m i l n h p ph huynh là c n ph i chu n b nhi u th : gi y m i , kh nụ Ở ộ ớ ọ ỗ ầ ọ ụ ầ ả ẩ ị ề ứ ấ ờ ă
tr i bàn, bình hoa, ch ả ỗ để xe, ó n ti p ph huynh h c sinh, Nh ng m t n m, h p ph đ ế ụ ọ ư ộ ă ọ ụ huynh r t nhi u l n, cho nên vi c chu n b c ng ấ ề ầ ệ ẩ ị ũ được th c hi n nhi u l n ự ệ ề ầ Để ễ d dàng, giáo viên ch nhi m l p ra 1 t , phân công công vi c c th cho t ng t viên, c ú ng n lúc ủ ệ ậ ổ ệ ụ ể ừ ổ ứ đ đế chu n b h p ph huynh là t ó có trách nhi m chu n b chu á o cho bu i h p T ó c ng ẩ ị ọ ụ ổ đ ệ ẩ ị đ ổ ọ ổ đ ũ
t n g t nh 1 hàm.ươ ự ư
Ho c ví d : M t n g d ng ch i á nh c C m i con c ặ ụ ộ ứ ụ ơ đ ờ ứ ỗ ờ đượ đ ức i , n g d ng t n g phát 1 ụ ự độ
o n nh c Mà trong 1 ván c có r t nhi u n c c c i , cho nên vi c phát nh c c
th c hi n nhi u l n, lúc ó , ng i ta vi t 1 Hàm có nhi m v phát nh c Và c n khi th y ự ệ ề ầ đ ườ ế ệ ụ ạ ứ đế ấ
có con bài nào đượ đc á nh ra thì ngay l p t c g i Hàm phát nh c.ậ ứ ọ ạ
Cách t o Hàm (Hàm th c thi):ạ ự
Hàm th c thi là Hàm ch th c hi n các l nh bên trong hàm ó â y là d ng c b n nh t c a ự ỉ ự ệ ệ đ Đ ạ ơ ả ấ ủ Hàm trong Objective-C
Code:
-(void)HamGhiChu {
// Các lệnh được đặt trong này
NSLog(@"Ghi ghi chú ra cửa sổ Logs");
}
// Dấu trừ là bắt buộc Nó chỉ cho trình biên dịch biết rằng đây là hàm thực thi.
// void nghĩa là Hàm chỉ thực thi và không trả về giá trị nào cả
// HamGhiChu nghĩa là tên của Hàm Quy tắc đặt tên Hàm cũng tương tự với Quy tắc đặt tên biến.
Cách t o Hàm th c thi có tham s :ạ ự ố
Code:
-(void)HamGhiChu:(NSString *)CauGhiChu {
NSLog(@"Ghi chú: %@", CauGhiChu);
Trang 2// Tương tự như Hàm thực thi không có tham số.
// Dấu Hai chấm ( : ) là bắt buộc.
// Tham số ở đây là một chuỗi, nghĩa là khi gọi và chạy Hàm này, bạn phải truyền vào Hàm 1 chuỗi nào đó.
Cách t o Hàm th c thi có tham s và tr v k t qu :ạ ự ố ả ề ế ả
Code:
-(NSString *)KetQuaXepLoai:(int)DiemTongKet {
if (DiemTongKet > 8) {
return @"Được học sinh Giỏi!";
} else {
return @"Không được học sinh Giỏi.";
}
}
// Hàm này trả về mỗi chuỗi hoặc là @"Được học sinh Giỏi." hoặc là @"Không được học sinh Giỏi!" dựa vào việc kiểm tra tham số đã truyền vào Hàm.
// return là bắt buộc đối với Hàm này.
// Khi truyền tham số vào hàm, các tham số có kiểu là Đối tượng (thông thường có NS ở trước tên) thì phải có dấu sa8 (*)
Cách g i hàm:ọ
i v i các Hàm ch th c thi mà không có tham s , ta ch c n g i n gi n nh bên d i:
[ self HamGhiChu ];
Còn đố ới v i các Hàm th c thi có tham s , d nhiên b n ph i truy n tham s vào các Hàm ự ố ĩ ạ ả ề ố
i v i các Hàm lo i này, b n ch c n gõ
Đố ớ ạ ạ ỉ ầ selfcách ra 1 cái và gõ tên hàm, các g i ý s giúp ọ ẽ
b n tìm ạ được hàm b n mu n g i, sau ó ch vi c ENTER là chèn vào.ạ ố ọ đ ỉ ệ
[ self KetQuaXepLoai :2];
2 Class (L p - ớ Đố ượ i t ng):
B n nháy ph i chu t vào Project bên tay trái, ch n "New File"ạ ả ổ ọ
Trong c a s hi n ra, ch n Cocoa -> Objective-C Class -> Nextử ổ ệ ọ
t tên Class là Class_Bai6 Ch n Subclass of là NSObject -> Next -> Create
V y là b n ã t o xong 1 class có tên là Class_Bai6.ậ ạ đ ạ
Trang 4Lúc này, Xcode s t o ra 2 file, Class_Bai6.h và Class_Bai6.mẽ ạ
- Class_Bai6.h là file Header Dùng để khai báo bi n, khai báo các Hàm tu ch n.ế ỳ ọ
- Class_Bai6.m là file Main Dùng để tri n khai n i dung Các Hàm.ể ộ
Bài toán ví d : Vi t chụ ế ương trình nh p vào 1 s nguyên l n h n 0 và xem s ó có chia h t ậ ố ớ ơ ố đ ế cho 2 hay không
B m vào File Class_Bai6.h, khai báo m t Hàm dùng ấ ộ để ể ki m tra
Code:
@interface Class_Bai6 : NSObject
- (BOOL)KiemTraChiaHetCho2:(int)SoNhapVao;
// Hàm này trả về kiểu boolen (đúng - sai)
// Tên Hàm: KiemTraChiHetCho2 (Kiểm tra chia hết cho 2)
// Tham số có kiểu là int (integer - số nguyên), có tên biến là SoNhapVao
end
B m vào File Class_Bai6.m ấ để tri n khai n i dung Hàm.ể ộ
Tri n khai n i dung Hàm ki m tra chia h t cho 2 nh sau:ể ộ ể ế ư
Code:
- (BOOL)KiemTraChiaHetCho2:(int)SoNhapVao {
if (SoNhapVao != 0) { // Kiểm tra số nhập vào có khác không hay không // Trường hợp số nhập vào khác 0
if ((SoNhapVao % 2) == 0) { // Kiểm tra xem số nhập vào có chia hết cho 2 hay không
return TRUE;
} else {
return FALSE;
}
} else {
// Trường hợp số nhập vào là 0 (bằng 0)
return FALSE;
}
}
Trang 5B n hãy th b m Run xem.ạ ử ấ
Lúc này Class c a b n v n ch a ch y vì nó ch a ủ ạ ẫ ư ạ ư được tri u g i.ệ ọ
tri u g i Class v a t o, b n b m vào file main.m
Bên dưới dòng#import <Foundation/Foundation.h>
B n gõ vàoạ #import "Class_Bai6.h", ây là dòng l nh nh p Class Class_Bai6 vào.Đ ệ ậ
Trong Hàm main, vi t o n code ế đ ạ để ấ c p phát b nh cho Hàm ộ ớ được t o b ng Class ạ ằ
Class_Bai6 và ti n hành làm công vi c gi i bài toán ví d ế ệ ả ụ
Code:
int main(int argc, const char * argv[]) {
@autoreleasepool {
Class_Bai6 *KiemTra = [[Class_Bai6 alloc] init];
// Kiểm tra xem 10 có chia hết cho 2 hay không
[KiemTra KiemTraChiaHetCho2:10] ? NSLog(@"Chia hết cho 2.") : NSLog(@"Không chia hết cho 2.");
// Kiểm tra xem 13 có chia hết cho 2 hay không
int So = 13;
[KiemTra KiemTraChiaHetCho2:So] ? NSLog(@"%i chia hết cho 2.", So) : NSLog(@"%i không chia hết cho 2.", So);
}
return 0;
}
Trang 6Và bây gi là ch y th xem k t qu th nào nhé.ờ ạ ử ế ả ế
V y là trên ây b n ã hi u v Hàm là nh th nào và Class là nh th nào Hi u s qua ậ đ ạ đ ể ề ư ế ư ế ể ơ thôi, bây gi làm bài t p gi i m i nhé.ờ ậ ả ỏ
3 Bài t p: ậ
Yêu c u dùng Class và Hàm ầ để gi i các bài t p bên d ả ậ ướ i.
Gi i xong, b n ả ạ đă ng các Hàm c a b n vi t ra lên ây cho m i ng ủ ạ ế đ ọ ườ i cùng tham kh o ả
và góp ý nhé.
1 Vi t ng d ng xu t ra c a s Log các s nguyên l n h n 0 chia h t cho 3 và nh h n s ế ứ ụ ấ ử ổ ố ớ ơ ế ỏ ơ ố
n V i n là s b n t ch n.ớ ố ạ ự ọ
2 Vi t ng d ng tính T ng và Tích các s t n ế ứ ụ ổ ố ừ đến m (n và m t ch n sao cho n < m) và ự ọ
xu t ra c a s Log.ấ ử ổ
3 Vi t ng d ng in ra c a s Log 100 ch cái b t k (v i ch cái b t k cho b n t ch n).ế ứ ụ ử ổ ữ ấ ỳ ớ ữ ấ ỳ ạ ự ọ
4 Vi t ng d ng gi i phế ứ ụ ả ương trình b c 1 v i các tham s c a phậ ớ ố ủ ương trình do b n t ch n.ạ ự ọ
ax + b = 0
5 Vi t ng d ng gi i phế ứ ụ ả ương trình b c 2 v i các tham s nh sau: (ax^2 + bx + c = 0)ậ ớ ố ư
a = 5, b = -6, c = +1
Chúc các b n vui.ạ
Project mình ã nén l i và ính kèm cho các b n ti n theo dõi.đ ạ đ ạ ệ
Link: http://www.mediafire.com/folder/jjwb8z0gglzb3/Bài_6