一 实例方法可见度,方法
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. c++复习基础要点02 虚函数与模板 与static inline是否共存

    1.      虚函数能否定义为模板函数 当一个类有虚函数时,它一定有一个虚表,用来纪录每个虚函数的实际地址.这也就是说这个虚表的大小是在编译期就确定了的.有多少个虚函数,虚表就纪录几个.       ...

  2. 【HDOJ】1814 Peaceful Commission

    2-SAT基础题目. /* 1814 */ #include <iostream> #include <vector> #include <algorithm> # ...

  3. WordPress wp-admin/includes/post.php脚本安全漏洞

    漏洞名称: WordPress wp-admin/includes/post.php脚本安全漏洞 CNNVD编号: CNNVD-201309-168 发布时间: 2013-09-13 更新时间: 20 ...

  4. MyEclipse中导入Spring 4.0源码

    http://www.cnblogs.com/shi-blog/p/4132183.html

  5. hdu 4738 Caocao's Bridges (tarjan求桥)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:给一些点,用一些边把这些点相连,每一条边上有一个权值.现在要你破坏任意一个边(要付出相 ...

  6. Django中的Form

    Form 一.使用Form Django中的Form使用时一般有两种功能: 1.生成html标签 2.验证输入内容 要想使用django提供的form,要在views里导入form模块 from dj ...

  7. MySQL注入总结

    SELECT first_name, last_name FROM users WHERE user_id = '$id' 1.id=1' or 1=1 --     这个可以查询所有的信息,其中“- ...

  8. 什么是staging server

    原文链接:http://blog.csdn.net/blade2001/article/details/7194895 软件应用开发的经典模型有这样几个环境:开发环境(development).集成环 ...

  9. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  10. hibernate学习之Hibernate API

    1. Hibernate Api分类 1)提供访问数据库的操作(如保存,更新,删除,查询)的接口.这些接口包括:Session, Transaction,,Query接口. 2)由于配置Hiberna ...