OC1-面向对象,类和对象
/*
** 类名首字母大写:变量名和方法名小写,使用驼峰命名法。
** @class 和#import 区别是 解决循环引用导致的死锁问题。
(1)self 指的是类对象本身,super是父类对象本身。(2)self 用来调用本类对象的方法,super 调用父类的方法。
1. 1)类,类名,。特征和行为。2)对象:是类的实例, 3)类是静态的,存在代码区,对象是alloc出来的,存放在堆区,对象名在栈区;4)类的每个实例变量在不同的对象中都有不同的值(静态变量除外)5)方法只是在被调用的时候,程序运行的时候才会占用内存。
2.定义类:两部分接口和实现部分
3.接口部分 声明类的特征和属性,@interface 类名 : 父类名 NSObject{ @ public 类的属性} 类的行为 @end
(1)冒号表示,是继承关系,NSOject是所有类的父类。
(2)方法声明:-是实例方法,+是类方法。方法名主要要(:),方法类型,返回类型,方法名,参数类型,参数名。
(4)方法的调用:1)[类名/对象名 方法名];2)对象名.方法名;(点语法)
4.实现部分:@implementation 类名 -(void)方法名1{} -(int )方法名2{} @end
5.类的实现:
6. 创建对象:(1)对象通过指针来声明, 申请内存后,需要对对象进行初始化 调用init方法,这样这个方法才可以使用。
(2) 同一个类的每个对象有不同的实例变量的存储空间;同一类的每个对象共享该类的方法。
(3)对象的初始化: 通过约定,我们要求初始化方法以init 开头,成功返回一个动态类型对象(id),如果失败,则返回(nil),
(4)指定初始化方法,子类初始化必须调用父类指定的初始化方法,通过向super发送消息初始化父类。相反,自己将调用参数比自己多的其他初始化方法(通过向self发送消息),并为自身没有的参数提供初始化值。
(5)当没有指定初始化方法的时候,自动添加init方法,
类名 *对象名=[类名 alloc];申请内存空间。
对象名=[对象名 init];??
7. @property 在.h中使用设置器,声明类的方法的时候,@synthesize 在.m文件中实现,在实现方法名时使用
在@property ()括号中,可以填写以下属性,readwrite 默认; readonly 只读,没有set方法; assign 默认 引用计数不增加; retain 引用计数增加1 actomic原子性; nonatomic非原子性;
atomic是oc中的一种线程保护技术,是防止在未完成的时候,被另一个线程使用,造成数据错误。
8。点语法:self.myNumber=10;//设置; self.myNumber;//访问;
9. static 类体内的全局变量声明:
10.类的继承@interfae 子类:父类 子类可以继承了该类,就可以拥有这些实例变量。
(1)继承的方法重载:新建一个同名的方法来替代父类ClassA的方法。条件,定义一个同名的新方法,新方法必学具有相同的返回值类型,并且参数的个数与重载的方法相同。
11.权限控制:默认的是project,只支持单继承。共性的东西放在父类,个性的东西放在子类。可以通过指针运算符访问实例变量,但是违背了面向对象的思想。
12。多态: 一种事物的多种状态,不同类的对象可以定义共享相同名的方法,这个就是多态的表现形式。
(1)动态类型:oc在运行时才确定对象的实际类型。(2)动态绑定;程序在执行的时候,才能确定对象调用的方法。
(3) 多态的条件: 有继承关系,有方法重写,父类的申明变量指向子类对象。
13.编程时能预测程序运行过程中可能出现的问题:@try , @catch, @finally
*/
/*
** Object-c是c语言的超级(super),所有的语法,在Object-c里面都好使。部分c和oc的程序时不兼容。名字上的不兼容
《 oc的字符串需要加上@。》@ 也可以做占位符,%@就是对象类型的占位符。
oc里面的数据类型都是对象,但是有特别的。: NSInteger, CGFloat,(core graphfic), NSLong等等。
1。面向对象;面向对象中,万物皆对象,他是一种模拟现实世界的思想,对象即现实世界的每一个事物。
所有的编程语言,都是为了解决现实生活中的问题。解决方式是通过描述现实中的场景。
(1)面向切面 面向功能。
2.面向对象的2个概念:类和对象(类的个体)。
3.类 类名 特征(属性,成员变量) 行为(方法);
(1)类名首字母大写,其余驼峰命名法。
4.对象: 对象名 对象属性值不同,
5.类和对象的使用。(1)格式:类名 对象名=[[类名 alloc]init];alloc 申请内存,init 对申请内存初始化。
(2) 所有的对象都放在堆区中的。(3)我们操作调用,都是用对象的内容。
6.NSString 是一种数据类型,叫字符串类型。NSLog是输出函数,打印程序日志,printf功能相似。能打印出工程信息,直接信息,和对象信息等。
8.函数的调用,调用方式:[对象名 方法名];头文件通过大括号声明的属性,可以通过属性的名字直接调用。
9.这个方法,没有在头文件声明,是从父类继承,(1)调用在类对对象进行初始化的时候,调用初始化。(2)在调用的时候,方法名是固定的,