《OC疯狂讲义》笔记(二)

1、NSString的使用

C的字符串保存:1)字符数组      2)字符串的指针

OC中又专门的字符串处理的类(有字符串类型)

NSString  不可变的字符串

NSMutableString 可变字符串

NSString 是OC字符串的类

1) NSString保存字符串

NSString *str = @"abc";    //用str保存字符串常量

创建空字符串

NSString *str = [NSString new];

str = @"xxxx";

格式化字符串(拼接)

stringWithFormat

字符串连接

NSString *str1="itcast";

NSString *str2 = [NSString stringWithForamt:@"welcome to %@",str1];      // welcome to itcast

字符的拼装

NSString *str3 = [[NSString alloc] initWithFormat:@"welcome %d,%f",20,2.3f];   // welcome 10,2.300000

NSString *str4 = @"welcome 10,2.300000";

2)计算NSString的字符串的长度

[str length];

1) 纯英文

NSString  *str5 = @"abc";   // 3

2)纯中文

//UTF-8  国际通用编码3    GB2312   国内标准2   GBK

NSString  *str6 = @"传智播客";  //4

char *str7 = "传智播客";        //12

3)中英文混合

NSString  *str6 = @"传智播客xy";  //6

2、对象和方法之间的关系

(1)对象作为方法的参数

Person *p = [Person new];

Person *p1 = [Person new];

-(void)test:(Person *) person;

[p test:p1];

//p1 -----> person

(2)对象作为方法的返回值

-(Person *)test1{

//p3 0x40

Person *p3 = [Person new];

p3->_name = @"zhe";

return p3;

}

//p4 0x40

Person *p4 = [p test1];

3、对象作为方法的参数,连续传递

1)枪作为方法的参数

-(void)fireByGun:(Gun*) gun;

-(void)fireByGun:(Gun*) gun{

[gun shoot];

}

2)增加了 子弹的类

-(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet;

-(void)fireByGun:(Gun *) gun andBullet:(Bullet *) bullet{

[gun shoot:bullet];

}

//枪的方法

-(void)shoot:(Bullet *)bullet;

-(void)shoot:(Bullet *)bullet{

bullet->_bulletCount --;

}

4、多文件开发

什么是多文件开发?

C的模块化开发: 把功能相似的函数,写到同一个文件中

.h   函数声明

.c   函数的实现

OC 模块化开发: 把功能不同的类放到不同的文件中

.h   类的声明

.m   类的实现 (方法的实现)

多文件开发的好处:提高代码的可读性

如何进行多文件:

1)new ---> new File ---> Header file(.h)

---> Objective-C file (.m)

Person.h

规范: 1) @interface Person :NSObject

2) #import <Foundation/Foundation.h>

Person.m

3)#import "Person.h" (new  Cocoa Class 会自动写这句话)

@implmentation Person

@end

2) new ----> new File ----> Cocoa Class (同时创建.h 和 .m)

时间: 2024-10-22 13:39:40

《OC疯狂讲义》笔记(二)的相关文章

《OC疯狂讲义》笔记(一)

1.OC简介 Objective-C    继承自C和smalltalk 最小程度增加了面向对象的部分,是一门面向对象编程语言 1986. Next 得到授权 关于 Cocoa 框架(96) Cocoachina.com code4app.com 2.OC HelloWorld OC的文件有哪几种? .h  头文件(声明类) .m  OC源文件(类的实现) #import <Foundation/Foundation.h>  //导入文件 //main函数是OC得主入口函数 int main(

《OC疯狂讲义》笔记(三)

1.类方法 1)什么是类方法 对象方法: -(返回值类型)方法名:(形参的类型) 形参名; 类方法 +(返回值类型)方法名:(形参的类型) 形参名; 2)类方法怎么去定义 +(返回值类型)方法名:(形参的类型) 形参名; 3)类方法的使用 调用: 对象方法:  [对象名    方法名:实参] 类方法:    [类名      方法名:实参] 4)使用类方法的好处 1)提高效率 2)减少内存空间占用 3)代码更加简洁 缺点:不能访问对象的成员变量 5)对象方法和类方法的对比 类方法        

《OC疯狂讲义》笔记(四)

1.两个关键字:self 和 super self 可以用在对象和类方法中 1)self用在对象方法中:指代的时调用当前对象方法的那个对象 2)self用在类方法中:指代的时当前类(实质是类对象) 总结:当self在方法中使用,谁调用这个方法,self指代的就是谁 super: 使用super的地方,一定存在继承关系 super调用父类的方法 2.面向对象的其他特性:继承 继承概念: 假设有两个类:A   B 继承是两个类之间的关系 假设声明B类的时候, 1)导入父类的头文件 2)设定继承关系

《OC疯狂讲义》笔记(五)

1.OC中的点语法 点语法: 对象名.成员变量名   (点语法不是访问成员变量,而是方法的调用) 它是一个编译器特性 点语法作用:可以替换传统的get和set方法的调用 点语法的前提: 首先得先有 get和set方法 点语法实质: 调用get和set方法 如果点语法出现在 = 的左边,表示设置值,相当于调用了set方法 p.age = 10; 替换为:[p setAge:10]; 如果点语法出现在 = 的右边,表示获取值,相当于调用了get方法 int age = p.age; 替换为:int

李刚OC语言疯狂讲义笔记

设计一个”学生“类1> 属性* 姓名* 生日用结构体作为类的实例变量(生日) #import <Foundation/Foundation.h> //定义生日的结构体 typedef struct{ int year; int month; int day; }MyDate; @interface Person : NSObject { @public NSString *_name;//定义姓名 MyDate _birthday;//定义生日 } @end @implementatio

java疯狂讲义笔记整理(第二版第一部分)

第一章    java语言概述 1.1    java语言的发展简史 1990末:    sun公司“Green计划”(James Gosling领导)        ----目的是智能家电编写一个通用嵌入式控制系统,为此创建oak 1992夏天:    "Green计划"完成新平台的部分功能 1992年11月:    "Green计划"被转为"FirstPerson有限公司"-一个sun的全资子公司,致力于创建一个高度互动的设备 1994夏天:

java8--类加载机制与反射(java疯狂讲义3复习笔记)

本章重点介绍java.lang.reflect包下的接口和类 当程序使用某个类时,如果该类还没有被加载到内存中,那么系统会通过加载,连接,初始化三个步骤来对该类进行初始化. 类的加载时指将类的class文件读入内存,并为之创建一个java.lang.class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象.(几乎所有的类都是java.lang.Class的实例); 所以JVM最先初始化的总是java.long.Object类. 在java中,一个类用

疯狂html5讲义(二):HTML5简的常用元素与属性(一):html5保留的常用元素

html5删除了少量的元素与属性:主要删除了文档样式相关的各种元素与属性,比如<font>.width等,html5规范推荐使用css样式单来控制html文档样式. 1.基本元素 <html>.<head>.<title>.<body>.<style>.<h1>到<h6>.<p>.<br>.<hr>(定义水平线).<div>.<span>~~~ <

疯狂html5讲义(二):HTML5简的常用元素与属性(二):html5新增的通用属性

1.contentEditable属性 true时可直接编辑html元素里面的内容,且具有"可继承"的特点. 编辑后不要刷新页面,否则编辑的内容会丢失,可以通过该元素的innerHtml属性来获取编辑后的内容. 2.designMode属性 此属性相当于一个全局的contentEditable属性 3.hidden属性 可以替代css中的display,hidden=true相当于display:none 4.spellcheck属性 针对于input.textarea等元素,可以对用