码迷,mamicode.com
首页 > 其他好文 > 详细

objective - c 类和对象

时间:2016-01-03 22:37:56      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:

 

 

知识点

1.初步认识 OC  

2.xcode使用

3.面向对象编程思想,类和对象

4.类的定义和使用

5.类的实例化--对象

6.声明和实现相分离

 

===========================================

1、需要理解的(理论部分)                            

 第一部分:OC和面向对象

1.1、OC语言的历史,特点、重要程度

【什么是OC】

 

objective - c   在C语言基础上开发, 面向对象的语言; 

 

注意C语言和oc语言语法的区别; 

 

 

IOS, iphone, ipad …  

 

 

【进入OC阶段需要注意的事项】 

 

1、 oc语言和c语言的区别;

 

2、多敲代码, 多耐心调试程序;    

 

3、通过几个数据模型的项目熟悉oc语法,面向对象思想; 

 

4、类提供大量的方法, 总结积累的习惯; 

 

 

=====================================================================

2、如何在Xcode中创建OC工程

 

 

【常用快捷键】

 

【编译】   command + b  

【运行】   command + r

【调试框和打印框显示和隐藏】  command + shift + y  

【停止】   command + .

【注释】   command + / 

【代码对齐】   control + i 

 

其他快捷键:

 

 

花:  command ,  ^ : control,  ?? : shift   

 

 

 

 

2.2 OC兼容C, 区别于C语言的地方   

各种文件后缀名 .c和.m和.mm的区别

 

 

.c  C源代码问价;

.m :  C+OC文件; 

.mm : C++ + OC文件; 

 

.h 头文件; 

 

#import作用

 

把文件包括进来; 

 

 

 

 

 

 

@”hello”和C字符串区别

 

oc字符串:  @“字符串” 

C字符串:   “字符串”  

 

 

NSLog函数和printf函数区别

 

//     NSLog                printf

//  1、默认会换行             默认不会换行

//  2、预期打印出OC字符串     预期打印出c字符串

//  3、打印出工程名和时间      不会打印出工程名和时间

//  4、可以打印oc对象 %@        不可打印oc对象

 

  【NSLog各种数据类型的打印】

 

char   1 Byte

short                2 Byte

int                     4 Byte

long                 8 Byte

float                 4 Byte

double            8 Byte

 

BOOL 

NSInteger

NSUInteger

CGFloat

 

 

 

练习:输出各种数据类型的字节数

 

 

 

【恢复快捷键】      command  + z

 

 

 

 

================================================================================

 

3、面向过程和面向对象:

 

C语言是面向过程的语言;

 

OC语言是面向对象的语言;

 

 

面向过程:  解决一个问题需要哪些过程(步骤);    

 

 

面向对象:  解决一个问题需要哪些对象;  

 

 

3.1、面向过程和面向对象

3.1.1 面向过程编程

【面向过程的语言】

1、省略主语;  (主语是cpu)  

2、面向过程 = 数据 + 算法;

3、数学映射; 

 

 

【例子】

面向过程

冰箱装大象;

1、打开冰箱;

2、把大象放进冰箱;

3、关闭冰箱; 

 

打开电脑玩游戏;

1、打开电脑

2、开始玩游戏;

3、关闭电脑;

 

 

【面向对象的语言】 

 

1、主语是对象, 主要因素就是对象;每个对象可以接受不同信息, 这些共同合作完成一件事情;

2、面向对象 = 对象 + 消息;

3、生活映射;

 

应用程序都是用面向对象的语言写; 

 

转变:

【例子】

面向对象     

冰箱装大象     (两个对象: 冰箱, 大象)

1、冰箱打开门;

2、冰箱存储大象;

3、冰箱关闭门;

 

 

打开电脑玩游戏:

1、电脑打开;

2、人玩LOL

3、电脑关闭;

 

 

面向过程:  解决一个问题需要哪些过程(步骤);    

面向对象:  解决一个问题需要哪些对象;

 

举例:

1、造房子;     1、打地基;   2、 砌砖;    3、装修;

 

1、需要会打地基的张三; 2、会砌砖的李四; 3、会装修得老王;

 

2、接IOS项目;     1、 写iOS代码;  2、会美工;  3、会销售;

 

  1、会写iOS代码的全蛋;     2、会美工的小花;   3、会销售的铁柱; 

 

 

3.2 类和对象的概念

 

类:       对对象的描述, 是对象的一个模板; 

对象:   对象是实实在在存在,看得见摸得着, 在内存占有存储空间,同过类创建;

 

 

一.认识类和对象

 

对象是面向对象程序的核心。那么如何理解对象呢,类和对象是什么关系。  

 

