PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似。明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧。重点是自己真的能够区分开!

一、OC中的对象方法

  1.以减号“-”开头

  2.只能让对象调用,没有对象,这个方法根本不可能被执行

  3.对象方法能访问实例变量(也就是成员变量)

二、OC中的类方法

  1.以加号“+”开头

  2.只能用类名调用,对象不能调用

  3.类方法中不能访问实例变量(也就是成员变量)

  4.适用场合:当不需要访问成员变量的时候,尽量用类方法

值得注意的是类方法和对象方法可以同名,但是慎用啊!

三、代码示例:

 1 /*
 2  设计一个计算器类
 3  1.类名:Caculator
 4  2.方法:
 5    * 返回PI:3.14
 6    * 计算某个数值的平方
 7    * 计算两个数值的和
 8  */
 9
10 #import <Foundation/Foundation.h>
11
12 // 计算器的声明
13 @interface Caculator : NSObject
14 // 方法的声明
15 + (double)pi;
16 + (double)pingfang:(double)number;
17 + (double)sumOfNum1:(double)num1 andNum2:(double)num2;
18 @end
19
20 // 计算器的实现
21 @implementation Caculator
22
23 // 实现@interface中声明的方法
24 + (double)pi
25 {
26     return 3.14;
27 }
28
29 + (double)pingfang:(double)number
30 {
31     return number * number;
32 }
33
34 + (double)sumOfNum1:(double)num1 andNum2:(double)num2
35 {
36     return num1 + num2;
37 }
38 @end
39
40
41 int main()
42 {
43     [Caculator pi];
44
45     [Caculator pingfang:10];
46
47     [Caculator sumOfNum1:10 andNum2:5];
48     return 0;
49 }

转载于:https://www.cnblogs.com/gchlcc/p/5165910.html

OC基础--OC中的类方法和对象方法相关推荐

  1. JavaScript中的类方法、对象方法、原型方法

    类方法:也叫函数方法,在JavaScript中函数也是一个对象,所以可以为函数添加属性以及方法: 对象方法:包括构造函数中的方法以及其原型上面的方法: 原型方法:一般用于对象实例共享,在原型上面添加该 ...

  2. 类方法和对象方法的区别

    类方法和对象方法 1.类方法属于本类的方法,不会因创建对象的不同而改变,类方法随着类的字节码文件加载而加载: 2.对象方法属于当前类创建的某个对象,会随着创建对象的不同而改变.如下图所示代码:

  3. OC基础--OC内存管理原则和简单实例

    ARC: 由于自己的学习视频太早,Xcode是iOS6版本,新建命令行项目后,系统会默认启动ARC机制,全程Automatic Reference Counting,简单的说,就是代码中自动加入了re ...

  4. java 参数返回_Java基础---Java中带参数返回值方法的使用(四十)

    Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...

  5. Java基础---Java中带参数返回值方法的使用(四十)

    Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 Stri ...

  6. 前端学习(1260):promise中的常见api对象方法

  7. oc中写c语言的方法,OC语言description步骤和sel

    OC语言description方法和sel OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) ( ...

  8. Objective-C学习笔记(十九)——对象方法和类方法的相互调用

    事实上在OC的对象方法(减号方法)和类方法(加号方法)并非相互独立的,它们也能够发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题.该样例还是以People类为基础. (一)对象方法调用类方法 ...

  9. 任务教学法在计算机教学,“任务驱动”教学法在计算机基础教学中的应用

    "任务驱动"教学法在计算机基础教学中的应用 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 "任务驱动&q ...

最新文章

  1. CCF系列之画图(201409-2)
  2. 云计算(Cloud Computing)的前世今生
  3. Careercup - Microsoft面试题 - 5428361417457664
  4. 将Linux下编译的warning警告信息输出到文件中
  5. 打印纸张尺寸换算_纸张尺寸与开(K)数换算
  6. 【学习笔记】网络层——无分类编址CIDR、ARP协议、DHCP协议和ICMP协议
  7. Android Activity中状态保存机制
  8. 华为P50相机新升级:或首发索尼最大底手机CMOS
  9. C++ string类常用函数
  10. python importlib qpython_Python的import机制
  11. 如何测算信息化项目软件运维费?
  12. 未来不迎,当时不杂,过往不乱
  13. 【NLP】常见衡量指标(metrics)
  14. 【VBA】VBA定时运行程序
  15. 第二篇数模论文——垂钓问题
  16. 【源码】基于SIFT和RANSAC算法的高分辨率图像伪造检测
  17. win10 休眠不读u盘_win10电脑不读u盘如何修复
  18. 曾经社交王者人人为何如今失魂落魄
  19. 如何关闭 window10 自带的杀毒软件
  20. 计算机网络原理ospf协议配置思考题,动态路由协议之OSPF理论篇(下)(含虚链路的实验)...

热门文章

  1. [Beego] [bootstrap-paginator]实现分页功能
  2. golang slice append函数如何头插
  3. 动态规划-01背包问题详解
  4. Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令
  5. 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为
  6. Linux C语言C++ makefile文件编写
  7. ubuntu 设置分辨率 亲测可用 转载的
  8. 每日一题:leetcode674.最长连续递增序列
  9. Linux C++线程池实例
  10. 计算机网络(一)计算机网络体系