OC中的基础知识点、类和类方法的创建、调用 以及对象

来源:互联网 发布:最好英语辅导软件 编辑:程序博客网 时间:2024/06/06 03:42

1.#import

#include 增强版
可以防止被重复包含

2.框架

引进头文件

3.自动释放池

@autoreleasepool
{

}

4.NSLog( )函数

1).printf增强版

2).NSLog(@“字符串”,变量列表);

3).区别

 a.输出的信息,还有非指定信息   输出的时间  +  程序的名字 + 程序的进程ID (PID) + 线程ID  b.输出完信息之后会自动换行

注意: 加 \n 原自动换行功能失效

5.OC中的字符串

1).C语言的字符串的存储方式

a.使用字符数组b.使用字符指针来存储

2).NSString指针

专门用来存储OC字符串的地址的NSString *str = @“jack”;

3).OC中的字符串常量必须要使用@符号作为这个字符串的前缀

@“jack”   注意:区分C串

4).输出 %@

6.NS前缀

7.@符号

 1).将C字符串转换为OC字符串 2).OC在C基础上新增关键字,都以@开头

8.注释

与C一致

9.OC定义函数

与C一致

10.流程

链接函数时,若代码中使用到了框架功能,需在链接的时候,手动告诉去哪个框架找
cc xx.o -framework 框架名称

11.OC新增数据类型

1).BOOL类型(常用)

存储YES 或 NO用来保存一个条件表达式的结果 YES就是1 NO就是0本质是有符号的char变量

2).Boolean类型

存储true 或 false用来保存一个条件表达式的结果 true就是1 false就是0本质是无符号的char变量

3).class类型

4).nil

 与NULL差不多

5).SEL

用来保存方法

12.OC的运算符

13.OC将C语言封装的更为简单

OC增加了面向对象的语法

14.重点

面向过程: 完成一件事,需要哪些步骤
面向对象: 完成一件事,需要找多少个对象

什么是对象?

对象是类的实例。

什么是类?

 对1群具有相同特征和行为的事物的1个统称 a.类是模板,对象是根据这个类模板创建出来的 b.类是不能用的 c.类模板中有什么,对象就有什么,不会多不会少 d.类的三要素     名称     特征     行为

如何找类?

名词提炼法:分析整个业务流程中出现了哪些名词,这些名词就是类

1).定义1个类的语法

定义类的位置     main函数外面,源文件下 —>类的声明@interface  类名 : NSObject {      这类食物具有相同的特征      把这些特征定义为1个1个的变量      数据类型1  变量名1;      数据类型2  变量名2;       ……..     }    写上这类事物具有的共同的行为,用方法表示    方法的声明    @end —>类的实现 @implementation  类名 方法的实现 @end注意: 类所具备的共同的特征,应该是以变量的形式声明在@interface 大括弧中

2).定义类的时候,必须要注意的几点

a.类必须要有声明和实现b.类名 每1个单词首字母大写c.类名不能和框架中的类的名字冲突  为了防止命名冲突,我们建议为我们的类加1个前缀d.属性名称必须要以 _ 开头

16.对象

 语法格式: 类名 * 对象名 = [类名 new];

17.使用对象

语法格式:   a. 对象名->属性名 = 数据;   也可以取值   b. (*对象名).属性名 = 数据;默认情况下,对象中的属性是不允许在外界访问的定义类的地方,属性前加1个修饰符 @public  就可以访问了必须创建对象,为对象赋值

18.无参数的方法的声明

1).@interface 的大括弧外面

2).语法:

  -(返回值类型)方法名称;  -(void)run;

3).将方法头拷贝到@implemetation 删除分号 补大括号

  -(void)run {    代码实现   }

4).如何调用

 类中的方法不能直接调用,因为类不能直接使用 需要创建这个类的对象 对象中有类所定义的所有的东西,包括属性和方法 语法:  [对象名 方法名];

19.带有一个参数的方法的声明

1).语法

-(返回值类型)方法名 : (参数类型)形参名称;-(void)eat : (NSString*)foodname;   //传入OC字符串类型 注:不要有空格

2).带有一个参数的方法的实现

 将方法头拷贝到@implementation中,删除分号,补大括弧 将方法的实现写在大括弧中 在方法实现中可以直接使用参数的值

3).调用

调用带1个参数的方法:[对象名  方法名 :  实参];[P1 eat:@“红烧肉”];

20.带多个参数的方法的声明

1).语法

-(返回值类型)方法名: (形参类型)形参名1 : (形参类型)形参名2 : (形参类型)形参名3;-(int)sum:(int)num1 :(int)num2;  规范:num1后面 空格 :

2).实现

 将方法头拷贝到@implementation中,删除分号,补大括弧 将方法的实现写在大括弧中 在方法实现中可以直接使用参数的值
@implementation P1{  -(int)sum:(int)num1 :(int)num2  {    int sum = num1 + num2;    return sum;  } }

3).调用多个参数的方法

 语法: [对象名  方法名:实参1 :实参2 :实参3];
int sum = [P1 sum:10 :20];

结论: 如果方法没有参数,那么这个方法的名字就是这个方法的名字
如果方法有参数,那么方法的名字带了冒号的

21.方法的命名规范

1).方法只有1个参数

xxxWith:       //这个方法的名字叫做 xxxWith : 

例: [P1 eatWith:@”红烧肉”];
xxxWithFood: // <–加强版更详细

2).方法有多个参数

 xxxWith:参数1 and:参数2;     //这个方法的名字叫做 xxxWith : :

例: -(int)sumWith:(int)num1 and:(int)num2
例: [P1 sumWith:10 and:20];
进一步优化:
例: -(int)sumWithNum1:(int)num1 andNum2:(int)num2;
例: [P1 sumWithNum1:10 andNum2:20];
目的:使其看起来是1条完整的语句

阅读全文
0 0
原创粉丝点击