這是一道類設計題 主要考沒有arc的情況下 手動寫getter setter 手動進行記憶體管理。
定義乙個學生類,需要有姓名,年齡,考試成績三個成員屬性,建立
5個物件,屬性可以任意值。(
objective-c)
1)
不使用@property
,手動編寫他們的訪問器方法(
getter
和setter
),注意記憶體管理(手動管理記憶體)
2)
增加乙個便利構造器(快速構造器)
3)
使用nslog
輸出學生物件時,輸出資訊格式為:
my name is *** age is *** score is ***
4) 對5
個學生物件按照成績
—》年齡
—》姓名優先順序排序(成績相同按照年齡排序,成績年齡相同按照姓名排序(
5個學生的屬性值自己隨便設定,姓名不考慮中文,按
26個大小字母排序))
student.h
#import @inte***ce student : nsobject
-(void) setname:(nsstring*) name;
-(nsstring*) name;
-(void) setage:(int) age;
-(int)age;
-(void) setscore:(int) score;
-(int)score;
-(id) initwithname:(nsstring*)name andage:(int)age andscore:(int)score;
-(void) printinfo;
+(id) stuwithname:(nsstring*)name andage:(int)age andscore:(int)score;
@end
student.m
#import "student.h"
@implementation student
-(void)setname:(nsstring *)name
_name=name;
}-(nsstring *)name
-(void)setage:(int)age
-(int)age
-(void)setscore:(int)score
-(int)score
-(void)dealloc
-(id)initwithname:(nsstring *)name andage:(int)age andscore:(int)score
return self;
}+(id)stuwithname:(nsstring *)name andage:(int)age andscore:(int)score
-(void)printinfo
- (nscomparisonresult)comparestu:(student *)stu
}return result;
}@end
main.m
#import #import "student.h"
int main(int argc, const char * argv) ];
/*輸出結果
2015-01-29 21:19:48.120 測試題10[2752:378621] 位置1的 name is s5 age is 55 score is 55
2015-01-29 21:19:48.120 測試題10[2752:378621] 位置2的 name is s4 age is 44 score is 44
2015-01-29 21:19:48.120 測試題10[2752:378621] 位置3的 name is s3 age is 33 score is 33
2015-01-29 21:19:48.120 測試題10[2752:378621] 位置4的 name is s2 age is 22 score is 22
2015-01-29 21:19:48.120 測試題10[2752:378621] 位置5的 name is s1 age is 11 score is 11
*/nslog(@"排序結束");
[s1 release];
[s2 release];
[s3 release];
[s4 release];
[s5 release];
}return 0;
}
解析:在student.m 檔案中我寫了乙個
內部函式 在介面宣告部分是沒有寫的
只能在這個類中使用,
這道題的難點在於排序 需自定義排序規則
呼叫方式:
nsarray
*sortarray=[array
sortedarrayusingselector
:@selector
(comparestu:)];
其中comparestu 為自定義的內部方法 用於進行排序 返回結果為 nscomparisonresult
過兩天我會單獨寫乙個關於nsarray 排序相關的博文。
OC丟擲異常與自定義異常類
main.m oc丟擲異常與自定義異常類 created by goddog on 15 1 11.1.自行丟擲異常,應該使用 throw語句,throw語句可以單獨使用,throw語句丟擲的不是異常類,而是乙個異常例項。myexception.h oc丟擲異常與自定義異常類 created by ...
OC中重寫構造方法及自定義構造方法
構造方法 用來初始化物件的方法 如 person p person alloc init alloc用來分配記憶體空間 init初始化,也就是oc中的構造方法 重寫構造方法 instancetype init if self super init age 18 return self 將構造方法初始...
新增自定義引數及設定方式
引數列表顯示引數 在引數管理介面,增加乙個引數。一般情況下,引數管理這個選單對用於是不可見的,需要自己新增選單,ui類名com.kingdee.eas.base.param.client.paramlistui。增加完選單後,重新登陸,就可以在需要的子系統下面,增加引數 自定義引數介面 自定義引數,...