Objective-C( 三、方法的声明与实现)
OC方法的声明与实现
oc方法的声明在@interface中 大括号外@end上面
oc方法的实现在@implementation 中@end上面
OC方法中,一个参数对应一个冒号
方法名:
例 fangFaMing:(冒号也是方法名的一部分)
-返回值类型 方法名:参数名:(参数类型)参数 参数名:(参数类型)参数 ;
例 -(int)fangFaMing:sumWithNum1:(int)num1 andNum2:(int)num2;
易犯错误
1.只写声明,不写实现
2.将@end这个结束标记丢了
3.类的声明或实现都不能写在c的函数中
4.属性的声明必须写在大括号当中
5.在声明属性的时候,不能直接赋值
6.声明与实现不能嵌套
7.方法的声明只能写在大括号下面,@end上面
8. '-[Person run]: unrecognized selector sent to instance 0x100109c80' 就是对象没有找到run这个方法
9.创建一个类的时候一定要写上:NSObject,这样这个类才具有创建对象的能力。
总结
@import <Foundation/Foundation.h>
//类的声明
@interface Iphone : NSObject//使类就有创建对象的能力
{
@public
int _model;//型号
}
//方法分成两种:对象方法和类方法
//注意对象方法
//1.对象方法以-开头,2.所有的数据类型都要放在()当中,且只有数据类型要放在()里面3.方法名遵循驼峰原则 4.如果是没有参数的方法,方法名后面什么都不用写 5.如果是有参数的方法,一个参数对应一个:,冒号属于方法名的一部分 6.一般oc当中都会把方法名写的像句子一样,做到见名知意。
//无参无返回值
-(void)lookMyPhone;
//无参有返回值
-(char *)receiptMessage;
//有参无返回值
-(void)sendMessage:(char *)message toPhoneNumber:(char *)number;
//有参有返回值
@end
//类的实现
@implementation Iphone
-(void)lookMyPhone{
NSLog(@"型号是%i",_model);
}
-(char *)receiptMessage{
return "hello";
}
-(void)sendMessage:(char *)message toPhoneNumber:(char *)number{
NSLog(@"你在给%s,发送%s",number,message);
}
@end
int main(int argc, const char * argv[])
{
//oc当中的对象可以作为另一个对象的成员变量。通过谁属于谁来判断,如果放进语境当中,符合人们的习惯,前面的就是后面的成员变量。
//1.开辟存储空间 2.初始化成员变量(整数初始化为零,oc当中的对象作为成员变量时初始化为空(nil)3.返回空间的地址
Iphone *iphone1 = [Iphone new];
//给成员变量赋值
iphone1->_model = 2;
//建第二个对象
Iphone *iphone2 = [Iphone new];
iphone2->_model = 5;
//总结:1.一个类可以有多个对象,对象之间互不影响
//2.一个对象的成员变量或对象方法,只能通过指针来调用。
//3.一个对象的成员变量或方法,只能由本类或对象来调用。
return 0;
}
Objective-C( 三、方法的声明与实现)的更多相关文章
- IOS基础之 (三) 类的声明和对象的创建
一 OC类的声明和实现语法 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end //...表示省略 ...
- javascript中var let const三种变量声明方式
javascript中var let const三种变量声明方式 1.var ①var表示声明了一个变量,并且可以同时初始化该变量. ②使用var语句声明的变量的作用域是当前执行位置的上下文:一个函 ...
- C#中方法的声明
C#中方法的声明(四要素) 访问修饰符 :public,private(方法的默认访问修饰符) 返回值类型:void 和 非void 方法名称 : 规范是方法名称取动词,每个单词的首字母大写. ...
- main方法中声明8种基本数据类型的变量并赋值
main方法中声明8种基本数据类型的变量并赋值 char→ int→ long→ float→ double byte→ short→
- 李洪强iOS开发之OC[010] - 有参方法的声明实现和调用
// // main.m // 09 - 有参方法的声明实现和调用 // // Created by vic fan on 16/7/5. // Copyright © 2016年 李洪强. ...
- OC之方法的声明实现和调用
1. 类是来描述一群具有相同特征和行为的事物的. 类还有行为. 类的声明 @interface 类名 : NSObject { 属性. } 方法的声明 @end 类的实现. @implementati ...
- java语言规范,main方法必须声明为public
注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...
- JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...
- js中三种全局变量声明方法
声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: <script> ...
随机推荐
- Redis事务的分析及改进
Redis事务的分析及改进 Redis的事务特性 数据ACID特性满足了几条? 为了保持简单,redis事务保证了其中的一致性和隔离性: 不满足原子性和持久性: 原子性 redis事务在执行的中途遇到 ...
- XAF实现运行时填加验证规则并保存到数据库中
有几种方法可以用来声明一个验证规则.最常用的方法是使用对应的Attribute来定义.详见这里.验证模块还允许您通过在业务类实现 IRuleSource 接口定义自定义的验证规则的来源. IRuleS ...
- ACDC
acdc dcdc电源模块中大功率一般都是开关电源模式的,所以一般输入都是一个较宽的电源范围,体积也相对于变压器要小一些,效率高一些,但是纹波会偏大一些,如何选择就要看电路的需求来选择相应的方案
- Linux 下操作GPIO(两种方法,驱动和mmap)(转载)
目前我所知道的在Linux下操作GPIO有两种方法: 1.编写驱动,这当然要熟悉Linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据io ...
- Python学习笔记6-字典
定义 使用键值对, >>> person = {"name":"keven","age":15,"gender& ...
- android实现系统电话通话过程中自动感应黑屏
package com.developmenttools.customui.activity; import java.util.HashSet;import java.util.Set; impor ...
- 【转载】Linux系统,设置Oracle开机启动,待整理
http://www.cnblogs.com/mophee/archive/2013/06/03/3115805.html
- 转载:最大子段和问题(Maximum Interval Sum)
一.问题描述 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和. 例如(-2,11,- ...
- spring+redis实现缓存
spring + redis 实现数据的缓存 1.实现目标 通过redis缓存数据.(目的不是加快查询的速度,而是减少数据库的负担) 2.所需jar包 注意:jdies和commons-pool两个j ...
- JavaScript数学揭密之函数与勾股定理
一.函数 function show(n){ return n*2; } alert( show(2) ); alert( show(3) ); alert( show(4) ); 二.勾股定理 1. ...