OC类的设计

//Objective-C面向对象的C语言。

//OC完全兼容C,凡是C语言代码可以直接编译在OC的工程当中。

【面向过程的语言】都是祈使句,直接和CPU沟通。目的是操作CPU,储存数据,管理数据。

//数学逻辑,就像小学解应用题,关注的是数据和管理数据。

【面向对象的语言】在程序中,添加能够接收消息的单元(对象),每个单元拥有自己的功能,各单元合作,完成程序。

//应用程序都是用(面向对象的语言编程)(OOP)的

//面向对象没有具体的官方定义。早期只使用【继承】【封装】【多态】编写程序的思想。后来,主要指将生活逻辑映射到程序当中。

【类和对象】

一.认识类(Class)和对象(Object)

//通过上面的描述,我们知道对象是接受信息的单元,是面向对象程序的核心。那么如何理解对象呢,类和对象是什么关系。

<1>生活逻辑

类 对象

人               你,我

电脑 你桌上那台 我桌上这台

超级英雄 美国队长 钢铁侠

外星人       奥特曼  擎天柱

<2>代码上看

//编写OC程序,需要使用集成开发工具Xcode

//File -> new -> project 创建新工程

//OS X -> Application(应用程序) -> command line tool(命令行程序)

//Mac OS工程名使用中文无所谓,iOS工程使用中文名会导致不可预知的错误,无法修复。

//Foundation是OC语言的基础框架,脱离Foundation框架,不能写出OC程序。

类:是一个自定义的类型,类似结构体或数组

对象:是使用类这个类型创建的变量

//类似结构体和结构体变量

<3>从封装的角度上看

结构体:对数据结构体的封装,负责存储数据

函数:对功能的封装,负责管理数据

类:同时对数据结构体和管理数据的方法进行封装,既能存储数据,又能自己管理数据。

//将结构体和函数结合起来就成了类。

<4>官方定义

类:同一类特征的对象的抽象。

对象:类的具体表现形式,或称具象。

二.构造方法

【注】OC中称所有init开头的方法为构造方法

【注】构造方法用于初始化对象,初始化对象的成员变量。

//PSBRect  rect1, rect2;

//[rect1 init]  self = &rect1;

//[rect2 init] self = &rect2;

三.直观地感受一下面向对象的程序

小明手里有两张牌,左手红桃A,右手黑桃K,问小明交换两手的牌,之后左右手各是什么牌?

三个 五个

电视剧:

1.选演员         找对象,实现对象

2.彩排   写程序流程

【类方法】

//类方法就是【静态方法】,方法不属于任何对像,为类所有。类方法中不能使用对象的成员。

【注】类方法就是C++中的静态方法,不属于任何一个对象,通过类名来调用。

- (void)show;       //对象的方法

+ (void)show;       //类的方法

[dog show];

//对象的消息,发送给对象

show(dog);   

[Dog show];

//类方法用类名调用

【特征】

<1>类方法不能使用成员变量

<2>类方法不能调用对象的方法

【作用】

<1>创建对象[ alloc]

<2>对一个功能模块,留下简单的对外接口。

//流程可以实现在类方法中,返回结果

//类方法就类似main函数,是一个模块的“main函数”。

<3>声明单例对象

//全局变量存储的数据,为整个程序每个函数共享。

【问】如果用对象存储数据,能否声明成全局变量,使对象中的数据,为全程序共享?

【答】OC不允许对象静态内存分配,因此不能声明在数据段,不能声明成全局变量。

但是可以声明为单例对象,单例对象存储的数据,为全程序共享。

//单例和工厂是OOP中常用的设计模式

 

转载于:https://www.cnblogs.com/liudongyan/p/4395134.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值