文档章节

OC语言-继承

盘盘的灰灰
 盘盘的灰灰
发布于 2016/08/07 09:34
字数 1137
阅读 5
收藏 0
  • 1. C语言中的static

         a. 修饰局部变量.

         b. 修饰全局变量.

         c. 修饰函数.

    2. OC中的static关键字.

         a. static不能修饰属性 也不能修饰方法.

         b. static可以修饰方法中的局部变量.

    如果方法中的局部变量被static修饰,那么这个变量就会被变成静态变量.

    存储在常量区 当方法执行完毕之后 不会回收 下次再执行这个方法的时候 直接使用 而不会再声明了.

    3. 如果方法的返回值是当前类的对象,那么方法的返回值就写instancetype

 

  • 对象方法中使用self的场景.

         a. 必须使用self的场景.

            -> 如果在方法中存在和属性同名的局部变量,

               你如果想要访问同名的局部变量,直接写就可以了.

               你如果想要访问当前对象的同名属性 必须使用self

            -> 在对象方法中,如果要调用当前对象的其他的对象方法 必须使用self.

         b.选用self的场景.          

            在方法中不存在和属性同名的局部变量 如果这个时候想要访问当前对象的属性

            用布用self效果都是一样的.都是访问的当前对象的属性.

         属性要求以下划线开头 局部变量不要求以下划线开头 按照这个规范来 实际上是不会重名的.

  • 总结1下取到类在代码段中的地址的方式.

            a. 调试查看对象的isa指针的值.

            b. 在类方法中查看self的值.

            c. 调用对象的对象方法class 就会返回这个对象所属的类在代码段中的地址.

            d. 调用类的类方法class 就会返回这个类在代码段中的地址.

  • 注意

        1). 在对象方法中, self代表当前对象.

            所以可以通过self访问当前对象的成员.        

            在对象方法中 不能使用self调用本类的类方法.

        2). 在类方法中,self代表当前这个类.

            所以,可以通过self调用当前类的其他的类方法.

            在类方法中  不能使用self访问对象的成员. 不能去直接访问属性和调用对象方法.

  • @interface Student : Person

         1). Student类从Person类继承. Studdent类是Person类的子类 Person类是Student的父类.

         2). Student类从Person类派生. Student类是Person类的派生类.Person类是Student类的基类.

  • 继承的特点:

1. 单根性

2. 传递性 

  • super关键字.

         1). 可以用在类方法和对象方法之中.

         2). 在对象方法中可以使用super关键字调用当前对象从父类继承过来的对象方法.

         3). 在类方法中 super关键字可以调用当前类从父类继承过来的类方法.

             a. 类方法也能被子类继承. 父类中的类方法可以使用父类名来调用 也可以使用子类名调用.

             b. 在子类的类方法中 可以使用super关键字调用父类的类方法.

         4). super只能用来调用父类的对象方法或者类方法  不能用来访问属性.

  • 访问修饰符: 用来修饰属性.可以限定对象的属性在那1段范围之中访问.

         @private: 私有 被@private修饰的属性只能在本类的内部访问.只能在本类的方法实现中访问.

         @protected: 受保护的. 被@protected修饰的属性只能在本类和本类的子类中访问.只能在本类和子类的方法实现中访问.(默认修饰符是@protected)

         @package: 被@package修饰的属性 可以在当前框架中访问.

         @public: 公共的.被@public修饰的属性 可以在任意的地方访问.

  •  将属性定义在@interface之中 和 将属性定义在@implementation之中并标记为@private

          唯一的区别: 提示和不提示私有属性. 都不能在外界访问.

  • 私有方法.

      方法不写声明,只写实现. 那么这个方法就是1个私有方法.

  • 当1个父类指针指向1个子类对象的时候.

         这个时候,通过这个父类指针就只能去调用子类对象中的父类成员.

         子类独有的成员无法访问.

  • 多态.

         指的是同1个行为,对于不同的事物具有完全不同的表现形式.

 

© 著作权归作者所有

上一篇: OC语言-特有语法
下一篇: C语言-封装
盘盘的灰灰
粉丝 0
博文 31
码字总数 24142
作品 0
深圳
私信 提问
Swift2.0与OC混编实验--动态库(一)

完整的Demo下载 做了以下几个实验 验证Swift和OC的项目可以使用任意语言开发的动态库 1、创建了一个Swift语言的动态库 2、创建了一个OC语言的动态库 3、创建了一个SwiftApp项目,在项目中同时...

泊竹
2016/01/17
434
0
Swift编程权威指南第2版 读后收获

  自从参加工作一直在用OC做iOS开发。在2015年的时候苹果刚推出swift1.0不久,当时毕竟是新推出的语言,大家也都很有激情的学习。不过在学完后发现很难在实际项目中使用,再加上当时公司项...

滴水微澜
2018/08/14
0
0
从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
2018/08/04
0
0
Cocoa改造前篇 - 说在前面的

更好的阅读体验请点击 原文 从面相对象说起 (Object-Oriented Programming,简记为OOP)这个概念大家都有所耳闻,目前(2017.12),在Tiobe世界语言排行榜上排前十的语言中,C语言和Assembl...

秋刀生鱼片
2017/12/07
0
0
是时候正式进入 Swift开发了

Swift从14年发布到现在已经迎来了3.0的版本, 不得不说作为苹果公司推出的新语言, swift的未来是毋庸置疑的. 一种新的编程语言, 在快速发展的前期,变化是很大的, 这个勉强可以作为我们之前暂不...

Sunxb
2016/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

非webpack require.js + vue + vueRouter + iView 实现按需加载

适合一个人开发的时候,在整个php框架下,又想单页,又可以直接后端assign变量穿透到模板。又不想写接口搞前后分离脚手架一大堆npm 包, 在php模板下 引入require.js <!DOCTYPE html><html...

一箭落旄头
9分钟前
2
0
新特性解读 | MySQL 8.0 窗口函数详解

原创作者: 杨涛涛 背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能。不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF...

爱可生
15分钟前
0
0
23.5 jumpserver介绍

23.5 jumpserver介绍 开源堡垒机jumpserver介绍: 官网www.jumpserver.org Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业高效 用户、资产、权限、审计 管理 Auth...

oschina130111
21分钟前
2
0
Spring Cloud 入门教程(七): 消息总线(Spring Cloud Bus)(Greenwich.RELEASE)

参考网址:https://blog.csdn.net/forezp/article/details/81041062,由于此文中作者基于git和rabbitMq,为了适应内网我改造为基于mysql和kafka 一、准备工作 1、安装kafka 参考这个:kafka...

pipi1919
22分钟前
1
0
用人工智能改变企业与客户的连接方式

  随着以AI人工智能技术为主的新一代信息技术的快速商业化落地,我国的数字经济正高歌猛进。2017年我国数字经济对GDP的贡献率为55%,接近甚至超越了某些发达国家水平,2018年我国数字经济规...

琴殇的
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部