一 实例方法可见度,方法
1.实例变量的可见度
可见度                                                                       特点
public(公有的)                                              实例变量可以在类的外部和内部操作
 
protected(受保护的,默认的)                         实例变量只能在该类和其子类内操作
 
 private(私有的)                                               实例对象只能在该类内访问
注:所谓的内部,指的是相应类的@implementation 和 @end 之间
 
思考:为什么不使用@public 关键字:
1.使用@ public 关键字,暴露了类内部的细节.
2.不符合面向对象语言的三大特性之一 __封装
 
 
二 .OC中的方法分两种:类方法和实例方法
1.类方法:只能类使用,例如:+(id)alloc   注意:类方法中不能使用实例变量
 
实例方法:只能对象使用,例如:- (void)sayH;
2.[person sayHi];
在 OC 中没有”student 调用 sayHi"这种表述
在 OC 中使用消息发送机制:[ receiver   message ];
正确表述:给 student 对象发送 sayHi 消息.
a.student 接收到消息,即方法 sayH;
b. student 找到 sayHi 方法,并执行.
3.” : “ 标示参数,不能省略.有冒号必须有参数.
4.setter,getter 的书写格式.
OC 里规定了 setter 和getter 的书写格式.
如果一个实例变量是 int age ;或者 int _age;
 
setter 的书写格式如下: - (void)setAge:(int)age; 即 set+ 首字母大写的实例变量名
(忽略下划线).
getter 的书写格式如下:- (int)age; 即返回值类型与变量类型一致,方法名由于实例变量名相同(忽略下划线)
 
三.与实例变量的关系
无论是 setter 还是 getter 内部操作的都是实例变量
每一个实例变量都需要一对 setter 和 getter 方法
四:自定义初始化方法
- (id)init 这个初始化方法只能给实例变量设置默认值,不灵活.
- (id)initWithName: 自定义初始化方法,根据需求定义初始化方法.
 
示例:
- (id)initWithName:(NSString *) name sex:(NSString *)sex;
- (id)initWithName:(NSString *)name sex:(NSString *)sex{
 
_name = name;
_sex = sex;
return self;
 
}
五.  #import 
导入头文件,即:导入头文件中的内容到当前类.
#import “” 导入自定义类,# import<> 导入类库中的头文件.
功能类似于 C 语言中的# include, 但是可以避免头文件被重复导入
 
容易出现循环导入头文件问题
 
六:@ class
告诉编译器@ class 后的字符串作为类名使用,并未导入类的接口内容.
有效避免嵌套循环导入.
 
总结:
a. 实例变量有三种常见的可见度: @public, @protected,@private
b.@public 违背了封装特性,面向对象开发中很少使用;@protected 默认可见度,自己和子类中能使用 —>访问实例变量;@ private 自己类中能使用—>访问实例变量.
c. 方法是 OC 的核心,采用消息机制:[ receive message].
“-“message 由对象来调用;
“+”message 由 类来调用.

Objective-C 实例方法可见度,方法的更多相关文章

  1. Java 中静态方法 实例方法 具体方法区别与联系

    在查阅JDK文档时,经常会看到某个类的方法汇总,一般会以如下的格式列出来: 这几个标签对应的方法类型分别是什么意思呢? 1.   Static Method,静态方法,可以在不创建类实例的情况下,访问 ...

  2. Objective c, +load, +initialize 方法

    +load() 当类被加载入程序的时候会执行+load方法 +initialize() 当类第一次被使用的时候会执行+initialize方法 这两个方法都只会被执行一次.

  3. iOS---类方法(静态方法)和实例方法

    类方法   实例方法是以+开头的方法, 实例方法是用实例对象访问:   类方法的对象是类而不是实例,通常用来创建对象或者工具类.     在实例方法里,根据继承原理发送消息给self和super其实都 ...

  4. Objective C笔记(第一天)

    • OC语言概述 1.早在20世纪80年代早期,Bard Cox发明了Objective C, 是扩充的C,面向对象的编程语言. 2.NEXTSTEP简称NS a.1985年,Steve Jobs成⽴ ...

  5. iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象

    1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...

  6. 深入浅出Cocoa之消息(二)-详解动态方法决议(Dynamic Method Resolution) 【转】

    序言 如果我们在 Objective C 中向一个对象发送它无法处理的消息,会出现什么情况呢?根据前文<深入浅出Cocoa之消息>的介绍,我们知道发送消息是通过 objc_send(id, ...

  7. 用CIL写程序:从“call vs callvirt”看方法调用

    前文回顾:<用CIL写程序系列> 前言: 最近的时间都奉献给了加班,距离上一篇文章也有半个多月了.不过在上一篇文章<用CIL写程序:定义一个叫“慕容小匹夫”的类>中,匹夫和各位 ...

  8. Javascript中数组方法和方法的扩展

    最近一直在努力的恶补javascript中的各种知识,比如说闭包,作用域,继承,构造函数,变量,内置对象等概念.同时,也在学习着ES6的新知识.最近想给大家分享的就是数组实例方法的练习以及如何去扩展一 ...

  9. iOS开发Swift篇—(十)方法

    iOS开发Swift篇—(十)方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开头 ( ...

随机推荐

  1. Hibernate+jxl+excel导入数据库

    在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...

  2. C# 加密解密(DES,3DES,MD5,Base64) 类

    public sealed class EncryptUtils     {         #region Base64加密解密         /// <summary>        ...

  3. Linux系统Wpa_supplicant用法小结

    Wpa_supplicant是linux系统下一个非常强大的无线网卡管理程序.google搜索到的它似乎不支持WPA2和AES,其实不然,参考它的文档可以发现,WPA2只是RSN的别名,而AES也是C ...

  4. 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集

    1,推荐几篇非常有用的博文 原创写的真的非常好 主要讲解原理,整体布局三部分组成以及设置padding等等作用, 下拉的具体实现 滑动到底部具体加载以及判断手势事件,再次推荐作者的 详细讲解 建议先看 ...

  5. 《A First Course in Probability》-chaper2-概率论公理

    概率论自身有一套很深的理论体系,读过<几何原本>的读者会知道,伟大的欧几里得之所以伟大,是因为它基于几条最基本的公理,推导除了整个欧式几何学的理论体系,同样,在概率论这里,一切的推导都是源 ...

  6. cygwin with openssh

    新建系统变量 CYGWIN=ntsec path添加 ;c:\cygwin\bin 之后参考http://blog.csdn.net/benkaoya/article/details/8884677 ...

  7. weekend110(Hadoop)的 第七天笔记

    (2015年1月31日) 课程目录 01-storm基本概念 02-storm编程规范及demo编写 03-storm的topology提交执行 04-kafka介绍 05-kafka集群部署及客户端 ...

  8. Index of super-prime - SGU 116(素数+背包)

    题目大意:素数表2,3,5,7,11.....如果一个素数所在的位置还是素数,那么这个素数就是超级素数,比如3在第2位置,那么3就是超级素数.....现在给你一个数,求出来这个数由最少的超级素数的和组 ...

  9. Just a Hook

      Just a Hook 题目大意:原来有N个铜棍, 一个人有种能力可以把一个区间的棍变成铜,银或者金的,价值分别是1,2,3, 最后求出总价值,没啥好说的,赤裸裸的线段树: Time Limit ...

  10. hdoj 3342 Legal or Not【拓扑排序】

    Legal or Not Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...