- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在Objective-C中浅谈面向对象
在Objective-C中浅谈面向对象
刚接触OC,用OC中的便利初始化方法和便利构造器有点蹩脚,不过还可以在接受的范围之内,以下的东西可能会对面向对象的特征:抽象,封装,继承等总结的较少一些,主要总结了OC中面向对象的特点。在用到便利构造器的时候,如果之前学习过设计模式的话会好理解一些。
言归正传,便利构造器就是对便利初始化函数的间接使用,目的是为了简化对象的初始化(这里是我个人的理解)。便利初始化函数(对象方法)的作用是给实例常量赋初值,在类的实例化后就可以调用便利初始化函数了。而便利构造器是类方法,返回的是对象,在便利构造器中做了两件事:一个是给对象分配空间,第二个是调用便利初始化函数进行数据的初始化。学过设计模式的小伙伴都应该知道“模板方法模式”,我个人感觉便利构造器和模板方法模式的作用挺相似的。
以下的东西是依附于代码来讲解的,编程吗,即使讲思想也少不了代码不是吗,话不多说,切入正题。请大家批评指正,若要转载请注明出处。
面向对象程序开发的主要目标:用代码模拟现实中的对象,将现实中对象的某些行为能力,特征用代码表现出来,然后用这些代码来模拟现实中的问题。
每个对象都会从两个角度进行描述,一个是特征,一个是行为能力
特征:可以是物体的组成部分,也可以是一些物理或逻辑上的属性,用来表现对象的形态,构成及状态。
行为能力:对象所能被进行的操作或者物体本身发起的操作。用来接受外部操作或对外部进行操作。
封装:将属性及方法相结合,共同体现对象的特征,称之为封装,封装可以实现隐藏内部实现,稳定外部接口。
在OC中类是由接口(interface)和实现(implementation)两部分构成的。在OC中类是通过两个单独的文件定义。接口定义在对应的头文件中,该文件的作用是说明此类具有哪些属性和方法,但不去实现其行为。
1.?OC中接口的定义如下:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #import
?
@interface Student : NSObject
{//大括号里定义属性
????//定义学生的学号,姓名,年龄,爱好;
????@public
????NSString *studentName;
????int?age;
????NSString *hobby;
}
?
/*定义学生有关的方法,+修饰的为类方法,不用实例化就可以直接用类访问
* -号修饰的为对象方法,必须实例化后才能使用,就是用对象调用的方法
*/
?
//定义打招呼的方法
- (void) sayHello;
//吃饭行为
- (void) eat;
@end 代码说明:
?????????????????????1.#import语句告诉编译器查看Foundation框架中的Foundation.h的头文件
?????????????????????2.用#import指令来导入相应的文件,#import的作用相当于PHP中的require_once,如果文件之前导入过了,则不导入,而#include会重复导入文件的
?????????????????????3.用编译器指令@interface来定义类的声明,@interface后面是类名,Student : NSObject 说明Student继承于NSObject类
?????????????????????4.在接口中方法只有声明,没有实现,方法前面的减号代表此方法是对象方法,如果是+号的话,说明是类方法,就是说类可以直接访问此方法。
?????????????????????5.@interface 和 @end是成对出现的,@end代表接口定义的结束
?????????????????????6.上面得成员变量定义成了公有的,这在开发中是极少见的,这里为了方便练习才这么写的,一般把成员变量定义为私有的然后在定义get,set方法去操作成员变量
这样才起到了封装,不要把自己的手直接伸入到类中,要通过类提供的方法来操作类的成员变量。
2.@implementation 实现部分
实现部分文件的扩展名为.m,具体实现的方法代码如下:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #import Student.h
?
@implementation Student
//实现打招呼的行为
- (void) sayHello
{
????NSLog(@hello! 我是%a href=/members/uz441800@,/a 我今年%d岁了, 我喜欢%@!, studentName, age, hobby);
}
?
您可能关注的文档
- 土木工程钢结构设计.doc
- 在互联网上可以发布信息、.ppt
- 在ppt中插入视频和音频的方法说课稿.ppt
- 在建工程质量及管理体系奖励和处罚管理办法.doc
- 在更加严峻的形势下求生存.doc
- 2025年开展学习中央八项规定主题教育工作方案与深入学习中央八项规定精神教育测试题【附:答案】.docx
- 2025年单位开展深入贯彻八项规定精神学习教育活动的工作方案与市民政局党组书记在学习八项规定精神理论学习中心组会上研讨发言材料【2篇文】.docx
- 党支部深入贯彻中央八项规定精神学习教育学习计划与在2025年研究部署深入贯彻中央八项规定精神学习教育工作专题会讲话稿(两篇文).docx
- 2025年贯彻八项规定精神学习教育工作方案与2025年深入贯彻学习中央八项规定精神教育试题【2篇题】附答案.docx
- 2025年深入贯彻八项规定精神学习教育的交流发言材料与单位开展深入贯彻八项规定精神学习教育活动的工作方案【2篇文】.docx
- 2025年市国资委党委开展深入贯彻中央八项规定精神学习教育工作方案与开展学习中央八项规定主题教育工作方案(2篇文).docx
- 在2025年市商务局党组研究部署深入贯彻中央八项规定精神学习教育专题会上的讲话稿、教育动员部署会议上的讲话提纲【2篇文】.docx
- 开展2025年学习八项规定主题教育工作方案与领导在局机关深入贯彻八项规定精神学习教育部署会上的讲话稿(两篇文).docx
- 2025年深入贯彻中央八项规定精神学习教育实施方案与全面落实中央八项规定精神情况总结(2篇文).docx
- 2025年落实中央八项规定精神情况总结稿与领导在深入贯彻中央八项规定精神学习教育工作会议的主持讲话稿(2篇文).docx
- 2025年组织部长在八项规定学习教育工作专班座谈会的讲话稿与开展学习中央八项规定主题教育工作方案(两篇文).docx
- 学习2025年深入贯彻中央八项规定精神知识测试题135题【附答案】与全面深入贯彻中央八项规定精神学习教育实施方案.docx
- 2025年县委书记在中央八项规定精神学习教育动员会上的讲话稿遵守党的政治纪律和落实中央八项规定精神情况个人对照检查材料(2篇文).docx
- 2025年在深入贯彻中央八项规定精神学习教育动员部署会上的讲话稿与在市委党的建设工作领导小组会议暨部署深入贯彻中央八项规定精神学习教育专题会讲话稿(两篇文).docx
- 2025年市工业园区党工委开展深入贯彻中央八项规定精神学习教育工作方案与深入贯彻中央八项规定精神学习教育动员部署会讲话提纲【2篇文】.docx
最近下载
- 2025统编版(2024)道德与法治小学一年级下册第四单元《第14课 光荣的少先队》说课课件.pptx VIP
- 13J104建筑工程.房屋建筑.蒸压加气混凝土砌块、板材构造.pdf VIP
- 消防控制室值班服务投标方案(技术方案).pdf
- 孤独症谱系障碍PPT课件.ppt
- 2024年十八项医疗核心制度(必威体育精装版).docx
- 2024-2025学年沪教版七年级英语下册Unit 2 知识梳理(解析版).pdf VIP
- 2024年度必威体育精装版组织生活会个人发言提纲.pdf VIP
- 2024-2025学年沪教版七年级英语下册Unit 1 知识梳理(解析版).pdf VIP
- 2023-2024 中国滑雪产业白皮书.pdf
- 中药炮制工考试(高级)习题库(第1部分).pdf
文档评论(0)