一. 理解面向对象
•面向过程 –强调的是功能行为 –关注的是解决问题需要哪些步骤
•面向对象 –将功能封装进对象,强调具备了功能的对象 –关注的是解决问题需要哪些对象面向对象是基于面向过程的
二. 面向对象的特点:
•是一种符合人们思考习惯的思想 •可以将复杂的事情简单化 •将程序员从执行者转换成了指挥者•完成需求时:–先要去找具有所需的功能的对象来用。–如果该对象不存在,那么创建一个具有所需功能的对象。
•拥有相同(或者类似)属性和行为的对象都可以抽像出一个类
1. #import <Foundation/Foundation.h>
#import是include的升级版,可以自动防止重复引用,以后都使用import
2. printf与NSLog的区别
1.名字不同
2.引入的头文件不同。前者引入 #include < stdio . h> 后者引入 #import <Foundation/Foundation.h>
3.写的格式不同。在使用NSLog打印时,要在“”前面加一个@
4.输出的内容不同
5.NSLog可以自动换行
6.printf用于c的字符串 NSLog一般用于oc的字符串
3.什么是面向对象:
更加复合人们的思考习惯,将复杂的事情简单化处理,使人们从执行者变成了指挥者
4.什么是对象?
世界万物皆对象
5.什么是类?
相当于现实当中的图纸,是具体事物的抽象,是描述的属性和行为。
6.创建一个具体的类
三要素:》类名:首字母大写,其他单词遵循驼峰原则
》属性:一般以下划线开头,其他单词遵循驼峰原则
》行为:遵循驼峰原则
三. 类的声明和实现
类的声明:对类的属性和行为进行声明
NSObject//使类具有创建对象的能力
类的实现:类的声明中声明了什么方法,实现当中就写什么方法的实现
#import"MyClass.h"
@implementation MyClass
-(id)initWithString:(NSString *)aName
{
//写代码处
}
+(MyClass *)myClassWithString:(NSString *)aName
{
//写代码处
}
@end
声明对象方法
• 声明没有返回值的方法 •-(void) method;• 声明有返回值的方法 •-(int) method;
• 声明有返回值有参数的方法 •-(int) method: (int)var;
• 声明有返回值有多个参数的方法 •-(int)method: (int) var1 andVar2: (int)var2; <注>:每一个参数对应一个:号,:号是方法名的一部分,-号不是方法名的一部分
声明类方法
• 声明没有返回值的方法•+(void)method;
• 声明有返回值的方法•+(int)method;
• 声明有返回值有参数的方法•+(int)method: (int)var;
• 声明有返回值有多个参数的方法•+(int)method: (int) var1 andVar2: (int)var2;
实例化对象(创建对象)
[car new] 做了三件事情:
1.开辟存储空间
2.初始化成员变量(又称实例变量,成员变量就是类的声明的大括号中的属性),整数值会被初始化为0
3.返回空间的地址
消息机制
•使用对象调用方法就是OC中的消息机制
四. 补充
Car *car1; //局部变量,在栈区
car1 = [Car new]; // 在堆里面创建了一个对象
每new一次,就重新开辟一块儿存储空间,所以对象之间互补影响
一个类可以创建多个对象,对象之间互不影响
oc当中所有的类都可以代表一种数据类型 // NSObject *