CƠ BẢN VỀ HÀM, CLASS TRONG OBJECTIVE C Trong bài viết này, mình sẽ giới thiệu về 1 khái niệm mới “hàm ” và “class” trong Objective C.. Mình sẽ giúp các bạn biết cách khai báo một hàm, cl
Trang 1CƠ BẢN VỀ HÀM, CLASS TRONG OBJECTIVE C
Trong bài viết này, mình sẽ giới thiệu về 1 khái niệm mới “hàm ” và “class”
trong Objective C Mình sẽ giúp các bạn biết cách khai báo một hàm, class, cách gọi hàm , gọi class, hiểu về tính chất của class, Cách truyền tham số cho hàm…
Khởi tạo dự án mới đặt
tên:
Đầu tiên mình sẽ giới thiệu về hàm trong Objective C : làm việc trên file
ViewController.m
Cách khai báo hàm tổng quát:
1 - void ) tênHàm {
2 // thực thi các dòng code.
Trang 23 }
1 - void ) thongTin {
2 NSLog(@"thong tin" ) ;
3
4 }
Tổng quát:Đối với nhiều tham số truyền vào, (kiểu dữ liệu) tênBiến1 : (kiểu dữ liệu) tênBiến2
lưu ý: Sau tên Biến phải có dấu cách xong mới đến dấu ‘:‘
1 - void ) tênhàm: ( kiểu dữ liệu ) tênBiến1 nhắcNhở: ( Kiểu dữ liệu ) Tên biến 2{
2 }
ví dụ: Tính hiệu của 2 số soA và soB!
1 - void ) hieu: ( int ) soA : ( int ) soB {
3 NSLog(@"hieu:%d",hieu ) ;
4 }
ví dụ: Trả về name với email
1 - void ) chuoiKyTu: ( NSString * ) name : ( NSString* ) email {
2 NSLog(@"name:%@",name ) ;
3 NSLog(@"Email:%@",email ) ;
4 }
đây là tính năng khác biệt của Objective C so với các ngôn ngữ khác!
Khai báo tổng quát:
1 - void ) tênhàm: ( kiểu dữ liệu ) tênBiến1 nhắcNhở: ( Kiểu dữ liệu ) Tên biến 2{
2 }
lưu ý: Sau tên Biến phải có dấu cách xong đến nhắc nhở mới đến dấu ‘:‘
Trang 3ví dụ: Tổng của 2 số: nhắc nhở là “Cong”
1 - void ) tong: ( int ) soA Cong: ( int ) soB {
3 NSLog(@"tong:%d",tong ) ;
4 }
=> nhắc nhở giúp chúng ta hiểu về chức năng của hàm!
Để gọi hàm trong Objective C:
Tổng quát:
1 [ self tênHàm ] ;
Ví dụ các hàm khai báo bên trên:
ex1 : Gọi hàm thongTin:
1 [ self thongTin ] ;
ex2: Tính hiệu của 2 số soA và soB:
1 [ self hieu: 7 3] ;
ex3:Trả về name với email :
1 [ self chuoiKyTu:@"binh" :@"maibinhpro89@gmail.com" ] ;
ex4:Tổng của 2 số: nhắc nhở là “Cong” :
1 [ self tong: 3 Cong: 5] ;
=> Kết quả của các hàm trên là:
1 thong tin
2 tong: 8
3 hieu: 4
Tiếp theo mình sẽ giới thiệu về class trong Objective C
Trang 4Ở đây mình sẽ giới thiệu các bạn cách khai báo và sử dụng class, mình không đi sâu ý nghĩa class kế thừa … ngôn ngữ nào ý nghĩa cũng giống nhau
=>Để tạo một class: newFile -> đặt tên sinhVien kế thừa từ NSObject!
Cách khai báo class:
2 @end
NSObject là lớp gốc của hầu hết các Mục tiêu-C phân cấp lớp Qua NSObject , đối tượng thừa kế một giao diện cơ bản cho các hệ thống thời gian chạy và khả năng để hành xử như các đối tượng Objective-C
tại file sinhsinhVien.h
Trang 5ví dụ: Class sinh viên:
2 @end
Để khai báo thuộc tính sử dụng từ khoá:
@property kiểudữliệu tên thuộc tính
– (void) tênPhươngThức => đây là thuộc tính bình thường truy xuất thông qua đối tượng gọi đến thuộc tính của nó
+(void) tênPhươngThức =>đây là thuộc tính tĩnh (static) có thể truy xuất thông qua class gọi đến thuộc tính, đối tượng gọi đến class
-(instancetype) Hàmkhởitạo: truyền tham số => giống contructor trong java đây là hàm khởi tạo sẽ được gọi khi tạo một đối tượng có tham số (của 1 class)
-Hàm init (giống contructor trong java) là hàm không tham số, ngay khi tạo một đối tượng hàm này sẽ được gọi, từ IOS7 trở lên xcode tự tạo hàm không có tham số
– get set thuộc tính, IOS7 xcode tự động gen
ví dụ tạo một class sinhVien:
2 @property int tuoi;
4 - void ) thongtin;// ham
5 + ( void ) diemSV;// hàm static
6 - instancetype ) initSinhVien: ( NSString* ) tenSV : ( int ) tuoiSV : ( NSString* ) email;
7 @end
tại file sinhvien.m thêm đoạn mã sau để viết code cho hàm init , hàm get set,hàm phương thức
mình đã giải thích từng dòng code !!!
1 // sinh ra bien the hien va sinh ra get set!mac dinh duoc ta ra.
5
6 //contructor mac dinh! mac dinh duoc ta ra
7 - ( instancetype ) init
8 {
9 self = [ super init ] ;
10 if ( self ) {
11 NSLog( @"init" ) ;
12 }
Trang 613 return self;
14 }
15 // contructor co tham so!
16 - instancetype ) initSinhVien: ( NSString* ) tenSV : ( int ) tuoiSV : ( NSString * ) email {
17 self= [ super init ] ;
18 self.ten=tenSV;
19 self.tuoi=tuoiSV;
20 self.email=@"maibinX";
21 return self;
22 }
23 // chi dung doi tuong de goi!
24
25 - void ) thongtin {
26 NSLog( @"thong tin" ) ;
27
28 }// ham static co the dung class de goi ra ! ham static khong su dung duoc cac thuoc tinh binh thuong
29 + ( void ) diemSV {
30 NSLog( @"diem sinh viên" ) ;
31 }
Tạo một đối tượng của class trong Objective C, cách gọi thuộc tính và phương thức class
Vào file ViewController.h
1 #import "sinhVien.h"
Vào file ViewController.m trong -(void)viewDidLoad{} thêm đoạn mã:
1 - ( void ) viewDidLoad {
2 // khai báo đối tượng không có tham số.
3 sinhVien *sv= [[ sinhVien alloc ] init ] ;
4 [ sv setTen:@"binh" ] ;
5 [ sv setEmail:@"maibinhpro" ] ;
6 [ sv setTuoi: 22] ;
7 NSLog(@"tên:%@, tuổi:%d, email: %@", [ sv ten ] , [ sv tuoi ] , [ sv email ]) ;
8 [ sv thongtin ] ;
9 [ sinhVien diemSV ] ;
10
11 }
Tạo một đối tượng không tham số:
ngay lật tức init không tham số được gọi và log ra “init” Tiếp theo set các giá trị thuộc tính cho đối tượng NSLog ra thông tin sv Cuối cùng gọi đến 2 phương thức của đối tượng: phương thức bình thường [sv thongTin], phương thức (static) [sinhVien diemSV]
Trang 7kết quả :
1 init
2 tên:binh, tuổi: 22 , email: maibinhpro
3 thong tin
Tạo một đối tượng có tham số:
-(void)viewDidLoad{} thêm đoạn mã:
1 //khai báo đối tượng có tham sô.
2 sinhVien *sv1= [[ sinhVien alloc ] initSinhVien:@"dat" : 23 :@"maidat" ] ;
3 NSLog(@"tên:%@, tuổi:%d, email: %@", [ sv1 ten ] , [ sv1 tuoi ] , [ sv1 email ]) ;
4 [ sinhVien diemSV ] ;
5 [ sv1 thongtin ] ;
ngay lật tức init có tham số được gọi Và tự set các giá trị cho thuộc tính của đối tượng NSLog ra thông tin sv Cuối cùng gọi đến 2 phương thức của đối tượng: phương thức bình thường [sv thongTin], phương thức (static) [sinhVien diemSV]
kết quả:
1 tên:dat, tuổi: 23 , email: maidat
3 thong tin
full link code