一 实例方法可见度,方法
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. poj 2431 Expedition 贪心

    简单的说说思路,如果一开始能够去到目的地那么当然不需要加油,否则肯定选择能够够着的油量最大的加油站加油,,不断重复这个贪心的策略即可. #include <iostream> #inclu ...

  2. 短信验证码js实现

    短信验证码实现 我们在使用移动.电信等运营商网上营业厅的时候,为确保业务的完整和正确性,经常会需要用到短信的验证码.最近因为某省业务需要,也做了个类似的功能. 原理很简单,就是在用户点击"获 ...

  3. Performance Optimization (2)

    DesktopGood performance is critical to the success of many games. Below are some simple guidelines f ...

  4. 用指针将字符串a的内容复制到字符串b

    #include <stdio.h> #include <stdlib.h> /**int main() { char a[]="i love you very ma ...

  5. 用Delphi直接获取bmp图片的像素

    用Delphi直接获取bmp图片的像素,并存储显示出.(此像素主要用在LED上显示).希望高手能给出代码啊!! function getImagePixels(f: string): Integer; ...

  6. [git] git 的基础功能

    有两种方法获得一个 git 仓库:自行初始化,克隆别人已有的仓库 自行初始化 git init 克隆别人已有的库 git clone git@github.com:garrisonz/gitStudy ...

  7. OpenSource

    SugarCRM 客户关系管理系统(CRM).SugarCRM开源版是一款完全开放源代码的商业开源软件 OPENFILER 基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接 ...

  8. hibernate一对多关系映射(自身关联)

    示例:一个类别(Category)下面有多个子类别,多个子类别属于同一个父类别. public class Category  { private Integer id; private String ...

  9. linux创建用户,指定组

    本博客不再更新 该文章新链接移步:http://it.lovepet.vip/archives/7/ 一.创建用户: 1.使用命令 useradd 例:useradd test——创建用户test  ...

  10. 【设计模式 - 6】之桥接模式(Bridge)

    1      模式简介 举个例子,人.车和公路是三个维度,人开着车在公路上行驶,就是将这三个维度进行了关联.人分男人(Man)和女人(Woman),车分小轿车(Car)和公共汽车(Bus),公路分市区 ...