7.类和实例的区别

  1)类是对象的模板,类是静态的,本身并不占用内存,只是对某类事物的一个说明

  2)对象是某个模板的具体化

 

3.2.1 从生活逻辑上

类             对象

人                张三,   李四, 老王

电脑               我桌面这台电脑, 你桌面那台电脑;

  小白, 旺财

超级英雄       钢铁侠,  绿巨人, 蜘蛛侠;  

 

3.2.2 从封装的角度

结构体 = 对数据封装;

函数 = 对代码的封装;

类 = 对数据和 函数的封装; 

 

函数(方法)

 

面向对象三大特征:   1、封装;   2、 继承; 3、多态; 

 

 

3.2.3 从编程语言的角度

类是一种自定义的类型 没有占用内存

对象是使用类创建的变量 用类型定义的变量会占用内存

 

 

3.2.4 官方定义

类:同一类具有相同特征的事物的抽象;

对象:某个类类型的变量

 

 

===========================================

4. 需要记住掌握的(实战部分)  

 

【如何设计一个类】

 

人类:

成员变量: 名字, 年龄;

成员方法(函数):吃饭, 睡觉,打豆豆; 

 

在OC大多数关键字都是以@开头; 

 

设计一个类分两部分:  类的声明, 类的实现; 

 

4.1、【类的声明】

 

//@interface 类名 : 父类

  {

// 成员变量

}

 

// 成员方法的声明; 

 

 

//@end

 

4.2、【类的实现】

//@implementation 类名

实现成员方法;

 

//@end

     4.3、【成员变量】 

 

描述拥有什么;  

 

     4.4   【成员方法】    

 

描述能做什么; 

 

4.5、【如何创建对象】

 

[类名 alloc];

 

 

4.6、【方法的调用】

 

[对象 方法名];

 

 

需求 :  访问成员变量?  通过方法来访问成员变量: 

 

 

 

成员方法详细说明:

1,无参 ,无返回值的成员方法 - (void) 方法名;

2,带参数   - (void) 方法名:(参数类型)参数名; 

3,带返回值得方法 - (NSUInteger)getAge; 

4,带多个参数的方法  - (void)便签:(参数类型1)参数名1 标签2:(参数类型2)参数名2;

 

 

 

 

关于命名的那些事儿:

1、成员变量命名: 以_开头; 

2、方法名和成员变量命名: 第一个单词小写,从第二单词开始首字母大写; 

3、类名:   每一个单词首字母大写;

 

 

 

 

练习:【test1】

 

写一个学生类:

成员变量:  name,学号,体重;

实现方法三个方法:  设置名字;设置学号;设置体重;

实现一个方法: 同时可以设置名字,学号,体重;

实现一个方法: 正在学习;

实现一个方法: 获取学号;

实现一个方法: 自我介绍;

 

 

 

 

注:什么是对象和什么是对象指针?

 

Student *s = [Student alloc]; 

 

对象指针:  s                            在栈区; 

对象:  [Student alloc];        在堆区;

 

 

面向对象:

1、先找出对象; 

2、列举出对象需要的成员变量和成员方法;

3、设计类;

4、通过类创建该对象;

5、让对象完成事情; 

 

 

练习:

1、编写一个加法器,它能够接收两个整数int,然后输出两个整数的和;

 

一个对象 : 加法器; 

 

需要成员变量: int ,int

方法: 加法;

 

 

 

 

以后项目中创建类肯定是每个类都在单独的文件 .h 和 .m中, 不会在main函数的上面创建类

 

 

.h 是类的声明;

.m 是类的实现;

 

 

使用该类(注意)   把类的.h头文件#import进来; 

 

#import <系统提供.h>

#import“自定义的头文件.h”

 

1、如何设计一个类;  

2、成员方法的语法;    

3、如何创建一个对象;

4、调用对象的成员方法;

 

 

 

练习:

 

2、有一个长方形类,成员变量:长,宽,面积,周长;

  方法有:设置长和宽,打印面积,打印周长;

 

 

 

 

 

3、设计狗类

属性:  名字,年龄,体重

方法:say说话,卖萌salesBud;

分别写三个方法,给三个成员变量赋值;

    再写一个方法,同时给三个成员变量赋值;

再写一个方法,打印三个成员变量的值;

 

 

 

 

 

 

 

【作业】

1、已知一辆汽车速度是20Km/h,若令它行驶过一段1000km路程,需要多少小时?

 

 

 

2、创建一条公路,属性有长度和宽度,编写关于长度和宽度的设置和取值方法。

 

 

3、小明手里有两张牌,左手红桃A,右手是方片K,交换手里的两张牌,

问:交换之后,手里的牌各是什么?

 

objective - c 类和对象

标签:

原文地址:http://www.cnblogs.com/-Lim/p/5097190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!