oc-21-class对象】的更多相关文章

本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的⼀个⼩功能. 2> 面向对象与面向过程的区别 3> 面向对象优点 面向对象具有良好的可扩展性和重用性. 面向对象可以降低我们代码的耦合度,提高代码的可移植性. 面向对象接近于日常生…
对象在内存中的存储 1. 内存中的五大区域. 栈: 存储局部变量. 堆: 允许程序员手动在堆区申请指定的连续的字节数的空间来使用. BSS段: 存储未初始化的全局变量.静态变量. 数据段(常量区):  存储已经初始化的全局变量.静态变量.常量数据. 代码段:存储程序的代码. 2. 类加载. 1). 当创建对象的时候,肯定需要访问这个类.因为只有访问了类才知道类中有那些成员. 2). 如果只是声明类指针的时候,也会访问这个类.以确定这个类型是否存在. 当类第一次被访问的时候,会将类存储到代码段之中…
1.面向过程与面向对象. 1). 完成需求1 将大象放进冰箱. a. 把冰箱门打开. b. 把大象放进去. c. 把冰箱门关上. 这是面向过程的思路. 找1个冰箱,要求这个冰箱可以自己开门,自己把大象放进去,自己关门. 解决同1个问题的两种思路. 1). 解决这个问题的每1个步骤,都是我自己亲自去实现. 像这样的解决问题的思路,我们叫做面向过程的解决思路. 2). 自己不要去亲自做,而是找1个专门做这个事情的人来帮我做.像这样的解决问题的思路,我们叫做面向对象的解决思路. 面向过程与面向对象是解…
转载自  OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到. 一.已有类型的归档和解档 首先来看一个简单的例子: // // main.m // 33_ObjectToFile // // Created by jiangwei on 14-10-13.…
JS中对象相关的最重要的恐怕就是原型链了 原型链也是JS中对象继承的实现的基础 接昨天的文章,我们使用构造函数创建对象的时候仍然存在一些问题 那就是所有的实例没法共用一个函数 这样无疑会造成极大的内存浪费 那么解决的办法是什么呢? 那就是通过对象的原型来实现 原型链 在JS中我们创建的每一个函数都有一个 prototype(原型)属性 该属性是一个指针指向一个对象,这个对象的用途是包含由特定类型所有实例的共享属性和方法 这个对象也就是我们常说的原型对象 原型链就是对象实例和对象的原型对象组成的继…
OC内部:可变对象和不可变对象的深(复制)拷贝问题思考:   不可变对象:  例如NSString对象,因为NSString对象是常量字符串,所以,不可以更改其内容,但是可以修改指向该字符串的指针指向.当对NSString对象做深拷贝时,如果是copy复制方式,其实就是浅复制,只是复制了同一个对象的指针:如果是mutableCopy复制方式,系统会分配一个新的内存空间用来存放复制出来的NSMutableString对象,此时地址是新的,内容是一样的,他们正在被不同的实例变量字符串指针指着.  …
//创建一个数组 NSArray *array = @[@"one", @"two", @"three", @"four", @"six"]; //创建一个排序条件,也就是一个NSSortDescriptor对象 //其中第一个参数为数组中对象要按照什么属性来排序(比如自身.姓名,年龄等) //第二个参数为指定排序方式是升序还是降序 //ascending 排序的意思,默认为YES 升序 NSSortDes…
在继承中,子类对象如何调用到正确方法的机制 每一个Objective - C对象都有一个隐藏的指针指向类的代码,当向一个对象发送消息的时候,当前的对象会首先在当前类里去查找相应的方法,如果找到的话,直接执行代码:若没有找到,则去父类里找对应的方法,如果找到的话,就会执行.如果找不到继续按照这样的原则,沿着继承链向上查找,直到根类NSObject(这个类是Objective - C所有类的根类),如果在这个NSObject类中仍找不到相应的方法,那么程序直接崩溃掉. 在继承的语法中,子类访问父类中…
CALayer基础 CALayer是每一个UI控件的核心,一个UI控件之所以能显示可以说是CALayer的功劳 每一个UI控件默认都为自己创建一个CALayer对象,通过drawRect方法将内容绘制在图层上,然后再显示出来 CALayer可以完成很多任务 调整UI控件的外观 执行动画 CALayer与UIView 二者可以达到相同的显示效果 UIView比CALayer多了用户交互功能 CALayer更加轻量级,性能更好 CALayer在系统架构中的位置 CALayer位于QuartzCore…
一.构造方法 (一)构造方法的调用 完整的创建一个可用的对象:Person *p=[Person new]; New方法的内部会分别调用两个方法来完成2件事情,1)使用alloc方法来分配存储空间(返回分配的对象):2)使用init方法来对对象进行初始化. 可以把new方法拆开如下: 1.调用类方法+alloc分配存储空间,返回未经初始化的对象 Person *p1=[person  alloc]; 2.调用对象方法-init进行初始化,返回对象本身 Person *p2=[p1 init];…