首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
类和对象
时间:
2016-02-16 19:02:20
阅读:
234
评论:
0
收藏:
0
[点我收藏+]
标签:
面向过程和面向对象
面向过程:注重过程,分析解决问题的步骤,依次调用函数。C语言 面向对象:注重对象,分析解决问题需要参与的对象,各个对象的作用。OC、C++、Jave等 面向对象的优点: 1、可扩展性 2、重用性 3、可降低代码的耦合度,提高代码的可移植性 类:具有
相同特征(静态)及行为(动态)
的事物的抽象 对象:对象是类的实例,类是对象的类型,对象是具象概念。 类的定义分两个部分:接口部分和实现部分。 接口部分:声明类的特征和行为,在.h文件中 实现部分:行为的具体实现,方法,对象实例初始化,在.m文件中 接口部分标志:
@interface.....@end
所有声明类的特征(成员变量)和行为(方法)都在里面
@interface
Car :
NSObject
@end
Car
是
定义的类名,冒号后面是继承,NSObject是Car类的父类,
NSObject是OC中的根类。 类的特征定义在{}内部,常见OC的数据类型有 字符串类型(NSString),写法NSString *_name,成员变量名
以下划线开头
,占位符%@;整型(NSInteger),写法NSInteger _age,OC中的整型在64位操作系统下为长整型,占位符%ld;浮点型(CGFloat),写法CGFloat _score,在64位操作系统下为双精度,占位符%lf。
{}外声明类的行为,及类的方法 OC的方法只有两种:类方法(+)和实例方法(-) 类方法只能被类使用,类方法中不能使用实例变量 实例方法只能对象使用
加号方法和减号方法可以互相调用,调用时需要类名和实例化变量
而当对象定义成静态全局变量时,可被类方法调用
方法的声明(如图)
方法名:replaceObjectAtIndex: withObject:
注意:类中不能出现同名方法 “:”标识参数,不能省略,冒号也是方法名的一部分 参数之间的空间也是要去掉的
实现部分标志:
@implementation....@end
类行为的具体实现即方法的实现
@implementation
Car Car代表类名 初始化的方法,返回值用instanceType和id没有什么区别,编译器会自动将id转化为InstanceType id和instanceType的异同
1、相同点:都可以作为方法的返回值类型 2、不同点: ①instanceType可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象 ②instanceType只能作为返回值,不能像id那样作为参数
重写初始化方法:
- (instanceType)init {
_name = @“哈哈”; return self;self代表外界执行该方法的对象
}
自定义初始化方法:
OC中输出函数
NSLog(@“”);
main.m中
对象进行实例步骤 1、开辟空间 2、初始化
Car
*car = [[
Car
alloc
]
init
]; 1、开辟空间:alloc 在堆区域开辟存放Car类对象的内存空间,将首地址传给在栈区的指针car,alloc是系统的自己的类方法。 2、初始化:将开辟好的堆区域上的对象中的实例变量,赋初值为0,init是实例方法 OC有消息发送机制 [receiver message] - 减号message由对象来调用;+ 加号message由类来调用 实例变量的可见度有三种:
默认为受保护的,
@protected
setter
和
getter
方法访问的单一实例变量 这两者相对应,一个实例对象对应一对。
在.h文件中只声明了实例变量之后,给实例变量赋值取值 赋值:setValue:@需要的值 key:@实例变量名(name) 或 setValue: key: 取值:valueForKey:实例变量名(name)
类和对象
标签:
原文地址:http://www.cnblogs.com/aoliaoli/p/5193506.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!