一 NSString 类的介绍:
字符串处理类: 创建常量字符串:NSString *s 字符串变量指针,,由字符串常量赋值
NSLog(); 输出
方法1:(对象创建方式)
方法2:(格式化创建字符串),按照指定格式创建字符串:
方法3:(用一个已存在的创建新的)
二 NSString字符串长度计算:
1.NSString *s=@"swwd ddw dd "; //纯英文
int len=[ s length] 不全;
2, NSString *s=@"等你放假的飞机飞机"; //纯中文
中英文一视同仁;都按一个字符处理 在c语言中一个汉字占3个字节,U8编码
3 中英文混合:
同理占一个 c中不同!
三 多文件开发:
.h是声明文件 .m是实现文件 ::
实现步骤:
1,.h和.m文件要同名
2,文件名就是类名(见名知意)
3,新建.h文件,把类的声明导入;
4,不同的类写在不同的文件中
拷贝导入:(注意相互包含,包含.h的文件)
主函数中引入的是.h文件(声明文件) 用import " .h",
四 类方法
类方法和对象方法的区别
类方法:
1,实例方法,对象方法 (必须有类的实例)
2.类方法:(不需要创建一个类的实例),由类调用,不依赖实例
定义:+号来定义; 同样分为不同类型(参数,和对象类似)
使用:类名+方法名 [类名 类方法名]
3.[ Dog run] ---------
方法名同名的前提是:+和-的不同,即,对象方法和类方法可以同名,只是其本质不同
一个由类调用,一个由对象调用
不需要在堆区创建任何空间,直接由内存代码区的类直接调用方法,然后把值直接给栈区的接受变量.:(考虑该方法是不是使用成员变量,不需要创建对象时,效率高)
类方法使用注意:
1.同名,不影响使用(类方法和实例方法本质不同)
2,类方法可以由父类继承而来
3.类方法同样在@interface里声明,在@implemention里实现
4.不同类型的方法来调用(内存中调用的入口不同)
5.类方法中使用self;(后续)
类方法犯错:(节省内存空间,提高执行效率,作为工具方法)
1 类方法中不能使用成员变量(不能使用类的实例变量)
2 注意方法名和:符号也是方法名的一部分;即 (run和run:不同)
3 对象方法可以调用当前自己的其他对象方法(在当前方法中创建实例,来调用 可以用self 可以在main中传递对象为函数)
4 在类方法中可以调用其他类方法(可以使用其他类名调用或本类名 可以用self 使用其他类名调用其他类的方法)
5 类方法中可以有传递过来的其他类的实例,并且可以由该实例来调用自己的方法(该类方法直接可以调用)
6 类方法不能调用自身(指在本方法中调用本方法)
在什么样的方法中,self就代表什么量:(此处死循环,用self不能调用自己的方法)----
类方法的用:
创建一个手机的颜色返回(枚举类型)
五 匿名对象
匿名类:
[类名 new]: 匿名类的使用,用的是其对象
[类名 new]->_成员变量=值
1匿名类的第一种使用方法: 使用匿名类访问实变量(只能访问一次,以后再访问的时候开辟了新的存储空间)
2使用匿名类实际是为了调用其对象方法:
[[类名 new] 对象方法名]: 定义形式=======
匿名类作为方法的参数传递.(匿名类):形式:[对象名 方法名:[类名 new]]
可以嵌套,匿名类调用方法,参数也是匿名类
该形式返回堆区的地址(赋值情况下:) :
六 封装,组合,依赖
封装:@interface为声明部分,相当于对外接口 @implementation为实现接口,封装
实例变量只能被当前类的实例方法调用,
封装的实现步骤:
设置实例变量的访问(setter(设置器)):set为外界设置了一个统一改变变量的方法
步骤一:
步骤二:
1 set方法不能有返回值,一定是对象方法-
2 后面是实例变量去掉下划线,且首字母大写
3 set方法一定有参数,类型和实例变量一致
4 形参名一般是去掉下划线的实例变量名
5 形参名不能和实例变量名重名
6 都应该把实例变量给出相应的set方法
get方法的使用:规范
1 方法一定是一个对象方法
2 一定有返回值,其类型应该和实例变量一致
3 去掉下划线的实例变量名 方法名
4 一定没有参数
5 实现中返回的一定是实例变量值:
6 以后获取实例变量名都要用get方法
7 set方法的实现中一定要用形参给实例变量赋值
实现代码:
组合模式;(对象和对象之间的关系)------依赖----------关联
依赖关系:
关联关系:
附录:
|
|