oc-14-对象方法调用类方法
Person.h
#import <Foundation/Foundation.h> @interface Person : NSObject
{
@public
int _age; float _weight; // 运动1次,就去吃饭.
}
// 让人运动
- (void)sport; // 让人吃
- (void)eat; // 让人运动
+ (void)sport; // 让人吃
+ (void)eat; //对象方法
- (void)study; //类方法
+ (void)study; @end
Person.m
#import "Person.h" @implementation Person
// 让人运动
- (void)sport
{
NSLog(@"这个人运动--对象方法"); // 在对象方法当中调用类方法
[Person eat];
} // 让人吃
- (void)eat
{
NSLog(@"这个人吃东西--对象方法");
} // 让人运动
+ (void)sport
{
NSLog(@"这个人运动--类方法"); // 在本方法中,不能用self调用自己的方法.会死循环.
[self sport];
} // 让人吃
+ (void)eat
{
NSLog(@"这个人吃--类方法");
} //对象方法
- (void)study
{
NSLog(@"%d年龄的人学习--对象方法",_age);
} //类方法
+ (void)study
{
NSLog(@"类方法");
} @end
/**
类方法:由类调用的方法 1.类方法的局限性:
不能访问成员变量. 2.类方法的优势:
不依赖对象.不占用内存空间.节约内存可以不创建对象。 3.对比对象方法和类方法
1)格式:
对象方法: - (返回值类型)方法名:(参数类型)参数名称;
类方法: + (返回值类型)方法名:(参数类型)参数名称; 2)调用者
对象方法:必须创建对象,由对象来调用.
类方法:不依赖于对象,由类直接调用. 练习:设计1个计算器,有加法\减法\乘法\除法,用类方法不依赖于对象. 报错信息:
unrecognized selector sent to class 0x1000046c8 某个方法找不到.
*/
oc-14-对象方法调用类方法的更多相关文章
- Objective-C学习笔记(十九)——对象方法和类方法的相互调用
事实上在OC的对象方法(减号方法)和类方法(加号方法)并非相互独立的,它们也能够发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题.该样例还是以People类为基础. (一)对象方法调用类方法 ...
- Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用
在程序设计中,函数的使用无疑大大简化了代码的编写.提高代码执行的效率.降低反复代码. 所以如今我们来具体研究一下方法. 本样例还是以People类为例. (一)代码一: (1)先在People.h中声 ...
- iOS对象方法和类方法的区别与调用方式
作为一个iOS程序员初学者,会搞不清楚对象方法和类方法的区别 -(void)duixiangfangfa ; +(void)leifangfa; - 代表实例方法,它在类的一个具体实例范围内执行,也就 ...
- 分析 js构造函数:对象方法 、类方法 、原型方法
构造函数方法有对象方法.类方法.原型方法,这些方法在什么时候可以调用,什么时候不能调用,为什么? function Func(name){ this.name=name; this.ff=functi ...
- Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,
Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一.类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,声明放在 .h文件中,实现放在 .m 文 ...
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- day 23 二十三、对象方法,类方法,封装,绑定方法
一.对象的特有名称空间 __init__方法会在实例化对象时被调用 1.会为实例化的对象形成空的名称空间 2.就是一个方法,可以被传参,在类名(实参)这种方式下调用并传参 __init__(self ...
- python--类中的对象方法、类方法、静态方法的区别
1.对象方法:顾名思义,是对类实例化后的对象有效的,由对象调用 2.类方法:第一个参数是cls(当前类),是对当前类做的额外的处理,类方法需要用类去调用,而不是实例对象调用 3.静态方法:没有参数!没 ...
- 对象方法、类方法、原型方法 && 私有属性、公有属性、公有静态属性
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
随机推荐
- python install 2.7.10
CentOS 6.5升级Python和安装IPython 后来换成了CentOS 6.5,系统自带的Python版本是2.6.6. 图一:安装IPython需求 已经安装好gcc等编译工具.系统自带P ...
- Bluebird-Core API(二)
.error .error([function(any error) rejectedHandler]) -> Promise 和catch一样,但是catch捕获了所有错误类型的异常,而err ...
- html5_common.js
(function(){ this.sendAjax = function(url,func,formData,type){ type = type || "POST"; //默认 ...
- rhel5.5 Oracle10g安装记录
---恢复内容开始--- Rhel5.5 Oracle10g安装成功截图如下
- 著名加密库收集 Encrypt
CryptoAPI 微软的CryptoAPI crypt32.lib,advapi32.lib,cryptui.lib #include <wincrypt.h>#include < ...
- 微软IOC容器Unity简单代码示例1
@(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...
- WT588D播放合成语音时出现某些语句不能正常播报的情况,经过对比其他语句,看似有点不符合逻辑。
现象:某条语句本该播放完循环,实际确实不断循环第一个字,不能正常播放 原因:用语音合成工具合成该语句时,改了里面的默认音量,导致播放时出现液晶显示错误(感觉好像驱动不了的样子,我就是观察到这个现象才想 ...
- ACM之最短路径做题笔记与记录
在这里纪念一下从4月开始一直因为事情而荒废了的最短路,多亏了jbb的帮助,我才完成了FZU热身赛一题简单的一个用模拟链表存边以及最短路径的学习,目前(6.5)已经学会使用了最简单的djstral与sp ...
- HDU 2196 Computer (树dp)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196 给你n个点,n-1条边,然后给你每条边的权值.输出每个点能对应其他点的最远距离是多少 ...
- zendstudio 出现failed to create the java machine转
是因为配置java虚拟机内存太小 打开zend for eclipse 10.5时报了个错: failed to create the java virtual machine google了一下,解 ...