標籤:打電話 關係 tracking 播放 ring set pop 簡訊 方法
1.匿名對象:就是沒有Moniker
1、匿名對象僅用一次
使用情境:
1、當我們僅僅要調用一個對象的某個方法一次的時候能夠使用匿名對象
2、匿名對象能夠作為函數的實際參數
#import <Foundation/Foundation.h>#import "CZPerson.h"#import "CZBook.h"@interface CZBook : NSObject@end@implementation CZBook@end@interface CZPerson : NSObject{ int _age;//年齡 NSString *_name;//名字}//寫方法 setter- (void) setAge:(int) age;//讀方法 getter- (int) age;- (void) setName:(NSString *) name;- (NSString *) name;- (void) readBook:(CZBook *) book;@end@implementation CZPerson//寫方法 setter- (void) setAge:(int) age{ _age = age;}//讀方法 getter- (int) age{ return _age;}- (void) setName:(NSString *) name{ _name = name;}- (NSString *) name{ return _name;}- (void) readBook:(CZBook *) book{ }@endint main(int argc, const char * argv[]) { [[CZPerson new] setAge:10]; /* 1、首先建立一個匿名人對象 2、調用剛建立出來的人對象的 readBook方法 3、傳入一個匿名的CZBook對象 [CZPerson new] 建立一個匿名的人對象 [CZBook new] 建立一個匿名的Book對象 */ [[CZPerson new] readBook:[CZBook new]]; NSLog(@"%d",[[CZPerson new] age]); return 0;}
2.依賴關係:
A對象作為B對象的局部變數或是方法形參的,B依賴與A,這時候我們稱A與B之間存在一種依賴關係
物件導向設計中:
耦合度:當改動一個對象的時候。對另外一個對象的影響程度
低耦合: 當改動一個對象的對其它對象影響比較小
高內聚:一個對象只做自己相關的事情
物件導向設計原則:單一職責原則
#import <Foundation/Foundation.h>@interface CZBeauty : NSObject{ NSString * _name;//姓名}- (void) setName:(NSString *) name;- (NSString *) name;/** * 給土豪打電話 */- (void) callTuHaoWithPhone:(CZPhone *) phone;- (void) sendMessageToDiaoSi;@end@implementation CZBeauty- (void) setName:(NSString *) name{ _name = name;}- (NSString *) name{ return _name;}/** * 給土豪打電話、 對象作為形式參數 */- (void) callTuHaoWithPhone:(CZPhone *) phone{ NSLog(@"給土豪打電話了"); [phone call:@"土豪的電話號碼"];}- (void) sendMessageToDiaoSi{ NSLog(@"給屌絲髮送簡訊了");// 對象作為另外一個類的局部變數 CZPhone *phone = [CZPhone new]; [phone sendMessage:@"呵呵,要請我看電影嗎?"];}@end@interface CZPhone : NSObject/** * 發簡訊 * * @param message 資訊內容 */- (void) sendMessage:(NSString *) message;/** * 打電話 */- (void) call:(NSString *) phoneNum;@end@implementation CZPhone/** * 發簡訊 * * @param message 資訊內容 */- (void) sendMessage:(NSString *) message{ NSLog(@"發送一條 %@ 簡訊",message);}/** * 打電話 */- (void) call:(NSString *) phoneNum{ NSLog(@"給電話號碼為 %@ 的人打電話",phoneNum);}@endint main(int argc, const char * argv[]) {// 建立一個美女 CZBeauty *beauty = [CZBeauty new];// 建立一個電話 CZPhone *phone = [CZPhone new]; [beauty setName:@"fbb"]; [beauty callTuHaoWithPhone:phone]; [beauty sendMessageToDiaoSi]; return 0;}
3.關聯關係(多檔案)
HasA關係:當一個對象擁有另外一個對象的時候,
當A對象為B對象的成員變數的時候,
A對象與B對象之間存在一種關聯關係
關聯關係是物件導向中最經常使用一種關係
---------------------------------------------------下面瞭解
關聯關係的耦合度要高於依賴關係
一對一 :單方依賴,雙邊依賴
一對多關聯性 : 班級與學生,一個班級能夠有多個學生
多對多關係 : 學生與課程。一個學生能夠學習多門課程,一個門課程被多個學生學習
#import <Foundation/Foundation.h>#import "CZBeauty.h"#import "CZNewBeauty.h"int main(int argc, const char * argv[]) { CZBeauty *beauty = [CZBeauty new]; CZIPad *ipad = [CZIPad new]; CZNewBeauty *newBeauty = [CZNewBeauty new]; [newBeauty setIPad:ipad]; [newBeauty lookAtMovie]; [newBeauty listenToMusic]; [newBeauty playGame]; [newBeauty takeSelfPhoto]; return 0;}#import <Foundation/Foundation.h>#import "CZIPad.h"/* 當我們在一類中總是使用某個對象,作為形式參數,那麼我們就把這個參數提取成員變數 */@interface CZBeauty : NSObject//使用iPad看電影- (void) lookAtMovieWithIPad:(CZIPad *) ipad;//使用IPad聽音樂- (void) listenToMusicWithIPad:(CZIPad *) ipad;/** * 美女玩遊戲 */- (void) playGameWithIPad:(CZIPad *) ipad;/** * 美女自拍 */- (void) takeSelfPhotoWithIPad:(CZIPad *) ipad;@end#import "CZBeauty.h"@implementation CZBeauty//使用iPad看電影- (void) lookAtMovieWithIPad:(CZIPad *) ipad{ NSLog(@"美女要看電影了!"); [ipad playMovie];}//使用IPad聽音樂- (void) listenToMusicWithIPad:(CZIPad *) ipad{ NSLog(@"美女要聽音樂了!"); [ipad playMusic];}/** * 美女玩遊戲 */- (void) playGameWithIPad:(CZIPad *) ipad{ NSLog(@"美女要玩遊戲了!
"); [ipad playGame];}/** * 美女自拍 */- (void) takeSelfPhotoWithIPad:(CZIPad *) ipad{ NSLog(@"美女要自拍了!
"); [ipad takePhoto];}@end#import <Foundation/Foundation.h>@interface CZIPad : NSObject//播放電影- (void) playMovie;//播放音樂- (void) playMusic;//玩遊戲- (void) playGame;//拍照- (void) takePhoto;@end#import "CZIPad.h"@implementation CZIPad//播放電影- (void) playMovie{ NSLog(@"iPad播放電影");}//播放音樂- (void) playMusic{ NSLog(@"iPad播放音樂");}//玩遊戲- (void) playGame{ NSLog(@"iPad玩遊戲");}//拍照- (void) takePhoto{ NSLog(@"iPad自拍");}@end#import <Foundation/Foundation.h>#import "CZIPad.h"@interface CZNewBeauty : NSObject{// 讓美女擁有一個IPad CZIPad * _iPad;}//寫方法。買一個IPad- (void) setIPad:(CZIPad *) iPad;//看電影- (void) lookAtMovie;//聽音樂- (void) listenToMusic;/** * 美女玩遊戲 */- (void) playGame;/** * 美女自拍 */- (void) takeSelfPhoto;@end#import "CZNewBeauty.h"@implementation CZNewBeauty//寫方法,買一個IPad- (void) setIPad:(CZIPad *) iPad{ _iPad = iPad;}//看電影- (void) lookAtMovie{ NSLog(@"美女看電影"); [_iPad playMovie];}//聽音樂- (void) listenToMusic{ NSLog(@"美女聽音樂"); [_iPad playMusic];}/** * 美女玩遊戲 */- (void) playGame{ NSLog(@"美女玩遊戲"); [_iPad playGame];}/** * 美女自拍 */- (void) takeSelfPhoto{ NSLog(@"美女自拍"); [_iPad takePhoto];}@end
學習心得:
通過各自相應的範例,熟練掌握物件導向,為以後的學習打好基礎
ios學習之旅--oc對象的關係