OC基础篇:day01&day02.

来源:互联网 发布:淘宝lol代练 编辑:程序博客网 时间:2024/06/10 22:00

确实一段时间没有更新。now开始我的OC:

day01:

一:第一个OC程序:

1 c语言中,#include<stdio.h>是头文件。 OC语言中,#import<Foundation/Foundation.h>

  #import:与#include一样都是编译预处理指令。 #import功能与#include一样也是将文件内容拷贝到import指令所在的位置。

  #import<>与#include<>用来包含系统的头文件。 #import""与#include""用来包含自己项目中定义的头文件。

  #import是#include的升级版。自动防止文件的重复包含。

2 Foundation就是Foundation框架。@autoreleasepool用于内存管理。

3 NSLog:Foundation框架提供的用于日志输出的函数。

  NSLog 与printf的对比:①printf是c语言提供的,它在stdio.h的头文件中 ②NSLog是Foundation提供的,它在NSObjectCRuntime.h中   ③NSLog包含日志输出的日期以及对应的应用程序。 ④NSLog自动换行功能,(在末尾加上\n不起任何作用) ⑤NSLog新增了一个格式       符%@,用于输出对象。


二:面向对象思想&创建第一个类。

面向过程:强调的是功能行为,关注的是解决问题需要哪些步骤。 面向对象:将功能封装进对象,强调具备功能的对象,关注解决问题需要哪些对象。  面向对象是基于面向过程的。

类与对象的关系:类是具体事物的抽象(概念),对象是该类事物实实在在存在的某个个体。

类的定义:OC中,对应类中的成员变量的属性,对应类中的成员方法是行为,定义类是在定义类中的成员。

OC中创建类:声明和实现: 声明以@interface开头@end结尾    实现以@implementation开头@end结尾。


                                                  

              

             

注意点:1 成员变量的声明必须放在@interface与@end之间的大括号{}中,不能放在大括号{}之外。2 方法的生命放在{}与@end之间。 3 @implementation用来实现方法的。 4 如果uoyige类只有声明没有实现,链接会报错。

方法形参注意点:1 冒号是方法名称的一部分。 2 一个:对应一个形参。3 方法声明中所有的数据类型要用()括起来。 4 冒号前的英文是用来描述参数的作用的。 5 冒号前面的参数说明符是可以省略的  无语法问题  但不要省略。


三:

1 声明与实现不可以嵌套,不同类之间,一个类的内部不可以声明其他的类。

2  调用类的对象方法时,只能通过该类对象,不能像函数一样去直接调用。

3 函数不能直接访问某个对象的成员变量。

函数与方法:①函数都是平行关系,没有谁属于谁。 ② 函数中定义的变量都是局部变量,函数中不能直接操作一个类的成员变量。③ 函数的调用时通过函数名称进行调用的。    对象方法: ① 它是隶属于该类的对象的,只能由该类的对象进行调用。 ②在对象方法中,可以直接访问成员变量,因为他们都是隶属于该类的对象。    

5 对象的创建: Object *obj=[类名 new];  --->①为类的对象在堆中开辟存储空间。  ②将所有的成员变量初始化。 如果是对象类型的就初始化为NULL  ③返回值指向该对象的指针。



day02:

一:NSString 类: 

NSString 类的创建: 1 通过字面量创建 : NSString *str=@"天气冷了";   NSLog(@"%@",str);   

                   2  通过对象方法: NSString *str=[NSString new];    str= [str initWithUTF8String:"多穿点"];  

                   3 通过类方法创建对象: NSString *str =[NSString stringWithFormat:@"多穿%d件衣服",4];

   4 NSString 类中表示长度的函数: long int len=[str length];--->计算的是字符串中有几个字符。

char *strc="天气冷了,注意身体!";

 len =strlen(strc);  //strlen计算字符串所占用的字节数

  NSLog(@"%ld",len);// 输出30   一个中文占用3个字节。


二: BOOL类型:oc提供的一种boolean类型,用来表示逻辑上真与假的类型。

BOOL在oc中,有两个取值: YES NO     YES :真 对应的数值是1      NO :假 对应的数值是0 .

使用BOOL类型提高了代码的可读性,减少代码出错率。

BOOL类型使用场景:

1: 所有的数据类型都可以定义变量。

                     

2 : 所有的数据类型都可以作为形参或实参。

函数:

                     

主函数中:

                     


3 :所有的数据类型都可以作为返回值类型;

                                               

主函数中:

                   


三:对象与函数:

1 对象作为函数参数传递时地址传递。

2 在函数中可以通过对象访问它里面的成员变量,也可以通过对象来调用它的对象方法。

3 因为对象是被创建在堆中,所以可以作为函数的返回值,而局部变量不可以作为函数的返回值,因为局部变量在栈中,局部变量离开函数就被销毁了(释放)。


四:对象与方法:

1 对象作为方法参数传递时是地址传递。     2  对象可以在方法中进行连续传递。 3 对象可以作为方法的返回值。 


五 :多文件开发:在iOS开发中,一个类的声明就是一个头文件(.h),每一个类的实现也是一个实现文件(.m)   

原程序代码:

                   

                        

                     


使用多文件的main程序代码:

          

多文件注意事项:在.m文件中只能导入头文件.h,不能导入.m文件。

在main所在文件中,需导入它所使用的类的头文件。

例:

#import"soldier.h"

#import"Gun.h"

#import"Bullet.h"








0 0
原创粉丝点击