OC知识点(类方法,构造方法,组合模式,get,set方法,自动生成属性)
1.类方法的优势
不用创建对象,节省了空间,直接用类名调用类方法,类方法为外界提供一个方便的调用接口.(特点:类方法以加号开头,不能使用自身的成员变量,它的调用不依赖成员变量)
2.构造方法(初始化成员变量, 类似于出厂设置)
必须以减号开头后跟init+有意义的后缀,自定义的构造方法可以包含多个参数, 返回值为id, 必须使用驼峰命名规范.
3.组合模式(类与类的组合,增强了类之间的耦合度)
即在一个类中使用另一个类定义一个成员变量表示隶属关系,如学生拥有书本,学生是一个类,书本也是一个类,用书本创建一个成员变量给学生用.
4.get和set方法(获取或设置成员变量的值)
set方法: 必须以减号开头后跟(void)set+要设置的成员变量名,无返回值,命名同样使用驼峰命名规范;
get方法:必须以减号开头后跟(要获取的变量类型)+设置的成员变量名,命名同样使用驼峰命名规范.
5.自动生成属性(方便声明一些不用检查范围的属性)
使用@property+类型名+属性名
Xcode4.3之前这样的定义系统会给该属性声明set和get方法并且符合上面的要求,但是没有给出实现(@synthesize 属性名=成员变量名来完成实现).
Xcode4.3之后系统不仅给出了相应的实现而且还定义了一个成员变量(变量名前加下划线).
但是这种方式生成的属性只是最简单的赋值,而不包含数据完整性和安全性的检查,因而当用户需要检查是就要自己写set和get方法.
如果同时重写了set和get方法,那么系统就不会根据属性名生成成员变量,就要声明该成员变量.
OC知识点(类方法,构造方法,组合模式,get,set方法,自动生成属性)的更多相关文章
- [图解教程]Eclipse不可不知的用法之一:自动生成Getter、Setter和构造方法
[图解教程]Eclipse不可不知的用法之一:自动生成Getter.Setter和构造方法 关键词:Getters and Setters.getter和setter方法.Constructor us ...
- 【Unity3D】资源对象、预设、查找对象、组合模式等知识点
1.解释对象与资源区别于联系,根据官方案例,分别总结资源和对象组织的规则/规律. 下载并查看了Adam和Survival Shooter tutorial两个官方资源案例,这些案例作为资源,可以 ...
- 16. 星际争霸之php设计模式--组合模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- 设计模式16---设计模式之组合模式(Composite)(行为型)
1.场景模拟 使用软件模拟大树的根节点和树枝节点和叶子节点 抽象为两类,容器节点和叶子节点 2.不用模式的解决方案 package demo14.composite.example1; import ...
- C#学习笔记-组合模式
什么是组合模式? 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构. 组合模式使得用户对单个对象和组合对象的使用具有一致性. 何时使用组合模式? 当需求中是体现部分与 ...
- 设计模式总结篇系列:组合模式(Composite)
在探讨Java组合模式之前,先要明白几个概念的区别:继承.组合和聚合. 继承是is-a的关系.组合和聚合有点像,有些书上没有作区分,都称之为has-a,有些书上对其进行了较为严格区分,组合是conta ...
- 设计模式(9)--Composite(组合模式)--结构型
1.模式定义: 组合模式属于对象的结构模式,有时又叫做“部分——整体”模式.组合模式将对象组织到树结构中,可以用来描述整体与部分的关系.组合模式可以使客户端将单纯元素与复合元素同等看待. 2.模式特点 ...
- Java 设计模式系列(九)组合模式
Java 设计模式系列(九)组合模式 将对象组合成树形结构以表示"部分-整体"的层次结构.组合模式使得用户对单个对象的使用具有一致性. 一.组合模式结构 Component: 抽象 ...
- 设计模式-组合模式(Composite Pattern)
本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 前置技能:认识数据结构中的树形结构. 组合模式简介 组合模式是将对象组合成树形结构以表示“部分- ...
随机推荐
- 文件上传下载:commons-fileupload + Servlet 2.5
数据库:MySQL 开发技术:JSP + Servlet 2.5 第三方的上传组件: commons-fileupload connons-io 上传页面1.form表单需要增加:enctype=&q ...
- ZOJ 3963 Heap Partition set维护。给一个序列,将其划分成尽量少的序列,使每一个序列满足按照顺序构造二叉树,父母的值<=孩子的值。
Heap Partition Time Limit: Seconds Memory Limit: KB Special Judge A sequence S = {s1, s2, ..., sn} i ...
- 通过Get方式传递数据
1:因为get传参数有个特点就是不能超过256字节.如果数据大的话会溢出. 解决办法: $data=json_encode($data_array); 然后在拼接超链接: <a href=&qu ...
- 用ActivatedRoute获取url中的参数
突然让我用ActivatedRoute import {Injectable} from "@angular/core"; import {ActivatedRoute} from ...
- 微信 oauth4
4.最后 4. 使用access_token获取用户信息 请求方法: https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN& ...
- EntityFramework(EF) 单表与主从表的使用
一.单表Reader 1 构建Reader类 public class Reader { public int ReaderID { get; set; } publ ...
- lucene学习-创建索引
本文的lucene是基于lucene3.5版本. 使用lucene实现搜索引擎开发,核心的部分是建立索引和搜索.本节主要是记录创建索引部分的内容. 创建的索引结构如图所示. 创建索引的步骤分为以下几个 ...
- python_selenium之xpath的使用
python_selenium之xpath的使用 一.xpath介绍 Xpath:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于X ...
- 如何通过sequel pro导入.sql脚本
1.参考地址 https://zhidao.baidu.com/question/985373253463808219.html
- Android-NDK编译
(2013-12-19 21:48:21 其实一切还是先看看官网的好,乱百度浪费时间.... http://developer.android.com/tools/sdk/ndk/index.htm ...