1.NSString 创建一个字符串(4种方法):
(1)NSString *str1=@"xxxx";
(2)NSString *str2=[NSString new];
(3)NSString *str3=[NSString stringWithFormat:@"xxxx"];
(4)NSString *str4=[[NSSring allco] initWithString:str3];
2.计算字符串长度
[字符串名 length];
OC中,中英文都是算一个字符,在C中一个汉字占3个字节,一个英文字母占1个字节,注意'/0'都是不算一个字符的!
3.多文件开发:
类的声明写到.h文件中,类的实现写到.m文件中!
4.类方法:以"+"开头,调用的时候用类名
优点:
1}节省内存空间
2}提高效率
3}作为工具方法
5.类/对象方法的选择--(使用场景):
考虑类方法还是对象方法看是否需要成员变量参与运算
6.类/对象方法的使用总结:
(1)类方法中不能使用类的成员变量(属性/实例变量)! 因为是没有new,所以在堆中并没有分配内存空间,自然没法使用!
(2)对象方法可以调用其他的对象方法:
1}当前对象方法中创建对象(可以是当前类的实例对象,也可以是其他类的实例对象),使用新创建的对象调用对象方法
2}可以使用self
3}对象作为方法的参数传递过来,可以使用传递过来的对象调用方法
(3)类方法中可以调用其他的类方法:
1}可以直接使用本类类名(或者其他类名)调用类方法//例如[Car run:250];和[Dog run];
2}可以使用self//例如[self run:100];
(4)在类方法中可以调用对象方法:
1}对象作为方法的参数传递过来
2}可以创建一个对象
类方法不可以调用自身,会造成死循环
对象方法中的self代表对象;类方法中的self代表类
7.匿名类/对象[类/对象名 new]:
1}匿名类/对象访问实例变量(能,只能访问一次,以后再访问其实就是访问新的空间了)----无意义
2}匿名类/对象一般使用在只调用一次类/对象方法的时候
3}作为方法的参数传递
优点是简化代码,缺点则是无法使里面的成员变量改变数值参加使用.
8.封装:
1.}什么是封装:
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
2.}封装的好处:
将变化隔离。(不管里面怎么变,使用者不需要知道)
便于使用。(使用者只需按照一定的方法使用就可以了)
提高重用性。(任何人都可以对已封装好的功能进行操作)
提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)
3.}封装的原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
9.setter方法的实现
set方法的书写规范:
1} set方法一定是一个对象方法
2} set方法一定不能有返回值
3} set方法必须以set开头
4} set之后跟的是 实例变量去掉下划线,并且首字母大写
5}set方法一定有参数,而且参数的类型和实例变量的类型一致
6} set方法的形参名 一般是 去掉下划线的实例变量名
7} 形参名不能和实例变量名同名
8} set方法实现中,一定要用形参给实例变量赋值
成员变量: int _age; 的setter方法
-(void)setAge:(int)age{
_age = age;
}
[person setAge:10];
10.setter方法的实现
get方法书写规范:
1) get方法一定是一个对象方法
2) get方法一定有返回值,返回值的类型和实例变量的类型要一致
3) get方法的方法名 是去掉下划线的实例变量名
4) get方法一定没有参数
5) get方法的实现中,一定是返回实例变量值
成员变量: int _age; 的get方法
-(int)age
{
return _age;
}
setter (设置/赋值) 设置属性不需要返回值 setter之后 对象的属性就被设置值了
get (获取/取值) 获取对象属性的值(返回实例变量的值) get之后 就可以拿到对象属性的值
11.对象之间的关系:
1}组合模式:把具有相同基类类型的对象组合到树形结构中,以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
2}依赖关系:A对象作为B对象的局部变量或是方法形参的,B依赖与A,这时候我们称A与B之间存在一种依赖关系
人坐车回家
[person goHome:car];//人依赖于车
3}关联关系
当一个对象拥有另外一个对象的时候, 当B对象为A对象的成员变量的时候,B对象与A对象之间存在一种关联关系
关联关系是面向对象中最常用一种关系
@interface Person : NSObject
{
Dog *_dog; //人与狗之间是关联关系 //人有了一条狗
}
|
|