黑马程序员——【OC】面向对象的三大特性

------- android培训java培训IOS培训期待与您交流! ----------



OC 面向对象的三大特性:封装、继承、多态。

1.  封装

  set方法

 作用:提供一个方法给成员变量设置值, 并且还可以在方法里对参数进行过滤。

 命名规范:

 1>方法名必须以set开头     

2> set后面跟上成员变量名称,并且成员变量的首字母必须大写    

3>返回值一定是void

4>一定要接收一个参数,而且参数类型跟成员变量的类型一致

5>形参的名称不能跟成员变量名一样

注意:使用了set方法后,成员变量前尽量不要用@public

例子: - (void) setAge: (int )age {}  //这里简单的写了一个设置年龄的set方法的语句

 get方法

作用:返回对象内部的成员变量

命名规范:

1>一定有返回值,并且返回值类型与成员变量类型一致

2>方法名跟成员变量名一样

3>不接受任何参数

例子: - (int) age {} // 同样简单的写了一个返回年龄的get方法语句

△成员变量的命名规范

1>一定要以下划线 _ 开头   eg:int  _age;

2>要让成员变量名称与get方法的名称区分开

3>可以跟区部变量区分开(一看到下划线开头的变量,一般都是成员变量)

类方法与对象方法

两者的区别:

1> - 开头的是对象方法,+ 开头的是类方法

2> 对象方法只能由对象调用,类方法只能由类调用

3>对象方法能访问当前对象的成员变量,类方法中则不可以

注意:允许类方法和对象方法同名

类方法的好处和使用场合:

1>不依赖对象,执行效率高

2>能用类方法的情况下尽量使用类方法

3>场合:当类方法中不需要使用成员变量时

△self关键字

首先self是个指针,指向调用当前方法的对象

用途:

1>可以利用self ->成员变量名 来访问当前对象内部的成员变量

2>[self  方法名]可以调用其他对象方法\类方法

使用注意:合理使用self,否则会造成死循环

2. 继承

例如:@interface  A : B

{

}

上 面的例子就说明:类A继承了类B,同时A拥有了B里面所有的成员变量和方法。那么类B就称之为父类,类A 则为子类

好处:避免重复的代码,建立了类与类之间的联系

使用注意:

1>基本上所有的类的根类都是NSObject

2>子类和父类不允许有相同的成员变量,且父类的声明放在子类的前面

3>例如 a对象调用run方法时 即[a sun],首先在子类中找,如果没有再去父类中找,如果还是没有继续往上找(可以理解为父类的父类)

继承的使用场合:

1>当两个类拥有相同属性和方法时,就可以将相同的部分抽取到一个父类中

2>当A类完全拥有B类中的部分属性和方法时,可以考虑让B 类继承A类(并不是绝对的,还可以利用 组合)

△重写

定义:子类重新实现父类中的方法,会覆盖父类中的操作

缺点:耦合性太强(2个类之间的联系太密切)

组合和继承的区分:

可以简单理解为:

1>  XXX 是XXX 的时候可以使用继承(比如:狗(对象)是动物(对象))

2>  XXX拥有XXX的时候考虑使用组合(比如:一个圆(对象)拥有一个点(对象))

继承的关键字:super

简单示例:[super  run]   // 调用父类中的run方法 

作用:

1>直接调用父类中的某个方法

2>当super处在对象/类的方法中时,就会调用父类中的对象/类方法

使用场合:子类重写父类的方法时想保留一些父类的操作

3. 多态

多态即OC对象中拥有多种形态,多态必须是在继承的条件下使用的,不继承,无多态。

说明:

1>父类指针指向子类对象

2>调用方法时会自动检测对象的真实类型(这里为Dog对象)

好处:如果参数中使用的是父类类型,可以传入父类和子类的对象,节省了代码

局限性:父类类型的变量不能直接用来调用子类特有的方法,必须强转为子类类型的变量后,才能直接调用。

例如:

Animal * a = [Dog new]; 

Dog *d = (Dog *)a;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值