標籤:物件導向 設計 手機 foundation架構 iphone
main.m
//編輯字型大小command + <//編譯運行快速鍵 com + R#import <Foundation/Foundation.h>#import "Iphone.h"//要使用類檔案建立對象//1.要使用#import 引入相關的.h檔案//2.建立一個對象//3.對對象的成員變數進行賦值操作//#import的作用//1.能夠引入相應的標頭檔,提供快捷代碼提示//2.能夠自動防止重複引入標頭檔int main(int argc, const char * argv[]){ Iphone * phone = [Iphone new]; phone->_ram = 512; phone->_cpu = 1.5; //%@實際上是對象預留位置 NSLog(@"%@",phone); /*執行個體3 char * s = "abc"; //oc中定義一個字串變數 NSString * str = @"abcd"; NSString * str2 = @"efg"; NSLog(@"%@",str); NSLog(@"%@ %@",str,str2); //stringWithFormat專門用來拼接字串方法 //使用方法和NSLog一樣 NSString * str3 = [NSString stringWithFormat:@"%@ %@",str,str2]; */ //如何建立一個OC對象呢? //1.必須要調用建立對象的方法, new 專門用來建立對象 //2.oc只要調用方法就必須在[ ]內實現 //phone 就叫做執行個體變數,儲存一個對象的指標地址 //1.開闢記憶體空間,來儲存物件 //2.初始化成員變數的值為 0 //3.返回對象的指標地址 //Iphone * phone = [Iphone new]; //直接對對象的成員變數進行賦值 //phone->_ram = 512; //phone->_cpu = 1.5;// NSLog(@"phone cpu %.2f,ram %.2f",phone->_cpu,phone->_ram); //'-[Iphone aboutMyPhone]: unrecognized selector sent to instance 0x100102d70'沒有實現 //OC中方法調用又叫做發送訊息,也就是常說的訊息機制 //[phone aboutMyPhone]; // [phone sendMessag:"are you ok?"]; //[phone sendMessag:"are you ok?":"123456"]; // [phone sendMessagWithMessageContent:"are you ok?" andPhoneNumber:"13527689735"]; // insert code here... //1.不需要添加\n換行 //2.會自動列印一些與系統相關資訊 //3.要拼接字串需要用%@預留位置 //4.OC中使用的字串必須使用@“”表示 /* //範例程式碼1 int year = 2015; int month = 7; int day = 15; NSLog(@"Hello, World %d %d %d %@!",year,month,day,@"今天開學了"); printf("hello world %d %d %d\n",year,month,day); */ return 0; }
iphone.h
#import <Foundation/Foundation.h>//@interface類檔案的聲明開始//@end 類檔案聲明結束//:NSObject 繼承的文法,預設所有的類都繼承自NSObject基礎類//文法規則://1.類名命名規則:駝峰命名法,並且首字母必須大寫//2.成員變數:一定要底線開頭@interface Iphone : NSObject{ //@public 被修飾的成員變數,在類的外部可以直接存取 @public float _cpu;//用來儲存CPU的大小 float _ram;//用來儲存內部容量大小}//專門用來聲明成員變數//OC中的方法//1.叫做對象方法//只能使用對象(執行個體變數)調用//並且必須以 - 號開始聲明//OC中只要是在方法聲明中出現的資料類型必須使用()擴住- (void)aboutMyPhone;//C語言之中的方法void sendMessage(char * content)//發送訊息//OC方法聲明中有多少個參數,就必須對應多少個://.h與.m檔案之間的快速切換 control + com + 上/下-(void)sendMessag:(char *)content;-(void)sendMessag:(char *)content andPhoneNumber:(char *)phoneNumber;//oc中的方法命名注重的是自注釋,也就是能夠直接通過方法的名稱,解讀出具體方法的功能-(void)sendMessagWithMessageContent:(char *)messageContent andPhoneNumber:(char *)phoneNumber;//2.類方法@end
iphone.m
#import "Iphone.h"//@implementation類實現部分的開始//@end 類實現部分的結束//.m檔案就是用來實現.h檔案中聲明的一系列方法的作用@implementation Iphone//1.能拷貝不手寫//2.儘可能的使用代碼提示功能-(void)aboutMyPhone{ //單行注釋快速鍵com + ? //快速定 位到行首/尾com + 左鍵/右鍵 //快速選中當前行 com + shift + 左鍵/右鍵// NSLog(@"aboutMyPhone已經實現了"); //在類的內部可以直接使用成員變數的名稱去獲得成員變數的值 NSLog(@"phone cpu %.2f,ram %.2f",_cpu,_ram);}-(void)sendMessag:(char *)content{ NSLog(@"%s",content);}-(void)sendMessag:(char *)content andPhoneNumber:(char *)phoneNumber{ NSLog(@"給%s發送訊息%s",phoneNumber,content);}-(void)sendMessagWithMessageContent:(char *)messageContent andPhoneNumber:(char *)phoneNumber{ NSLog(@"給%s發送訊息%s",phoneNumber,messageContent);}//重寫description方法//description建議大家在實際開發中都要重寫這個方法,然後將類中有意義的成員變數列印出來,這樣非常方便我們偵錯工具-(NSString *)description{ //最佳化 return [NSString stringWithFormat:@"我的cpu=%.1f我的內部儲存是=%.1fMB",_cpu,_ram]; NSString *result = [NSString stringWithFormat:@"我的cpu=%.1f我的內部儲存是=%.1fMB",_cpu,_ram]; return result; return @"ffffffff";}@end
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
設計一部iphone手機用物件導向的方法