黑马程序员技术交流社区

标题: oc第三天 [打印本页]

作者: 和夏一样狂热    时间: 2015-8-7 22:19
标题: oc第三天
一. NSString的创建和使用
1,创建常量字符串,注意使用“@“符号。
NSString *astring = @"This is a String!"; //后面的是常量,前面的是指针变量

2,NSString *s1 = [NSString new];//没有意义
s1 =@"jian le ma";

3、创建字符串的第三种方法
//         格式化创建字符串(按照指定的格式创建字符串)
NSString *imgName = [NSString stringWithFormat:@"xxxxxx%02d.jpg",i];

4、用一个已经存在的字符串创建一个新的字符串
NSString *s2 = [[NSString alloc] initWithString:s1];


5.NSString长度计算方法.
NSString *str = @"ban长";
[str length]; // 4

二. 多文件开发
1,为什么要使用多文件?
在开发当中实现的功能一般会比较复杂, 所以会将类分成声明(.h文件)和实现(.m文件)部分,
2,在.h文件中写成员变量和方法的声明, 在.m文件中写成员变量和方法的实现.
这样写大大提高开发效率, 提高代码的维护性.


三,类方法
一. 特点:
1. 以加号( + )开头,
2. 调用格式:  [类名  方法名]


二. 注意事项:
1. 类方法可以和实例方法同名, 相互之间互不影响

2. 类方法可以从父类继承而来,子类可以重写类方法 // ,如description类方法

3. 类方法和实例方法一样在interface里声明, 在implementation里实现。

4. 类方法由类名调用,  实例方法由对象调用。

5. 在类方法里使用了self, self指代的是调用者类

6. 在类方法中不能使用类的成员变量

7. 类方法和对象方法之间不能使用self相互调用

总结self : 谁调用当前方法, self就代表谁


三.  类方法和对象方法的比较
1. 对象方法以减号开头, 可以使用成员变量
2. 类方法以加号开头,不能使用成员变量

3. 类方法使用场景
如果我们调用一个方法,该方法中不需要使用成员变量,那么我们可以将该方法声明为类方法

4. 匿名对象
匿名对象的使用场景: 当对象的方法只调用一次时,可以使用匿名对象来完成。

匿名对象优缺点 :
优点: 可以简化代码,方便方法调用;节省内存空间
缺点: 匿名对象实例化以后,只能使用一次


四. 封装
1.什么是封装:
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

2. 封装的好处:
2.1  将变化隔离。(不管里面怎么变,使用者不需要知道)
2.2  便于使用。(使用者只需按照一定的方法使用就可以了)
2.3  提高重用性。(任何人都可以对已封装好的功能进行操作)
2.4  提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)

3. 封装的原则:
3.1 将不需要对外提供的内容都隐藏起来。
3.2 把属性都隐藏,提供公共方法对其访问。


4. 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;
}

get方法书写规范:
1) get方法一定是一个对象方法
2) get方法一定有返回值,返回值的类型和实例变量的类型要一致
3) get方法的方法名 是去掉下环线的实例变量名
4) get方法一定没有参数
5) get方法的实现中,一定是返回实例变量值

成员变量: int _age; 的setter方法
-(int)age{
    return _age;
}











欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2