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 ...
随机推荐
- C字符串和C++中string的区别 &&&&C++中int型与string型互相转换
在C++中则把字符串封装成了一种数据类型string,可以直接声明变量并进行赋值等字符串操作.以下是C字符串和C++中string的区别: C字符串 string对象(C++) 所需的头文件名称 ...
- vs2008编译boost
vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库 ...
- IOS自动布局
参考资料 https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AutolayoutPG/Vi ...
- datagrid url json
<div class="easyui-accordion" style="width:500px;height:300px;"> <div t ...
- HDU 5862 Counting Intersections (树状数组)
Counting Intersections 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5862 Description Given ...
- HDU 3923 Invoker(polya定理+逆元)
Invoker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 122768/62768 K (Java/Others)Total Su ...
- centos 安装redis php
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf redis-3.0.7.tar.gz $ cd redis- ...
- emWin显示文本字符-【worldsing笔记】
在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.2 ...
- 8.3 LIS LCS LCIS(完结了==!)
感觉这个专题真不好捉,伤心了,慢慢啃吧,孩纸 地址http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28195#overview 密码 ac ...
- AcceptEx与WSAEventSelect和Accept
(转自论坛的一个帖子http://bbs.csdn.net/topics/280032853) AcceptEx主要用于向完成端口 投递一个或多个的连接请求..当有连接时进来,这里分两种情况: 1.A ...