您好,登錄后才能下訂單哦!
一、OC概述
代碼格式
int main(int argc, const char * argv[]) {
@autoreleasepool {
代碼區
}
return 0;
}
1、OC中支持基本數據類型 int 、float
2、C語言中使用字符串 "hello" OC中使用字符串對象 @"hello"
3、NSString是系統類庫提供的--字符串類
定義對象類型的變量時必須加 * NSString * name = @"zhangyixing";
4、OC中的新類型 類類型(對象類型)
5、printf(C) NSLog(OC) 輸出字符串內容 NSLog( @"zhangyixing");
6、輸出基本數據類型的值
NSLog(@"number = %d, score= %.2f, age = %ld",number, score, age);
7、輸出對象
NSLog(@"name = %@", name); NSLog(@"name = %@", @"zhangyixing");
二、面向對象編程
面向對象編程OOP (Object Oriented Programming )
面向對象語言:C++,Java,C#
概念:對象、類、封裝、繼承、多態等
三、類和對象
先定義類,再創建對象,使用對象。
類是模板,對象是具體表現,任何對象都要占用內存空間.
1、定義類----接口部分、實現部分
新建文件 OS X -------Cocoa Calss
設置name:Person(使用類名命名文件)、Subclass of:NSObject、Language:OC
1)接口部分----對外聲明的特征和行為----------Person.h文件
#import <Foundation/Foundation.h>
// 接口的開始
@interface Person:NSObject (類名:父類型)
{
// 聲明類的特征
// 實例變量:存儲的是對象的特征 注意 : 首字母是_
NSString * _name;
int _age;
}
// 聲明類的行為
// 方法:與C中的函數相似,OC中沒有函數的概念
(1)+表示這個方法屬于類,只能類執行 [類名 方法名]
(2)-表示這個方法屬于對象,只能對象執行 [對象 方法名]
- (void)sayHi;
// 接口的結束
@end
2)實現部分----對內實現行為----------Person.m文件
#import "Person.h"
// 實現部分的開始
@implementation Person
- (void)sayHi // 減號 空格
{
NSLog(@"你好");
}
// 實現的結束
@end
2、創建對象:分配內存空間、初始化、存在堆區-------main.m文件
main函數上面導入文件----#import "Person.h"
1)分配內存空間---[類名 alloc]
OC中使用[]調用方法 alloc是系統提供的類可以調用的方法
(1)在堆區分配內存空間;
(2)內存空間的數據被自動清除,所有的實例變量默認值設置為0;
(3)返回分配的存儲空間的首地址
Person * p1 = [Person alloc];
指針p1指向堆區中存儲的person對象,因此通常將p1代指為person對象
2)初始化對象------[對象 init]
初始化:為對象的實例變量設置初始值
init初始化 是系統提供的進行對象初始化操作的方法,只能對象調用
p1 = [p1 init];
Person * p2 =[[Person alloc] init];
p1 p2 是同類型的,兩個不同的對象
Person * p3 = nil; // p3指向空,是一個空指針,不能當成對象
在OC中,對nil做任何操作都是無效的
p3 = p1; // p3、p1 指向同一個對象
3、通過對象調用方法,實現功能
OC中使用[]調用方法 alloc是系統提供的類可以調用的方法
[p1 sayHi]; // 打印----你好
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。