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)在调用的时候,方法名是固定的,

原文地址:https://www.cnblogs.com/ytmaylover/p/5049173.html