• OC面向对象-OC基础早知道


    1.内存管理的基本原则:

    对自己拥有的对象负责,凡是你通过retain,alloc,copy等手段获得了所有权的对象,都必须在你不再使用的时候,由你来调用release,autorelease等手段来释放对它的所有权。

    在一定的代码段内,对同一对象所做的copy,alloc和retain的操作次数应当与release和autorelease操作的次数相等。

    可以在类的dealloc方法中释放你占有的实例变量。

    对于便利构造器和访问器来说,你没有通过上面的手段获得对象的所有权,因此在这些情况下,你无需对获得的对象进行额外的释放操作。

    2.self和super是什么,id表示什么数据类型:

    self指本类的某一个对象,有时候也指类对象。super指父类。id指任意对象类型,不能表示基本数据类型。

    3.叙述一下实例变量和局部变量的作用范围。

    局部变量的作用范围:它所在的语句块和所在的方法内有效。

    实力变量的作用范围:本类所有的实例方法中有效,如果有子类,保护类型的实例变量在子类中也有效,公有类型的实例变量会在所有类中有效,一般不提倡使用公有,这违背了封装的特性。

    4.实例变量的可见级别:

    三种可见级别:public,protected,private。默认的可见级别是protected。

    public的可见度很高,所有类可见,protected本类及子类可见。private只有本类里的实例方法可以访问。

    5.面向对象和面向过程有什么不同?

    面向对象和面向过程是从不同角度出发的,

    面向过程是一种以时间为中心的编程思想,就是分析问题需要经过对少步骤才能解决,然后用函数把这些步骤一步一步实现,使用的时候一个一个一次调用就可以了。

    面对对象是一种以事物为中心的编程思想,把构成问题的事物分解成各个对象,简称 对象的目的不是为了完成某一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

    6.子类从父类那里得到什么,cocoa中常见的集合有哪几种

    除了私有变量之外的所有实例变量和实例方法;如果父类中类目和协议,也将一起得到。

    数组、集合、字典。

    7.类目和延展有什么作用?

    类目:为已知的类增加新方法、作为子类的替代手段,给类中的方法分类、易于多人合作开发同一个类。

    延展:通过在本类的定义里使用类目来声明私有方法,也是对类的一种扩展。

    类目和 延展只能增加实例方法,不能增加实例变量。

    8.copy和retain的区别

    copy是内容拷贝,retain是指针拷贝。copy其实是建立一个相同的对象,其对象地址和原来的对象的地址不同,

    retain则是相当于把指针拷贝了一次,地址仍然相同。

    只有接受了NScopying协议的对象才能使用copy。

    9.协议和类的区别

    类的接口声明是严格与特定的类关联的,尤其是由本类细线的方法的声明,协议声明的方法与任何特定的类都无关,它可以被任何类来实现,协议本质上就是一堆还未与任何类的实现代码关联的方法的声明,只有声明部分,没有实现部分,协议里面的方法也可以设置成optional。

  • 相关阅读:
    【构建二叉树】01根据前序和中序序列构造二叉树【Construct Binary Tree from Preorder and Inorder Traversal】
    PHP 语言需要避免的 10 大误区
    极客编程必备的五大PHP开发应用
    你听说过PHP 的面向方面编程吗?
    8个开发必备的PHP功能
    写给系统管理员的25个PHP安全实践
    PHP输出缓冲控制- Output Control 函数应用详解
    创建高安全性PHP网站的几个实用要点
    简化PHP开发的10个工具
    PHP文件下载原理
  • 原文地址:https://www.cnblogs.com/lozzz-love/p/4311431.html
Copyright © 2020-2023  润新知