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( 三、方法的声明与实现)的更多相关文章

  1. IOS基础之 (三) 类的声明和对象的创建

    一 OC类的声明和实现语法 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end //...表示省略 ...

  2. javascript中var let const三种变量声明方式

    javascript中var let const三种变量声明方式 1.var  ①var表示声明了一个变量,并且可以同时初始化该变量. ②使用var语句声明的变量的作用域是当前执行位置的上下文:一个函 ...

  3. C#中方法的声明

    C#中方法的声明(四要素) 访问修饰符 :public,private(方法的默认访问修饰符) 返回值类型:void 和 非void 方法名称    : 规范是方法名称取动词,每个单词的首字母大写. ...

  4. main方法中声明8种基本数据类型的变量并赋值

    main方法中声明8种基本数据类型的变量并赋值  char→  int→ long→ float→ double byte→ short→ 

  5. 李洪强iOS开发之OC[010] - 有参方法的声明实现和调用

    // //  main.m //  09 - 有参方法的声明实现和调用 // //  Created by vic fan on 16/7/5. //  Copyright © 2016年 李洪强. ...

  6. OC之方法的声明实现和调用

    1. 类是来描述一群具有相同特征和行为的事物的. 类还有行为. 类的声明 @interface 类名 : NSObject { 属性. } 方法的声明 @end 类的实现. @implementati ...

  7. java语言规范,main方法必须声明为public

    注释: 根据java语言规范,main方法必须声明为public. 当main方法不是public时,有些版本的java解释器也可以执行java应用程序.有个程序员报告了这个bug. 如果感兴趣可以查 ...

  8. JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别

    JavaScript:学习笔记(7)——VAR.LET.CONST三种变量声明的区别 ES2015(ES6)带来了许多闪亮的新功能,自2017年以来,许多JavaScript开发人员已经熟悉并开始使用 ...

  9. js中三种全局变量声明方法

    声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: <script> ...

随机推荐

  1. Spark.ML之PipeLine学习笔记

    地址: http://spark.apache.org/docs/2.0.0/ml-pipeline.html   Spark PipeLine 是基于DataFrames的高层的API,可以方便用户 ...

  2. XAF应用开发教程(三)业务对象模型之引用类型与关联关系

    本节介绍信息系统开发中最常见的问题,引用关系,一对多关系,多对多关系. 以客户信息为例,客户通常需要客户分类,如VIP客户,普通客户,潜在客户.当然,我们可以定义枚举类型进行定义出这个类型,并在客户类 ...

  3. 个人作业Week 2 ----------代码的规范和代码复审

    1.是否需要有代码规范 从个人理解的角度出发,我认为代码规范还可以细分为代码的风格还有代码的结构设计(就好比排版一类的) 以前在上C语言课程的时候就看到过,老师会在打“{”的时候进行一个换行,但是有些 ...

  4. js分组排序算法, OrderBy

    由于项目中需要对数据进行分组排序,类似于sql中 order by column1,column2....  实现的关键是 分组排序,第一个column1,排序完成之后,对其分组,然后按照column ...

  5. poj2187Beauty Contest(凸包直径)

    链接 利用旋转卡壳 参考博客http://www.cppblog.com/staryjy/archive/2010/09/25/101412.html #include <iostream> ...

  6. Docker-数据卷和数据容器卷

    容器中管理数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(Data Volumes Dontainers) 数据卷 使用-v可以挂载一个本地的目录到容器中作为数据卷. [root ...

  7. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

  8. Android App组件之ListFragment -- 说明和示例

    Android App组件之ListFragment -- 说明和示例 1 ListFragement介绍 ListFragment继承于Fragment.因此它具有Fragment的特性,能够作为a ...

  9. Android应用Design Support Library完全使用实例

    阅读目录 2-1 综述 2-2 TextInputLayout控件 2-3 FloatingActionButton控件 2-4 Snackbar控件 2-5 TabLayout控件 2-6 Navi ...

  10. 青云的机房组网方案(简单+普通+困难)(虚树+树形DP+容斥)

    题目链接 1.对于简单的版本n<=500, ai<=50 直接暴力枚举两个点x,y,dfs求x与y的距离. 2.对于普通难度n<=10000,ai<=500 普通难度解法挺多 ...