第一天:类和对象(^_^!)

来源:互联网 发布:淘宝哪家女生衣服好看 编辑:程序博客网 时间:2024/04/30 09:20

第一天:类和对象(^_^!)

面向过程:
* 面向过程以事件为中心,完成该事件需要那些步骤.
* 比如:做蛋糕的方法步骤(^_^ 雪兒会做蛋糕呦),

面向对象:
* OOP(Object Oriented Programming) 面向对象编程.
* 面向对象以事物为中心,完全某件事情都需要那些事物来参与,参与该事件的事物都有那些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的小功能.
* 比如:雪兒做蛋糕,雪兒和蛋糕就是对象
注意:(^_^! 记住呦)

面向对象优点:
* 有良好的可扩展性和重用性.
* 降低代码的耦合度,提高代码的可移植性.
* 提高软件开发的效率和质量.
面向对象编程:
* 核心:转变考虑问题的方式.
OC:
* 1980年初发明OC语言—>1988年NeXT公司使用—>1996年OC成为苹果主要编程语言
* Object-C简称OC,是C语言的扩充,OC是iOS和OS X操作系统的编程语言.
OC特点:
* C语言的超级,允许在OC中使用C语言代码,编译器兼容C语言程序.
* 具备完善的面向对象特性—封装,继承,多态.
* 包含一个运行时系统
* 类库丰富.
注意:OC和Swift语法差异大,但背后的思想以及所依托的类库都是相同的.
类:
* 具有相同特征和行为的事物的抽象.
* 比如:汽车类 手机类 蛋糕类
对象:
* 对象是类的实例,(^_^! 万事万物皆对象)
* 类是对象的类型.
区分法则:
* 当我们看到某个概念的时候如果每个人的大脑中想到的都是同一个事物的时候,此时就是对象,反之则为类.

类和对象的定义:
类的定义:
* 面向对象的核心思想是类和对象.
* OC类的定义分为两部分:接口部分和实现部分.
* 接口部分:对外声明类的特征和行为.(.h文件)
* 实现部分;行为的具体实现.(.m文件)

接口部分:
* 标志:@interface…..@end
* @interface…@end的作用:声明类的实例变量(成员变量)和方法,即特征和行为.
* 包含内容:类名,父类名,实例变量,方法等.
* 例如:
@interface Teacher : NSObject
{
NSString *_name;
NSString *_gender;
NSInteger _age;
}
— (void)teaching;
— (void)getSalary;
@end;
Teacher:类名
NSObject:父类名
NSString *_name;实例变量
— (void)teaching;方法

实现部分:
* 标志:@implementation……@end
* @implementation…@end的作用:类行为的具体实现(方法的实现)
* 例如:
@implementation Teacher
— (void)teaching
{
NSLog(@”我正在进⾏行教学活 动”);
}
—(void)getSalary
{
NSLog(@”这个⽉月发的不少
, 可以吃⼤大餐了”);
}
@end
创建:





类和文件:
* 类的定义过程需要进⾏行分⽂文件放置。⽂文件分为.h(接⼝口⽂文件)和.m(实现⽂文件).

注意:
* 使⽤用类名命名⽂文件。
* h⽂文件管理类的接⼝口部分;.m⽂文件管理类的实现部分
* 只要符合类的接⼝口部分和实现部分的定义,就可以定义出⼀一个类。
* 文件中可以定义多个类,但是文件的名字以类名命名,对于其他的开发⼈人员很难发现⽂文件中含有的其他类。
* 比如:Person文件中定义⼀一个Dog类就很难发现
对象的创建:
* 分配内存空间:根据类中声明的实例变量为对象在堆区分配内存,并返回⾸首地址。
* 初始化:为对象的实例变量设置初始值。
* 例如:
分配内存空间,并且将内存空间数据清零
Teacher *teacher = [Teacher alloc];
初始化
teacher = [teacher init];
两步是⼀一个连续的过程,⼀一般情况下,合并操作
Teacher *teacher = [[Teacher alloc] init];
实例变量的可见度:
* 外界想要访问对象实例变量,实例变量需要通过@public修饰。
* @public叫做实例变量的可见度。除了@public 外,实例变量可见度还包含另外两种分别是@private,@protected
* 系统默认的实例变量可见度是@protected
* 可见度区分:

方法:
方法的分类:
- OC中的⽅方法分两种:类⽅方法(+号)和实例方法(-号)
- 类方法:只能被类使⽤用.
- 例如:
- (instancetype)alloc;
- 注意:类⽅方法中不能使⽤用实例变量
- 实例⽅方法:只能对象使⽤用.
- 例如:
- (instancetype)init;
- 注意:类中不能出现同名⽅法。“ :”
- 标识参数,不能省略。有冒号必须有参数.
setter和getter
- 在OC里,为单一实例变量赋值的方法称为setter(设置方法)
- 获取单一实例变量值的方法为getter(访问器)
- 关系:无论setter和getter内部操作的是实例变量,每一个实例变量都需要一对setter和getter方法

0 0
原创粉丝点击