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

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条完整的语句

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值