一、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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。