一,面向对象和面向过程思想
OC是面向对象的,C语言是面向过程的,两种都是解决问题的思想
面向过程(Proceduce Oriented) -->找步骤
面向对象(Object Oriented) -->找对象
面向对象编程 Object Oriented Programming 简称OOP
二,类和对象的关系
对所有对象的描述 --> 图纸 -->类
面向与研究的 -------------------->对象
类= 对无数个对象的相同属性进行描述
类是面对象开打第一步,然后创建对象
三,如何设计类
1>类的实际,只关心3样东西 事物名称,属性,行为
2>一般名词都是类
3>拥有相同(或者类似)属性和行为的对象都可以抽象一个类
01,类的声明和实现:@interface像时钟的表面,@implementation像时钟的里面
创建一个车类 拥有轮胎属性 和跑的行为
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
int wheels;
int speed;
}
@end
@implementation Car
@end
int main()
{
Car *p = [Car new];
p->wheels = 4;
p->speed = 250;
NSLog(@"轮胎是%,速度是%d",p-wheels,p-speed);
return 0;
}
02对象的行为
要写行为在类的生命中,有名方法
{}中书写的是属性,不写其他,方法放在外面
方法(行为):方法名 参数 返回值(声明,实现)
只要是在OC对象的方法,必须以减号开头
OC方法中任何数据类型都必须用小括号括住,小括号只有一个作用:括住数据类型
在@interface中声明方法,在@implementation中实现方法
03方法与成员变量
在使用创建对象,会创建一个存储空间存放类,里面的内容是方法的声明。每个对象类内部中都有一个isa的指针,isa所有对象都会指向类
04常见错误
1>只有类的声明,没有类的实现
2>把@end给忘了(要分开,不能嵌套)
3>方法的实现只能写在类的实现中
4>方法的生命一定要写在类的声明的外面
5>多个声明,多个实现,要完整地书写每一个,不能嵌套
6>成员变量/实例变量 不能在类的声明里有初始化,也不能重复定义
7>不要把C语言和OC混用,关键字static
8>声明,必须写在main函数之前
05方法与函数的区别
方法:1>对象方法都已减号开头
2>对象方法的声明必须写在@interface和@end之间,对象方法的实现必须写在@implementation和@end之间
3>对象方法只能由对象来调用
4>对象方法归类和对象所有
函数:1>函数可写在任意一个地方(@interface和@end之间除外),函数归文件所有
2>函数调用不依赖于对象
3>函数内部不能直接通过成员变量访问某个对象的成员变量