06-类方法的练习

/*
设计一个计算器类
* 求和
* 求平均值
*/

#import <Foundation/Foundation.h>

// 工具类:基本没有任何成员变量,叫做工具类,而且里面的方法基本都是类方法
@interface JiSusnQi : NSObject
+ (int)sumOfNum1:(int)num1 andNum2:(int)num2;

+ (int)averageOfNum1:(int)num1 andNum2:(int)num2;
@end

@implementation JiSusnQi
+ (int)sumOfNum1:(int)num1 andNum2:(int)num2
{
    return num1 + num2;
}

+ (int)averageOfNum1:(int)num1 andNum2:(int)num2
{
    int sum = [JiSusnQi sumOfNum1:num1 andNum2:num2];

     //加入某个方法中,需要用到了另外一个方法,那可以调用别的方法。
     //这就是封装。想使用某个功能就调用一下就行了。
     // 如果是特别长的方法,就不用拷贝了。
     // 先调用这里面的形参,然后再次去外部的其他方法sum去计算。
     // return (num1+num2)/2;
     //而 这个方法里面的 num1 .num2和上面sum中的num1 num2没有任何关系。只是形参!
    return sum / 2;
}
@end

int main()
{
    int a = [JiSusnQi averageOfNum1:111 andNum2:333];
    //直接用类名完成,成为工具类。

     int  b= [JiSusnQi averageOfNum1:11 andNum2:33]

    NSLog(@"a=%d", a);

/*
//   对象的方法需要创建对象,但是上面的代码是类对象的代码,所以不需每次执行都创建对象
     JiSusnQi *jsq = [JiSusnQi new];
//
//
//    [jsq sumOfNum1:10 andNum2:13];
*/

    return 0;
}

  

时间: 2024-11-05 12:20:04

06-类方法的练习的相关文章

06:类方法的声明和实现

1.类方法声明 格式 将对象方法-号变为+号 特征 类方法以+开头 如+(void)put; 类方法只能由类来调用 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量. 类方法的好处: 节省内存空间 不依赖于对象,执行效率更高; 能用类方法解决的问题,尽量使用类方法; 类方法的场合: 当方法内部不需要使用到成员变量时,可以改为类方法 类方法一般用于编写工具方法 示例 //声明没有返回值的方法 + (void)method; //声明有返回值的方法 +

接口和类方法中的 SELF

接口和类方法中的 SELF 由 王巍 (@ONEVCAT) 发布于 2015/06/10 我们在看一些接口的定义时,可能会注意到出现了首字母大写的 Self 出现在类型的位置上: protocol IntervalType { //... /// Return `rhs` clamped to `self`. The bounds of the result, even /// if it is empty, are always within the bounds of `self` func

iOS学习笔记06—Category和Extension

iOS学习笔记06—Category和Extension 一.概述 类别是一种为现有的类添加新方法的方式. 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类). 二.示例 1.声明类别 @interface NSString (CategoryDemo) -(NSNumber*)

【day25】类方法classmethod、静态方法staticmethod、普通方法

  普通方法:通过实例传参数进行调用的方法.s = 类(参数) 静态方法staticmethod:如果我们想写仅仅与类交互而不是与实例交互的方法,用类方法就可以达成,好处是不让类代码的关系到类定义的外面,也避免了今后代码维护的困难. class Foo: def __init__(self): pass @staticmethod def say_hi(self): print('hi,im staticmethod') Foo.say_hi() #不用实例化,就可以调用该方法 #输出hi,im

python 静态方法、实例方法、类方法

实例方法: class A: data = 0 def printd(self): print(self.data) type(A) #out:type A.__dict__ #out: a = A() #out:{} 类方法:@classmethod class A: data = 0 def printd(self): print(self.data) def getdata(): A.data = 1 print(A.data) class A: data = 0 def printd(s

Python-面向对象高级语法之静态方法、类方法

静态方法 一.什么是静态方法 普通的方法可以在实例化后直接调用,并且在方法里可以通过self.xxx调用实例变量或类变量,而静态方法是不可以访问实例变量或类变量,一个不能访问实例变量和类变量的方法,实际上已经和类本身没什么关系了.唯一与类有关联的就是有需要通过类名来调用这个方法. 二.如何使用静态方法 通过@staticmethod装饰器把需其装饰的方法即可变成一个静态方法. # _*_ coding:utf-8 _*_ class Dog(object): def __init__(self,

django之创建第4-2个项目-访问class类属性和类方法

1.修改index <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django之创建第4-2个项目</title> </head> <body> <h1>hello,{{test.name}}</h1> <!--模板 变量用变量定义--> &l

tablib.Dataset()操作exl类型数据之“类方法”研究

#tablib.Dataset()操作exl类型数据之“类方法”研究 import tablib #初始化 data=tablib.Dataset() #设置列标题 data.headers=('name','where') some_collector=[('xiaodeng','enshi'),('xiaoming','hubei'),('xiaodong','enshi')] #写入数据 for key,value in some_collector: data.append((key,v

self在类方法和对象方法中的应用

谁调用当前方法,self就代表谁 * self在对象方法中,self代表当前对象 * self在类方法中个,self代表类 > self在对象方法中 可以利用self->属性名称的方式访问成员变量 > [self 方法名称]; 调用其它方法(类方法/对象方法)

【C++基础 06】explict关键字

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生.声明为explicit的构造函数不能在隐式转换中使用. 1.示例 我们先来看一段示例代码: class A { public: A(int v):var(v){};//带一个int型值的构造函数 bool isSame(const A& ref) const {return var == ref.var;}//判等函数 private: int var;//成员变量var }; void main()