//
// main.m
// 类方法的概述及使用
//
// Created by herobin on 15/12/21.
// Copyright © 2015年 herobin. All rights reserved.
//
/*
1.类方法:以+开头的方法(返回值类型,方法名,参数)
2.类方法的声明格式:
+(返回值类型)类方法名:(形参类型)形参名;
3.类方法的实现格式;
+(返回值类型)类方法名:(形参类型)形参名{
}
4.类方法的调用格式
【类名 类方法名】
//类方法和对象方法可以同名,不会相互交叉影响
对象方法只能用对象来调用
类方法通过类方法名来调用
注意:注意:不能在类方法中使用实例变量
因为实例变量存储在对象的堆空间中,因为使用类方法不需要创建对象,
所以也就没有在堆区中分配内存空间, 进而不能使用实例变量
类方法的优点:
1.节省内存空间
2.提高了效率
3.作为工具方法
类方法和对象方法的比较
对象方法 类方法
定义: 以-开头 以+开头
调用: 用对象去调用 用类取调用
使用变量: 能使用实例变量 不能使用实例变量
*/
#import <Foundation/Foundation.h>
#import "Caculator.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//调用类方法的时候,需要创建对象吗? 不需要
//格式: 【类名 类方法名】
//定义变量,接收类方法的返回值
//类方法不需要创建对象,不用在堆区开辟一个空间来存储对象
//就这个Calculator 用类方法比用对象方法节省内存
int result = [Caculator add:18 andNum2:34];
NSLog(@"%i",result);
result=[Caculator jian:5 andNum2:34]; //直接用类名 类方法名来调用
NSLog(@"%i",result);
result=[Caculator cheng:3 andNum2:3423];
NSLog(@"%i",result);
float shang=[Caculator chu:34 andNum2:4];
NSLog(@"%.2f",shang);
//这里使用同名的实例方法来调用方法
Caculator *Cal=[Caculator new];
result = [Cal add:32 andNum2:34]; //用对象名 对象方法来调用
NSLog(@"%i",result);
}
return 0;
}
|
|