黑马程序员技术交流社区

标题: 类方法到底主要用在哪里? [打印本页]

作者: herobin    时间: 2016-1-7 22:48
标题: 类方法到底主要用在哪里?
//
//  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;
}

作者: 韦德460    时间: 2016-1-7 23:02
恩。。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2