一 实例方法可见度,方法
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. VMware Workstation 不可恢复错误: (vcpu-0)

  2. Eclipse配置Git

    一.Eclipse上安装GIT插件EGit Eclipse的版本eclipse-java-helios-SR2-win32.zip(在Eclipse3.3版本找不到对应的 EGit插件,无法安装) E ...

  3. Java判断空字符串

    今天碰到java中去判断String是否为空字符串的时候,用了S.length() ==0, s.equals(null), s.isEmpty(), 都失败. 后来用S.trim().equals( ...

  4. 2015第43周三memcached

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...

  5. css3图片墙

    css相关知识: 1. 使用box-shadow设置图片阴影,为照片加上阴影 eg: box-shadow: 0 0 5px 3px #abc 2. 使用tansform-origin定义变形原点 e ...

  6. LayoutInflater作用及使用--自定义EditText,自带清除内容按钮

    作用: 1.对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2.对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法 ...

  7. 安装MongoDB -- Windows平台

    1. 安装MongoDB 2. 添加环境变量 将安装后的bin目录,添加至系统的Path环境变量中,例如我的安装路径为"C:\Program Files\MongoDB\Server\3.2 ...

  8. Transact-SQL 常用函数 分类: SQL Server 2015-02-03 09:47 284人阅读 评论(0) 收藏

    (1)DECLARE 两种用法: 1>: DECLARE @usid VARCHAR(50),@usna NVARCHAR(100),@grna NVARCHAR(100); 2>: DE ...

  9. 去除android ImageView “[Accessibility] Missing contentDescription attribute on image” warning

    1.在有警告的xml上选择Graphical Layout: 2.查看右上角的被涂鸦的地方,然后点击: 3.出现: 4.点击”Ignore Type“或者是“Disable Issue Type”(不 ...

  10. DELPHI 重命名文件名时 文件存在自动重命名

          procedure TForm1.Button1Click(Sender: TObject); var Dir, FileTitle, FileExt: string; s,s1: str ...