1、什么是面向对象。
类是抽象的,不具体的。就像有些东西可以归为一类,比如说狗,猫,猪。它们都是动物,我们就可以归为一类。而猫,狗就是动物类中的一个对象。
2、什么是类;
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
3、如何定义一个类;
声明类的目的,告诉系统类所有包含的属性和方法。
4、类中可以定义两种方法;
(1)、“-” 号方法 独享方法:
a、可以直接访问对象的属性
b、必须使用对象调用
c、可以直接调用其他的对象方法
(2)、+号方法 类方法
不可直接访问对象属性
必须使用类调用
不可以直接调用对象方法
5、封装;
setter方法
(1)、一定是独享方法
(2)、一定没有返回值
(3)、方法名一定是以set开头后面跟上名称去掉下划线首字母大写
(4)、有参数类型与属性相同
getter方法
(1)、一定是对象方法
(2)、一定没有返回值
(3)、方法名是属性名去掉下划线 没有参数
注意:
(1)如果某一属性只提供getter方法没有提供setter方法我们称之为只读属性反之称为只写属性,setter、getter方法都有称为可读可写属性
(2)、setter方法另外一个好处就是可以监听属性的变化
点语法;提供setter、getter方法后访问属性可以用点语法方式访问属性。
点语法的注意点:用于给成员变量赋值,如果不是给成员变量赋值不建议用点语法
6、self关键字
self不能离开类;
(回顾枚举的创建)typedef enum { }
self相当于类方法中的类,但是 self不只能调用类方法,也可以调用对象方法;如果self在对象方法中就代表self相当于调用当前的那个对象,如果self在类方法中,那么代表调用当前类方法的那个类
总结:只要关注self在哪一种方法中;如果在类方法中就代表当前类;如果在对象方法中就代表当前调用该方法的对象。
注意:self会自动区分类方法和对象方法,如果在类方法中用self调用对象方法会报错:如、
+(void)corfomeWith
{
[self closeFlshlight ];
}
+(void)closeFlshlight
{
[self openFlshlight ]
} 会报错。
self使用场景:
可以用于在对象方法之间相互调用;
可以用于区分成员变量与局部变量同名的情况
网友评论