Quản lý lớp (New Class) trong Object C

I. Thông tin chung:
– Các đối tượng là không thể thiếu trong lập trình hướng đối tượng hiện nay (OOP Object Oriented Programming). Đối tượng không chỉ giúp chúng ta quản lý những gì đang sử dụng trong chương trình một cách dễ dàng hơn mà còn có thể giảm lượng mã nguồn xuống cũng như tái sử dụng nó trong các chương trình khác.

II. Nội dung chính:
1. Tạo một lớp mới (New Class):
Những điểm cần lưu ý:
– Một biến toàn cục (static) có thể được truy cập từ bất tứ lớp nào
– Bạn có thể thể tạo một phương thức khởi tạo mới dành cho lớp và thêm những đoạn mã cần thiết vào để làm những gì bạn muốn mà không ảnh hưởng đến khả năng làm việc của lớp

* Sau đây là đoạn code mẫu dành cho việc tạo một lớp mới có thêm một số đoạn mã để xử lý trước khi khởi tạo lớp.

2. Phần giao diện (File .h):
– Một lớp cần có những thứ sau đây

#import <Foundation/Foundation.h>

@interface LKStar: NSObject

{

}

+ (LKStar *) lkAlloc;

+ (int) lkTotal;

@end

* Giải thích:
– Mọi lớp đều cần có kế thừa lớp NSObject trong C Object
– Trong lớp header sẽ có 2 phương thức toàn cục để khởi tạo và trả về số lượng các lớp đã được khởi tạo.
– Đây không phải là phương thức cục bộ (private) mà là phương thức toàn cục (public) để các class khác vẫn có thể truy cập vào trong lớp.

3. Phần thực hiện (file .m):
Mã nguồn

#import “LKStar.h”

static int lkNumOfStar = 0;

@implementation LKStar

+ (LKStar *) lkAlloc

{

lkNumOfStar++;

return [LKStar alloc];

}

+ (int) lkTotal

{

return lkNumOfStar ;

}

@end

* Giải thích:
– Tạo biến toàn cục lkNumOfStar để lưu trữ số lượng những đối tượng ở trong toàn chương trình.
– lkAlloc là phương thức khởi tạo. Phương thức sẽ cộng vào trong biến đếm trước khi khởi tạo đối tượng.
– lkTotal trả về số lượng đối tượng đã được khởi tạo

4. Cách sử dụng trong chương trình:
Mã nguồn:

LKStar *lkRedStar, *lkBlueStar, *lkYellowStar;

lkRedStar = [[LKStar lkAlloc] init];

lkBlueStar = [[LKStar lkAlloc] init];

lkYellowStar = [[LKStar lkAlloc] init];

Ngoài ra, ta có thể sử dụng lệnh để biết được có bao nhiêu đối tượng đã được tạo bằng cách gọi dòng lệnh sau

int lkCounting = [LKStar lkNumOfStar];
=> Chúng ta sẽ có đươc lkCounting = 3;

Đây là code đầy đủ cho các bạn kiểm tra

#include “LKStar.h”

int main (int argc, const char * argv[])

{

LKStar *lkRedStar, *lkBlueStar, *lkYellowStar;

lkRedStar = [[LKStar lkAlloc] init];

lkBlueStar = [[LKStar lkAlloc] init];

lkYellowStar = [[LKStar lkAlloc] init];

int lkCounting = [LKStar lkNumOfStar];

NSString *thongbao = [[NSString alloc] initWithFormat:@”Number of Star in Program: %i”, lkCounting];

lbllkThongBao.text = thongbao;

}

III. Kết luận:
– Đối tượng là phần không thể thiếu đối với lập trình OOP. Tuy nhiên không phải lúc nào bạn cũng chỉ dùng những lệnh cơ bản của Object C (Alloc) mà cần thêm những lệnh mới để có thể làm cho việc sử dụng những đối tượng được quản lý chặt chẽ hơn.
– Đây là phần nên nghiên cứu và sử dụng để dễ dàng hơn cho việc lập trình với Object C.

Tagged: , , , , , , , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: