课程要点:

  • 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. iOS 自定义相机带拍摄区域边框及半透明遮罩层(含源码)

    开始时准备封装成ViewController的相机,但是在不改我相机控件源码的情况下,使用者很难自定义UI.于是想到将相机核心功能封装到View里,暴露出功能方法给外面调用,调用者只需将LFCamer ...

  2. 使用ReadOnlyCollection创建只读集合

    转载:http://www.cnblogs.com/abatei/archive/2008/02/04/1064102.html 使用泛型创建只读集合 问题 您希望类中的一个集合里的信息可以被外界访问 ...

  3. JAVA常见算法题(二十五)

    /** * Java实现中文数字转换为阿拉伯数字 * * * @author WQ * */ public class Demo26 { public static void main(String[ ...

  4. python socket timeout设置

    需要在调用socket的connect方法之前设置settimeout(time)方法,另外在设置之后要将再次调用settimeout(None)来设置socket进入阻塞模式. 如下代码示例: so ...

  5. JavaScript中的bind方法及其常见应用

    一.bind()方法的实现 在JavaScript中,方法往往涉及到上下文,也就是this,因此往往不能直接引用.就拿最常见的console.log("info…")来说,避免书写 ...

  6. 依据出生日期Date 计算年龄

    依据出生日期计算年龄 public class DateGetAge { public static int getAge(Date birthDay) throws Exception { Cale ...

  7. Solution of NumberOfDiscIntersections by Codility

    question:https://codility.com/programmers/lessons/4 this question is seem like line intersections qu ...

  8. Acer商祺x4610安装及使用

    一年前心血来潮买了部Acer商祺x4610,这两天把它装起来,记录下过程以备忘. 首先装操作系统,我装的是XP,这款电脑比较贴心的是开机时按住F12可以选择光盘还是硬盘启动,就不用到BIOS里面设置启 ...

  9. Windows正在使用无法停止通用卷怎么办

    最后解决方案1: 1.双击任务栏上的安全删除硬件图标 2.按下Ctrl + Alt + Del 组合键调出"任务管理器": 3.结束其中的explorer.exe进程,此时桌面上的 ...

  10. eclipse中egit插件使用(转)

    1.eclipse和egit版本 eclipse使用的是kepler的SR1版,egit就是自带的那个版本,要详细的话,我就也只能把文件名贴出来了:eclipse-jee-kepler-SR1-win ...