A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zxm-it 中级黑马   /  2015-8-20 21:27  /  447 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一  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方法的实现中一定要用形参给实例变量赋值

   实现代码:





     组合模式;(对象和对象之间的关系)------依赖----------关联
     依赖关系:

    关联关系:
  

      



附录:

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马