id数据类型

1.通用的指针类型
2.没有*号
3.使用id类型时,不能给对象的属性或成员变量进行赋值
4.可以对其发送任何(存在的)消息
 

import与@class的区别

1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称
2.如果类之间有循环依赖关系使用#import来相互包含,那么就会出现编译错误。
3.如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。
4.@class是放在interface中的

 
 

Objective-c中提供了可以让我们扩展类定义的手段:

1.类目:为已知的类增加新的方法;
2.延展:通知在本类的定义里使用类目来声明私有方法;
3.协议:协议声明了可以被任何类实现的方法。
 

继承 多态

  子类可直接“拥有“父类中所有允许子类继承的属性和方法
  OC中不允许子类和父类拥有相同名称的成员变量名;
 多态:不同对象以自己的方式响应相同的消息的能力叫做多态
先有继承才有多态,没有继承就没有多态(父类指针指向子类对象)
复合
  将多个组件组合在一起,形成一个整体,然后使用整体来进行工作,这种组合行为称为复合
 

成员变量的限制条件

1.public(公有的)  :实例变量可以在类的外部和内部操作
2.protected(受保护的)实例变量只能在该类和其子类内操作
3.private(私有的)实例对象只能在该类内访问
4.在oc里面,所有的实例对象默认的可见度是受保护的
 

类目 延展

   无法向类中添加新的实例变量。类别没有位置容纳实例变量。
   类目的方法名不能与类的方法名相同
   延展的作用就是定义自己的私有方法。
 

self  super

      super  父类的标识,当我们需要使用父类的方法或者属性的时候,就可以使用super
     self  当前对象的指针,当前访问的对象是什么,当前指针就是谁。也就是说当前调用的是哪个类的实例方法,那self 就是这个类的指针

oc必须知道的知识点的更多相关文章

  1. OC基础(2)

    类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 *:first-child { margin-top: 0 !important; } body > *:last-c ...

  2. OC基础(1)

    Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 *:first-child { margin-top: 0 !important; } body > *:last-chi ...

  3. OC学习7——类别、扩展和协议

    1.我么在调用NSLog()方法打印一个对象时,实际上是调用了该对象的description方法,这个description方法就和Java中的toString()方法一样.所以,下面两行代码其实是一 ...

  4. Objective-C基础笔记一

    这里开始了我OC旅程 花了8天的时间粗略的学习了新知识Objective-C(简称OC),虽然只是学习了其中的基础部分,但经过这一周的学习也算是入门了.对面向对象的封装.继承.多态以及其中所包含的方法 ...

  5. YYModel学习总结YYClassInfo(1)

    OC的run-time 机制,简直像是网络上的猫! 我在开发中很少用到,但是作为iOS开发 人家肯定会问这个东西,所以深入的学习了下. 对于 run-time的入手,YYModel的学习,简直让人美滋 ...

  6. OC知识点

    1.@autoreleasepool why1 2.retain O-C内存管理和点语法1>OC内存管理正常情况要使用大量的retain和relrese操作2>点语法可以减少使用retai ...

  7. OC:内存管理、dealloc方法、copy知识点

    属性的声明:使⽤@property声明属性
 例如:@property NSString *name: 相当于@interface中声明了两个⽅法(setter.getter): 属性的实现:使⽤@s ...

  8. OC:面向对象的编程思想、基本的知识点总结、强,弱引用

    OC 面向对象 和 面向过程 参考 面向过程:使用步骤划分功能,然后用函数一步一步的调用 面向对象:OOP (Object Oriented Programming) 使用功能来简化问题, 面向对象语 ...

  9. iOS开发——实战总结OC篇&网易彩票开发知识点总结

    网易彩票开发知识点总结 关于网易彩票开发中遇到了不少的坑,弄了好久才弄懂,或者有些犹豫很久没用就不记得了,所以这里就总结了一下,希望以后不会忘记,就算忘记也能快速查看! /************** ...

随机推荐

  1. 如何设置unobtrusive的语言包

    场景:网站是用的validate.unotrusive.js验证的,网站的语言已经切换到繁体了,但是提示语言还是英文. 环境:asp.net mvc4,jquery.validate.unotrusi ...

  2. ASP.NET 使用Ajax

    转载: http://www.cnblogs.com/dolphinX/p/3242408.html $.ajax向普通页面发送get请求 这是最简单的一种方式了,先简单了解jQuery ajax的语 ...

  3. CMY/CMYK 打印机色彩

    CMY 发光物体和反光物体产生颜色的机制不同. 前者指光源光, 它的颜色由发光波长决定. 后者指不能发光但却能表现出颜色的物体, 例如色素. 色素的颜色由它不能吸收的光的波长决定. 比如红色色素, 除 ...

  4. 状态压缩 HDU1074

    t组数据 n门课程 底限 完成要几天 dp[i] 表示i的二进制数中  1 对应位置课程 完成  最少扣多少分 完成的时间 记录一下怎么下来的 1->2^n 列举 (1<<n)   ...

  5. hdu3572 最大流

    Task Schedule Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi ...

  6. maven中snapshot快照库和release发布库的区别和作用

    在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次.我们知道,maven的依赖管理是基于版本管理的, ...

  7. html 语义化 资料

    HTML: The Living Standard 理解HTML语义 什么是HTML语义化 为什么要语义化 写HTML代码时就注意什么 HTML 5的革新——语义化标签(一) header元素 foo ...

  8. TCP连接——爱的传声筒

    TCP连接——爱的传声筒 TCP通信最重要的特征是:有序(ordering)和可靠(reliable).有序是通过将文本流分段并编号实现的.可靠是通过ACK回复和重复发送(retransmission ...

  9. perl 哈希 连接符

    #!/usr/bin/perl -w use strict; my $test_1 = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; my $test_2 ...

  10. Java多线程与并发库高级应用-可阻塞的队列

    ArrayBlockQueue 可阻塞的队列 > 队列包含固定长度的队列和不固定长度的队列. > ArrayBlockQueue > 看BlockingQueue类的帮助文档,其中有 ...