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 ...
随机推荐
- js遇到这样基础题,看你能不能作对呢
var a = (function() { return typeof arguments; })(); alert(a); //Object var b = (function(x) { delet ...
- Unable to find vcvarsall.bat解决方法
今天在安装scikit-learn时出现了 error: Unable to find vcvarsall.bat 在安装一些Python模块时,大部分是cpython写的模块时会发生如下错误 err ...
- I-frame、B-frame、P-frame及DTS、PTS的关系(转)
基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象. ...
- pybombs 安装
参考:https://github.com/gnuradio/pybombs 先装:pip 然后: pip install PyBOMBS 更新源: pybombs recipes add gr-re ...
- java、android 对比两个目录或文件是否是同一个目录或文件的方法
由于软链接及android的外部卡mount方式存在,导致一个文件夹可能同时有两个路径,如: /mnt/sdcard1 /storage/ext_sdcard ,如果通过某种方式(如moun ...
- redhat 挂载 iso文件 提示 mount :not a directory
- cocos2d-x 知识小结(1)zorder和tag
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- centos安装lxml和pyspider
yum -y install --nogpgcheck python34u-devel.x86_64 yum -y install libcurl-devel yum -y install libxs ...
- PCB中层的定义(一)
- HDU 2196 Computer (树dp)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2196 给你n个点,n-1条边,然后给你每条边的权值.输出每个点能对应其他点的最远距离是多少 ...