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 某个方法找不到.
 */
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5308377.html,如需转载请自行联系原作者

相关文章
|
1月前
调用反射类的指定方法
调用反射类的指定方法
|
1月前
调用反射类的方法
调用反射类的方法
|
10月前
|
Java API
Java反射(通过反射获取构造函数、方法、属性)
1.通过反射获取构造函数,2.通过反射获取方法,3.通过反射调用成员属性
93 0
|
IDE 安全 Java
Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
237 0
Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?
|
存储 设计模式 JavaScript
对象方法和方法中的 "this"
对象方法和方法中的 "this"
103 0
对象方法和方法中的 "this"
如何通过反射调用对象的方法?
import java.lang.reflect.Method; class MethodInvokeTest { public static void main(String[] args) throws Exception { ...
1101 0
类方法和实例方法同名,实例调用
class People(object): country = 'china' def __init__(self,name): self.country = name def getCountry(self): # -- 实例方法 return self.
1038 0