课程要点:

  • C语言是一种面向过程的语言,OC是一种面向对象的语言
  • 类与对象的关联
  • 如何在xcode中创建一个类
  • 如何在类中标记该类事物的属性和动作

C语言是一种面向过程的语言,OC是一种面向对象的语言

1、面向过程

我现在让没有学过iOS开发的小闪同学去负责一个项目,此时在我需要做以下事情,小闪才能做到我交付给她的任务。

① 第一天我需要告诉她,掌握哪些知识才能够做这个项目,如:Xcode软件,C,OC(MVC,KVC,KVO,代理,单       例......),UI.......

② 在接下来的两星期我要手把手的教她怎么用C语言写程序,以及写的每一句代码什么意思。

③ C语言基本掌握以后,我继续用两星期左右的时间去手把手的教小闪同学如何用OC写程序,以及会告诉她每一句代码的意思。两星期根本讲不完整个OC知识,而且OC里有些东西如果不结合实际例子根本不好理解。但这两周的时间已经把OC的基本知识给小闪介绍完毕。

④ 接着便会进入UI阶段,还是会手把手的教她如何绘制app里的一些试图,以及告诉她这里面潜在的一些坑,另外在UI阶段我会结合实际需求不断的给小闪补充在OC阶段没有讲的一些知识点。例如:单例、代理、KVC,KVO。

⑤ 最后进入项目阶段。我让小闪同学在我给的选项里选择一个项目,独立完成。如果遇到问题,首先自己想办法解决,如果实在解决不了,我再介入。

⑥ 小闪最终在规定的时间内完成她选择的项目,让我很是欣慰。现在我才放心而且相信小闪同学能够做好我刚开始想要让她所负责的项目。

PS:在这个例子中,我所面对的重点其实就是过程。我要让小闪能够单独做项目,我得实实在在、认认真真的做到我列出的每一步,才能实现我最后让小闪帮我做项目的目的。缺少任何一步都不行。这就是面向过程,每一步都得亲力亲为。

2、面向对象

距离我上次教小闪同学iOS课程已经有半年了,她在这段时间表现不错,我上次让她负责的项目也已经完美交付。现在我手里头又有一个项目需要找人做,客户给的钱也不少,那就还交付给小闪吧,让她半年交付。我呢,就去喝喝茶,钓钓鱼,享受生活。哈哈哈哈哈哈哈。。。。。

PS:此时我面对的重点不在是过程而是对象,我只需要知道这个对象有实力做到我交给她的事情就行,具体怎么做这个对象自己有办法。我最终只要得到我想要的结果便可。

类与对象的关联

1、类的概念

类,是对同一类事物高度的抽象,类中定义了这一类对象所应具有的属性和动作。简单的说类就是同一类事物的统称。

我说人,你脑子里会瞬间出现一个关于人的概念,你知道满足什么条件才叫做人类,但你无法跟对我说出是具体的哪一个人。人就是对世界上所有人的一中高度抽象。

类中的属性指的是这个高度抽象的事物中他所有的属性,比如人的名字、性别、年龄等属性。

类中的动作指的是这个高度抽象的事物中他能做的事,比如人会吃饭、会喝水、会打架、会穿衣服。

2、对象的概念

对象,是类的一个实例。

我说人类中的小闪,此时你脑袋里关于小闪的概念不在是模糊的了,你知道谁了小闪了(就是接了我两个项目、也是你们学姐的那位)。还有习大大、奥巴马、安培等等这些具体的人,便是人里面具体的实例。

PS:由此咱们可以得知,一个结论------万物皆对象。

如何在xcode中创建一个类

在C语言时,咱们创建工程一直选的是C语言,现在咱们进入OC,创建工程时一定要记得选择OC语言

接下来的图示是如何在Xcode中创建一个类

如何在类中标记该类事物的属性和动作

通过上面那些操作,咱已经创造出来了一个类,由类名可知,咱们创造这个类是为了能够抽象人类,人类有名字等属性,吃饭等动作。但目前这个Person类却是一无所有。所以为了完善这个类,我需要在类中做一些操作。(在次我只给人类设置了名字属性,和吃饭动作)。

  类创建完以后大家可以发现,在咱们的工程里多了两个文件。Person.h和Person.m文件,这两文件的相辅相成共同构成了咱们的Person类。接下来分别介绍.h文件和.m文件的作用。

        就我理解看来,Person.h和Person.m共同构成了一份简历。

        我们先看看简历格式:

        第一部分:个人属性,姓名-性别-年龄-学历-婚姻状况

        第二部分:能做什么事

        第三部分:举例子,告诉面试官你是是怎么做在第二部分提到的那些事,以让其相信你确实有实力做这些事。

        接下来我们在看看Person类是怎么与简历格式一一对应的。

       Person.h 是咱们的声明文件,所有需要让别人知道的信息都是写在这里(比如简历里的第一部分和第二部分)

#import <Foundation/Foundation.h>

