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

1、类方法
 
    1)什么是类方法
 
       对象方法:
       -(返回值类型)方法名:(形参的类型) 形参名;
 
       类方法
       +(返回值类型)方法名:(形参的类型) 形参名;
 
    2)类方法怎么去定义
 
       +(返回值类型)方法名:(形参的类型) 形参名;
 
    3)类方法的使用
 
       调用:
 
       对象方法:  [对象名    方法名:实参]
 
       类方法:    [类名      方法名:实参]
 
    4)使用类方法的好处
 
       1)提高效率
 
       2)减少内存空间占用
   
       3)代码更加简洁
  
       缺点:不能访问对象的成员变量
 
    5)对象方法和类方法的对比
 
       类方法                          对象方法
       以+开头                         以 - 开头
       只能使用 类名 去调用            只能使用对象去调用
       不能访问成员变量                可以访问成员变量
       
       类方法中可以调用对象方法        在对象方法中,可以直接调用类方法
       1)对象作为方法的参数传递过来
       2)在方法中通过创建对象,然后
          再调用
 
 
 2、匿名类的使用
 
       匿名对象 -
   
            创建了对象,但是没有指针去指向它
 
            [Person new];
 
            特点: 每次使用都会新申请一块内存空间
  
       1)可以访问成员变量
 
            [Person new]->_name = @"三胖";
 
            NSLog(@"%@",[Person new]->_name);  //null
 
       2)可以调用方法
 
            [[Person new] run];
 
       3)可以作为方法的参数
 
            [p goHome:[Car new]];
 
 3、面向对象特性-封装
 
       1) 什么是封装?
 
          把复杂的数据或者操作进行隐藏,只提供操作数据或者方法的接口
 
          好处:
 
          如果要操作数据、方法必须按照要求
 
          1)隐藏数据
          2)隔离变化
          3)保护数据安全
 
       2) 不封装有什么缺点?
 
          对象失去了对对象自己的成员变量的管理权
 
       3) 如何进行封装?
 
          通过定义相关的方法,去读取或者写入数据到成员变量中
          并且成员变量的操作必须通过方法来完成
 
          1)读方法(getter) - 读取成员变量的值
 
             规范:
 
             1)一定是一个对象方法
             2)一定有返回值
             3)方法名一定是 去掉下划线的 成员变量名
             4)一定没有参数
             5)方法的实现中:一定是返回值成员变量名
 
          2)写方法(setter) - 给成员变量赋值
 
             OC中的规范:
 
             1)一定没有返回值
             2)一定是对象方法(-)
             3)方法名一定是以set开头  格式:set + 去掉下划线的成员变量名的首字母大写
             4)一定有参数
             5)参数的类型一定是和成员变量类型一致
             6)形参的名称一般建议是 去掉下划线的成员变量名
             7)写方法的实现中,一定是给成员变量赋值
 
 
 4、对象和对象之间的关系


      1) 组合模式
 
          由若干个类型相同或者实现了同一个接口的对象组合到一起
 
      2) 依赖关系
 
          A对象作 B对象的方法形参或者方法的局部变量使用,B依赖A
 
      3) 关联关系
 
          A对象 作为B对象的一个成员变量,A和B有关联关系
基于html+python+Apriori 算法、SVD(奇异值分解)的电影推荐算法+源码+项目文档+算法解析+数据集,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 电影推荐算法:Apriori 算法、SVD(奇异值分解)推荐算法 电影、用户可视化 电影、用户管理 数据统计 SVD 推荐 根据电影打分进行推荐 使用 svd 模型计算用户对未评分的电影打分,返回前 n 个打分最高的电影作为推荐结果 n = 30 for now 使用相似电影进行推荐 根据用户最喜欢的前 K 部电影,分别计算这 K 部电影的相似电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now 根据相似用户进行推荐 获取相似用户 K 个,分别取这 K 个用户的最喜爱电影 n 部,返回 K*n 部电影进行推荐 K = 10 and n = 5 for now Redis 使用 Redis 做页面访问次数统计 缓存相似电影 在使用相似电影推荐的方式时,每次请求大概需要 6.6s(需要遍历计算与所有电影的相似度)。 将相似电影存储至 redis 中(仅存储 movie_id,拿到 movie_id 后还是从 mysql 中获取电影详细信息), 时间缩短至:93ms。 十部电影,每部存 top 5 similar movie 登录了 1-6 user并使用了推荐系统,redis 中新增了 50 部电影的 similar movie,也就是说,系统只为 6 为用户计算了共 60 部电影的相似度,其中就有10 部重复电影。 热点电影重复度还是比较高的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值