มาดูวิธีการสร้าง Class และ Object ในภาษา Objective C กันดีกว่า
การสร้าง Class ในภาษา Objective C
ส่วนประกอบจะแบ่งออกเป็น 3 ส่วนคือ
1. ส่วนของ Interface
เปรียบเสมือนหัวของ class ไว้สำหรับประกาศชื่อ Class และส่วนประกอบของ (method และ variable) Class รวมถึงการกำหนด property เบื้องต้นของตัวแปรใน Class
ตัวอย่างการประกาศ Class ชื่อ BasicCalc
//ประกาศ prototype method ให้กับ class เพื่อนำไป Implement ต่อ
@interface BasicCalc : NSObject {
NSInteger num1,num2;
NSInteger ans;
}
//ประกาศ prooerty ให้กับตัวแปรที่ประกาศอยู่ทางด้านบน
//ประกาศ prooerty ให้กับตัวแปรที่ประกาศอยู่ทางด้านบน
@property (nonatomic,assign) NSInteger num1;
@property (nonatomic,assign) NSInteger num2;
@property (nonatomic,assign) NSInteger ans;
//ประกาศ prototype method ให้กับ class เพื่อนำไป Implement ต่อ
-(void) setNum1:(NSInteger)_num1 andNum2:(NSInteger)_num2;
-(void) plus;
-(void) minus;
-(void) showAns;
@end
2. ส่วนของการ Implementation
เป็นส่วนที่ไว้สำหรับเขียนการทำงานของ method และกำหนด getter และ setter ของตัวแปร
ตัวอย่างการ Implementation ของ Class ชื่อ BasicCalc
//ส่วนนี้สำหรับการประกาศ getter setter เมื่อใช้คำสั่ง synthesize จะเป็นการประกาศ getter setter เองโดยยึด property ในส่วนของ Interface
@implementation BasicCalc
@synthesize num1;
@synthesize num2;
@synthesize ans;
//ส่วนสำหรับ Implement Method ที่ประกาศไว้ในส่วนของ Interface
-(void) setNum1:(NSInteger)_num1 andNum2:(NSInteger)_num2
{
self.num1 = _num1;
self.num2 = _num2;
}
-(void) plus
{
self.ans = self.num1+self.num2;
}
-(void) minus
{
self.ans = self.num1-self.num2;
}
-(void) showAns
{
NSLog(@"Ans = %d",self.ans);
}
@end
3.ส่วนของการประกาศ Object และเรียก Object ให้ทำงาน
เป็นส่วนที่ใช้สำหรับประกาศ Object จาก Class ที่กำหนดขึ้น
ตัวอย่างการนำไปใช้ในฟังก์ชัน main
//ประกาศ Object ฬนรูปแบบของ Pointer โดยการ alloc (จองพื้นที่) ตามด้วยการ init (สร้าง Object) ตามด้วยการ retain (การให้ pointer ชี้ไปที่ Object ที่สร้างขึ้น)
BasicCalc *basicCalc = [[[BasicCalc alloc]init]retain];
//ประกาศตัวแปรเพื่อนำไปใช้งาน
NSInteger num1=3,num2=4;
//เรียกใช้งาน method ต่างๆ ใน Object basicCalc
//ให้ pointer ทำการปล่อย Object ทิ้งเนื่องจากไม่มีการใช้งานแล้ว (เมื่อ release แล้ว retainCount ใน Object จะลดลง และเมื่อเป็น 0 แล้วจะทำการคืนพื้นที่ให้เอง)
ตัวอย่างการนำไปใช้ในฟังก์ชัน main
//ประกาศ Object ฬนรูปแบบของ Pointer โดยการ alloc (จองพื้นที่) ตามด้วยการ init (สร้าง Object) ตามด้วยการ retain (การให้ pointer ชี้ไปที่ Object ที่สร้างขึ้น)
BasicCalc *basicCalc = [[[BasicCalc alloc]init]retain];
//ประกาศตัวแปรเพื่อนำไปใช้งาน
NSInteger num1=3,num2=4;
//เรียกใช้งาน method ต่างๆ ใน Object basicCalc
[basicCalc setNum1:num1 andNum2:num2];
[basicCalc plus];
[basicCalc showAns];
[basicCalc minus];
[basicCalc showAns];
//ให้ pointer ทำการปล่อย Object ทิ้งเนื่องจากไม่มีการใช้งานแล้ว (เมื่อ release แล้ว retainCount ใน Object จะลดลง และเมื่อเป็น 0 แล้วจะทำการคืนพื้นที่ให้เอง)
[basicCalc release];
หวังว่าจะมีประโยชน์ไม่มากก็น้อยนะครับ ^^
เยี่ยมมาก ละเอียดดีมาก ขอบคุณค่ะ
ตอบลบ