OC基础--OC中的类方法和对象方法

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 }

 

posted @ 2016-01-28 13:25  Chaos_G  阅读(2237)  评论(0编辑  收藏  举报