OC学习三
来源:互联网 发布:淘宝优惠券公开推广 编辑:程序博客网 时间:2024/06/07 18:54
OC学习笔记
1.OC中类的声明及实现
类的的声明与Java中使用的关键字不同不是使用Class而是使用@interface
类的命名规范:有意义,驼峰标识,首字母大写
属性的命名规范:以下划线_开头第一个单词的首字母以小写开头
EX:
@public可以让Car对象的wheels和speed属性被外界访问
加上:NSObject的目的是让Car类具备创建对象的能力
-(减号表示的是对象方法)需要类实例化后才能调用且OC中方法的调用与Java中不同Java中采用的是.点语法而OC中采用的是[对象 方法名]
在OC中方法的声明和实现实在两个文件中实现的.h中负责声明.m文件中负责实现
属性的声明一定要在@interface的一对花括号里而方法的声明要在花括号外@end前
声明部分
@interface 类名:NSObject
{
属性/类所具有的特性
}
方法标识符(返回值类型)方法名:(参数类型)参数名;
@end
实现部分
@implementation类名
方法标识符(返回值类型)方法名:(参数类型)参数名{
方法体
}
@end
注意:
成员变量不能在 { }中进行初始化,不能直接拿出去访问
方法不能当做函数一样调用
OC中调用方法 [对象名 方法名]
成员变量/方法不能用static等关键字修饰
类的实现@implemention @end可以写在main函数后面
如果类的声明和实现都写在同一处时当前面的的类使用后面的类是要在前面写上@Class类名
@interface就好像暴露在外面的时钟表面
@implementation就好像隐藏在时钟内部的构造实现
2.创建对象
[Car new] 每次都会创建出新的对象,并且返回对象的地址所以应该用一个指针变量保存对象的地址
Car *c = [Car new];
用一个指针变量c指向内存中的Car对象
设置车子对象的属性
跟用指向结构体的指针访问结构体属性一样,用->
c->wheels = 3;
c->speed = 300;
创建多个Car对象
分别只设置wheels、speed属性
Car *c1 = [Car new];
c1->wheels = 4;
Car *c2 = [Car new];
c2->speed = 250;
[c1 run];
1个赋值给另一个,然后修改属性
Car *c1 = [Car new];
c1->wheels = 4;
c1->speed = 250;
Car *c2 = c1;
c2->wheels = 3;
[c1 run];
3.面向对象封装的好处
更加接近人类的思考方式
只需要关注对象,不需要关注步骤
4.对象与函数参数
对象成员变量作为函数参数
指向对象的指针作为函数参数
修改指向对象的成员
修改指针的指向(指向某对象的指针及指针的指针)
5.OC方法和函数的区别
5.1 OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间 也就是说OC方法不能独立于类存在
5.2 函数不属于类跟类没有关系
6.Oc方法的注意事项
没有@interface,只有@implementation,也是能成功定义一个类的
7.方法
方法调用
带一个参数的方法
方法调用
带多个参数的方法
方法调用
8 方法名注意
冒号也是方法名的一部分
同一个类中不允许两个对象方法同名
- OC学习三
- OC runtime学习笔记三
- OC学习总结(三)
- 黑马程序员-OC语言基础学习(三)
- OC学习(三)继承和方法
- OC -基础(三) 学习中。。。
- OC学习笔记三---面向对象三大特性
- OC (三)
- 黑马程序员:OC学习日记之三大特性
- OC学习之面向对象三大特征
- 黑马程序员- IOS学习笔记-OC三大特性
- OC学习里面的一些概念(三)
- 三、oc中成员变量作用域的学习
- 黑马程序员-OC学习日记三之点语法小结
- 黑马程序员-----oc语言学习笔记之内存管理三
- OC学习之面向对象三大特征
- OC学习笔记(三)--类与对象
- OC学习日记17 (三) get和post
- 剑指offer 23. 从上往下打印二叉树
- jsp中添加验证码
- PHP7 NULL合并操作符
- SQLite怎么统计一个数据库中有多少张表,视图或者触发器
- eclipse Maven配置
- OC学习三
- 在Visual Studio中入门F#
- IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
- mysql字符串截取函数SUBSTR
- HDU5905(树dp)
- CWE -- memory or buffer overflow --- 例子
- 常见sql查询
- 解决tomcat启动被某个servlet里执行方法死循环tomcat被hold的问题
- 51nod 1218 最长递增子序列 V2 【最长递增+复杂判断】