类和对象
来源:互联网 发布:淘宝没有生产许可证 编辑:程序博客网 时间:2024/05/21 10:41
1.类的定义:(具有相同特性和行为的事物的抽象)
(1).OC中类的定义分为两个部分:接口部分和实现部分
接口部分:对外声明类的特征和行为。(.h文件中)
接口部分标志:@interface····@end —— 作用:声明类的实例变量(成员变量)和方法,即特征和行为。
接口部分包含的内容:类名、父类名、实例变量、方法等;
实现部分:行为的具体实现。(.m文件中)
实现部分标志:@implementation ·······@end —— 作用:类行为的具体实现(方法的实现)。
2.类和文件
(1).类的定义过程需要进行分文件放置。文件分为.h (接口文件) 和 .m (实现文件)
3.对象的创建(对象是类的实例,通过类来创建对象)
创建对象分两步:
(1).分配内存空间:根据类中声明的实例变量为对象在堆区分配内存,并返回首地址;
(2)开辟空间:+(instancetype)alloc;
“+”表示方法是类方法,只能由类调用。instancetype返回值类型,可以用id(任何对象类型)替代;
(2).初始化:为对象的实例变量设置初始值;—(instancetype)init;
“—”对象方法,对象调用。”instancetype“返回值类型;
4.instancetype和id的区别
(1).instancetype可以返回和方法所在类相同类型的对象吧,id只能返回未知类型的对象。
(2).instancetype只能作为返回值和参数,id还可以用来定义变量。
(3).instancetype会告诉编译器当前的类型,但id对于编译器却是无类型的,调用任何方法不会给出错误提示。
(4).对于init方法,id和instancetype是没有区别的,因为编译器会把id优化成instancetype。当明确返回的类型就是当前Class时,使用instancetype能避免id带来的编译不出的错误情况。
5.面向对象的三个特性:
(1).面向对象具有良好的可扩展性和重用性;
(2).面向对象可以降低我们代码的耦合度,提高代码的可移植性;
(3).面向对象接近于日常生活和自然的思考方式,可以提高我们软件开发的效率和质量;
4.实例变量的可见度:
本类
子类
其他类
@public
可以直接访问实例变量
可以直接访问实例变量
可以直接访问实例变量
@private
可以直接访问实例变量
不可以访问实例变量
不可以访问实例变量
@protected
可以直接访问实例变量
可以直接访问实例变量
不可以访问实例变量
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- vfp对象和类
- 类和对象
- Chap02:类和对象
- 类、对象和方法
- C#类和对象
- 第一章 类和对象
- 类和对象
- 对象、类和结构
- 类和对象
- 类和对象
- 类和对象
- 类和对象
- 将Eclipse工程导入到Intellij idea中时遇到的jar无法导入的情况
- 基于LXCFS增强docker容器隔离性的分析
- select (SYSDATE - 10) into datevar from dual
- Redis和Memcache的区别分析
- Struts2面试题1
- 类和对象
- Linux下的进程间通信-详解
- LeetCode: 318. Maximum Product of Word Lengths
- tcpcopy1.0系列使用方法
- ecshop的数据库getRow、getAll、getOne区别
- java实现不规则窗体
- 详解 CALayer 和 UIView 的区别和联系
- git版本分支管理
- 开启Debian/Ubuntu root账户远程ssh登录