/*
* interface:interface是接口的意思,咱们通过这个接口告诉别人咱的基本情况 * Person就是咱们的类名 * NSObject表明这个类继承的NSObject,现在不用理解什么是继承,但要名字OC中所有类都是基于NSObject延展出来的。 */
@interface Person : NSObject
{
NSString *_name;
}//大括号里面放的是咱们简历里的第一部分,也就是基本属性部分 //方法(在C里叫做函数)是为了声明某一个功能,也就是咱们简历的第二部分,能做什么事。
- (void)eatFood; @end

Person.m

#import "Person.h"

//implementation是实现的意思
@implementation Person

//在Person.m中咱们要把在.h中声明的方法给实现,也就是说要在大括号内实现一步一步是怎么走的。只要有大括号就叫做实现,只不过实现的是nil而已。这部分相当于简历的第三部分。
- (void)eatFood{ } @end

至此,我已经将这个类给完善了,现在这个类就能够代表人了。此时这个类有名字这个属性,并且有吃饭这个动作。

需要掌握的知识:

1、理解类和对象的意义

2、知道怎么在Xcode中创建一个类

3、知道类和实际生活的映射关系

练习:狗有名字,能咬人。  在Xcode中采用类映射一下这个事物。

思考:字符串是不是一种类,如果是试着举出一个对象属于字符串。

以上是个人见解,若有错误欢迎指正,在学习中若有不理解欢迎骚扰 QQ:2314858225

OC-1-面向对象的更多相关文章

  1. OC中面向对象2

    一. 定义OC的类和创建OC的对象 接下来就在OC中模拟现实生活中的情况,创建一辆车出来.首先要有一个车子类,然后再利用车子类创建车子对象 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明.类的实现 ...

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

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

  3. oc语言--面向对象的三大特性

    一.封装 1.什么是封装 在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的 ...

  4. OC学习--面向对象的个人理解

    1. 什么是面向对象? 以下一段话是我在百度上找的解释: 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面 ...

  5. OC中的面向对象语法

    一. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 打开电脑 播放电 ...

  6. OC语言的面向对象—类和对象、方法

    1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...

  7. 在Objective-C中浅谈面向对象

    接触面向对象也有一段时间了,当时是通过C++学习的OOP,后来又接触到了PHP和Java.每种OOP的语言在面向对象上或多或少都会有不同的地方,现在在学习OC的面向对象部分,又感觉到OC面向对象的特点 ...

  8. OC笔记一:Objective-C简介

    1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码 ...

  9. 黑马程序员_ Objective-c 概述及面向对象与三大特性

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ (一).语法概述 1. oc介绍:(.m文件) 1> c语言的基础上,增加 ...

  10. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

随机推荐

  1. MythXinWCF通用宿主绿色版发布(一键启动,方便快捷)

    这是我开发的一款免费的,绿色的WCF宿主工具,一键启动,方便快捷,省去了安装和配置IIS的麻烦,也不需要配置文件. 该工具运行环境为.Net Framework 4.5.1(这个是必装的,win10自 ...

  2. Linux的PCI驱动分析

    1. 关键数据结构 PCI设备上有三种地址空间:PCI的I/O空间.PCI的存储空间和PCI的配置空间.CPU可以访问PCI设备上的所有地址空间,其中I/O空间和存储空间提供给设备驱动程序使用,而配置 ...

  3. java获取src下包的文件的路径

    String params = getClass().getClassLoader().getResource("system-config.properties").getPat ...

  4. js 正则只允许小写字母、数字、点、中短划线

    正则表达式如下: /^[a-z0-9\.-]*$/g 可用如下语句验证: alert(/^[a-z0-9\.-]*$/g.test('abc123.45a-b')); //true alert(/^[ ...

  5. Solr6.6.0 用 SimplePostTool索引文件 中文乱码

    在用SimplePostTool工具导入CSV文件,文件内容如下: 启动solr ,利用命令导入:java -Dtype=text/csv -Dc=solr_test -jar post.jar .. ...

  6. Yii2系列教程七:Behaviors And Validations

    这一篇文章的开头就无需多言了,紧接着上一篇的内容和计划,这一篇我们来说说Yii2的Behavior和Validations. Behavior 首先我们来说说Behavior,在Yii2中Behavi ...

  7. elasticsearch中的filter与aggs

    今天在ES上做了一个聚合,先过滤一个嵌套对象,再对另一个域做聚合,但是过滤似乎没有起作用 { "size":0, "filter":{ "nested ...

  8. Oracle Database 11.2.0.4.0 已在 中标麒麟Linux x86-64 NeoKylin Linux Advanced Server 6 上通过认证

    啥都不说了,上截图:

  9. rails generate model/resource/scaffold的区别

    If you’re just learning Ruby on Rails, you may be confused as to when to generate individual models, ...

  10. Unity学习笔记 之 关于 Unity UI 的 Slider 的代码记录

    代码例如以下: using UnityEngine; using System.Collections; //1.引入 UI . using UnityEngine.UI; public class ...