黑马程序员——OC有参函数声明以及调用

黑马程序员——OC有参函数声明以及调用

------- android培训、ios培训、期待与您交流! ----------

 1 //没有参数有返回值方法的声明实现及调用
 2
 3 //有参数有返回值方法的声明实现及调用
 4
 5 #import <Foundation/Foundation.h>
 6
 7 @interface cacu:NSObject
 8
 9 {
10
11    //实例变量
12
13 @public;
14
15    int _num1;
16
17    int _num2;
18
19 }
20
21 //
22
23 -(int)sum;//一个没有参数的方法
24
25 //有参方法的声明
26
27 -(int)sum:(int) x and:(int) y;
28
29 @end
30
31 @implementation cacu
32
33 -(int)sum{
34
35    //计算_num1+_num2;
36
37    return _num1+_num2;
38
39 }
40
41 -(int)sum:(int) x and:(int) y{
42
43    return x+y;
44
45    }
46
47 @end
48
49 int main (int argc, const char *argv[])
50
51 {
52
53     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
54
55
56
57     //在此处输入Objective-C代码
58
59     cacu *ca=[cacu new];
60
61     //对象访问实例变量
62
63     ca->_num1=12;
64
65     ca->_num2=30;
66
67     //调用无参方法
68
69     int s=[ca sum];
70
71     NSLog(@"s=%d",s);
72
73     //调用有参方法
74
75     s=[ca sum:34 and:23];
76
77     NSLog(@"s=%d",s);
78
79     [pool drain];
80
81     return 0;
82
83 }

OC

****带参数的方法的定义和实现****

声明:

有一个参数的方法:

  方法类别 (返回值类型) 方法名1:(参数类型) 参数名称;

有两个参数的方法

  方法类别 (返回值类型) 方法名1:(参数类型1) 参数名称1 and:(参数类型2)参数名称2;

例:

方法的声明:

  -(int)sum:(int) x and:(int) y;

方法的实现:

  -(int)sum:(int) x and:(int) y{

  return x+y;

  }

有参方法的使用注意:

  方法类型:(-)对象方法

  方法的返回值:int 类型

  方法的参数:x y

  参数类型:int

  方法名: sum:  and:     (冒号是方法名的一部分)

实例变量读写规范:类型名 _实例变量名

有参方法的调用:

  [指针变量名 方法名:  实参   and: 实参];

****函数与对象方法的区别****

对象方法:

  1、对象方法的实现只能写在@[email protected]中,对象方法的声明只能写在@[email protected]中间

  2、对象方法以“-”开头,类方法以“+”开头

  3、对象方法只能由对象方法调用,类方法只能由类调用,不能当做函数一样使用

  4、函数属于整个文件,可以写在文件中任何位置,包括@[email protected]中,但写在@[email protected]会无法识别。函数声明尅一在main函数内部,也可以在main外部

  5、对象方法归类\对象所有

函数:

  1、所有函数都是平行的

  2、函数不存在隶属关系

  3、使用的时候可以直接调用

  4、不可以访问对象中的变量

****常见错误:****

1、@[email protected]与@[email protected]是不能嵌套使用的

2、不能只有类的声明没有类的实现

3、漏写@end

4、两个类的声明、实现顺序可以打乱的

5、成员变量没有写在{}中

6、方法声明写在{}中

7、在声明时不能对类的成员变量进行初始化,成员变量不能脱离对象独立存在

8、方法无法像函数一样调用

9、成员变量和方法不能使用static等关键字修饰,不要与C混淆

10、类的实现可以写在main函数之后,使用时注意声明

------- android培训、ios培训、期待与您交流! ----------

时间: 2024-12-14 18:00:36

黑马程序员——OC有参函数声明以及调用的相关文章

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性

黑马程序员-OC面向对象继承关系和组合关系笔记

继承关系是描述类和类之间的关系,两个类分别称为子类和父类,子类继承了父类,子类就拥有了父类的属性和方法: 继承的关系特点描述出来就是:** "是" **  (例如:学生类 是 人类) 组合关系描述的语句是:**** "拥有" ***  (例如:学生有成绩这个属性,而成绩属性本来就是一个成绩类的对象 ) 继承示例代码: #import <Foundation/Foundation.h> //Animal类的声明 @interface Animal : NS

黑马程序员—oc语言学习心得—block

黑马程序员—oc语言学习心得—block -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,程序一般用typedef定义一个block类型 然后调用 typedef void(^xxx)(); 可使用助记符 inlineblock 2,Block内部可以访问外部变量:默认情况下,Block内部不能修改外部的局部变量 给局部变量加上__block关键字,则这个局部变量可以在block内部进行修改. 3,block的作用: 利用block封

黑马程序员-OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方

黑马程序员-OC的类的构造方法

构造方法:用来初始化对象的:首先分解一下创建对象的过程: Person *p = [Person new]; // new方法是alloc 和 init 这两个方法的组合: 完整的创建可用对象的过程: 1:分配存储空间:  就是调用的  +alloc 方法,这个方法是类方法,返回的是一个分配好存储空间的 对象: 2:初始化:-init 方法,对象方法,由alloc方法返回的对象调用init对对象进行初始化: 所以创建一个对象的规范和常用的方式:  Person *p = [[Person all

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动

黑马程序员-OC self super isa指针

self指针: self是oc面向对象设计中的一个特殊指针,相当于java中的this,但是比this强大,this只能访问实例对象的相关方法和成员变量,或者说this只代表实例对象: self不仅可以代表实例对象,还可以代表类对象:谁调用当前方法,self就代表谁:如果self用在了以"-"号的方法中,也就是对象方法中,那么就代表实例对象,若果在"+"号开头的方法中,self就代表类对象,因为只有类对象才能调用以"+"号开头的方法: self调

黑马程序员-oc对象的内存管理

oc没有java的垃圾回收机制,所以对象的内存释放很重要,基本数据类型,我们不用理会,编译器会处理: oc的每个对象内部都由一个计数器,用来记录当前有几个指针在指向该对象:当计数器为0时该对象会从内存中释放: 相关方法和概念: 1:retain:对象方法,调用该对象方法,计数器+1,有返回值,返回对象本身: 2:release:没有返回值,计数器-1: 3:retainCount:获取当前计数器的值: 4:dealloc:当对象被回收时,就会调用该方法,覆盖该方法时一定要调用[super dea

黑马程序员-OC学习笔记之ARC

---------------------- IOS开发.Android培训.期待与您交流! ----------------------一.什么是ARC        ARC是自动引用计数,苹果官方在Xcode4.2及以后版本中加入的一个内存管理机制,完全取代了程序员人工的内存管理,使得程序员只须关心程序本身.使用ARC,编译器会自动在代码中加入内存管理代码,是一个编译器特性,而不是运行时特性,当然,它也和JAVA的垃圾回收不同,它的本质和手动的内存管理是一样的,只是这些代码编译器会自动添加.