OC中设计一个类的步骤:

一、声明类:

  1.用到的关键字--@interface 和 @end

  2.类名

  3.继承NSObject

  4.属性

  5.方法(行为,只需要声明)

二、实现(定义)类

  1.用到的关键字--@implementation 和 @end

  2.实现@interface中声明的方法

  3.类中方法的声明和实现一定注意开头写减号“-”

  4.OC类中的小括号不能乱用,小括号是用来括住类型的!--谨记!

例: 下面的代码中声明和定义的类,类中的方法没有返回值,没有参数

    * 实现@interface中声明的方法
*/ #import <Foundation/Foundation.h> // 类的声明
@interface Dog : NSObject
// 属性
{
@public
int speed;
} // 只是声明
- (void)run; @end // 写完@interface马上写@end // 类的实现(定义)
@implementation Dog // 实现run方法
- (void)run
{
NSLog(@"速度为%i的狗跑起来了", speed);
}
@end int main()
{
Dog *dog = [Dog new];
dog->speed = ; [dog run]; return ;
}

OC中的类的方法名有返回值和参数的情况:

  1.一个参数对应一个冒号

  2.冒号也是方法名的一部分

 /*
设计一个计算器类
1.类名:Caculator
2.行为(方法):
* 返回PI:3.14
* 计算某个数值的平方
* 计算两个数值的和
*/ #import <Foundation/Foundation.h> // 计算器的声明
@interface Caculator : NSObject // 方法的声明
- (double)pi; // 方法名pi,返回值类型是double小括号括住类型,无参数 // - (double)pi:(int)abc; // 方法名pi: // 一个参数对应一个冒号
// 冒号也是方法名的一部分
- (double)pingfang:(double)number; // 方法名:pingfang: // 方法名:sumOfNum1:andNum2:--为了增强代码的可读性
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
@end int main()
{
Caculator *ca = [Caculator new]; //NSLog(@"PI=%f", [ca pi]); // double d = [ca pingfang:4]; // NSLog(@"4的平方=%f", d); double he = [ca sumOfNum1: andNum2:]; NSLog(@"10+5=%f", he); Caculator *ca2 = [Caculator new]; return ;
} // 计算器的实现
@implementation Caculator // 实现@interface中声明的方法
- (double)pi
{
return 3.14;
} - (double)pingfang:(double)number
{
return number * number;
} - (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
return num1 + num2;
} @end

OC中函数和OC对象方法的区别:

  1.函数属于整个文件,在文件的任意地方都能调用;对象方法之属于对象,只有对象才能调用对象方法

  2.对象方法只能声明在@interface 和 @end 之间,对象方法只能实现在@implementation 和 @end之间。

  函数的声明和定义可以写在任意地方,函数不能归某个类所有,只属于某个文件。

OC中方法的声明与调用图解:

1.有返回值无参数

方法声明:                       方法调用:

     


2.有返回值并且有一个参数

方法声明:                              方法调用:

    

3.有返回值并且有多个参数

方法声明:                                    方法调用:

    


OC基础--OC中类的声明与定义的更多相关文章

  1. OC基础--OC中类的定义

    OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承N ...

  2. ios开发之OC基础-oc小程序

    本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...

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

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

  4. OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

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

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

  6. OC基础 类的三大特性

    OC基础  类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属 ...

  7. OC基础(1)

    Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 *:first-child { margin-top: 0 !important; } body > *:last-chi ...

  8. OC基础-第1天

    #pragma mark - Day01_01_OC语言的历史(了解) 1) Objective - C 是一门面向对象的高级语言 2) Objective - C 简称 obj - C  \  OC ...

  9. OC基础 代理和协议

    OC基础 代理和协议 1.协议 (1)oc语言中得协议:一组方法列表,不需要我们自己实现,由遵守协议的类来实现协议所定制的方法. (2)协议的使用步骤:制定协议-->遵守协议-->实现协议 ...

随机推荐

  1. 【实践】jdbc批量插入数据

    参考文献:http://my.oschina.net/u/1452675/blog/203670 http://superjavason.iteye.com/blog/255423 /*测试批量写入数 ...

  2. Android驱动调试利器Busybox之初体验

    工欲善其事必先利其器,之前做WinCE开发时,经常写一些小工具以提高开发调试的效率,如WinCE驱动调试助手.WinCE串口调试助手.WinCE6.0寄存器访问工具.WinCE远程桌面助手和S3C24 ...

  3. codeforces 484D D. Kindergarten(dp)

    题目链接: D. Kindergarten time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  4. Studio 从入门到精通 (一)

    目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...

  5. poj3984迷宫问题 广搜+最短路径+模拟队列

    转自:http://blog.csdn.net/no_retreats/article/details/8146585   定义一个二维数组: int maze[5][5] = { 0, 1, 0, ...

  6. [转]面向GPU的多LOD因子的大规模场景可视化策略

    直接附上原文链接: 1.面向GPU的多LOD因子的大规模场景可视化策略 2.Real-Time Dynamic Level of Detail Terrain Rendering with ROAM

  7. [iOS翻译]《iOS7 by Tutorials》系列:iOS7的设计精髓(下)

    我们继续上篇的内容 四.聚焦于内容 在iOS7里,强调的不是眼花缭乱的装饰效果,而是最重要的内容本身. 下面我们来探讨这个主题: 1.删除不必要的内容 伟大的设计更多是减法和加法的组合. 虽然很酷的想 ...

  8. python 操作注册表

    import win32api import win32con keyname = r'Software\Microsoft\Internet Explorer\Main' page = 'www.l ...

  9. JS 之性能优化(2)

    继续上一篇的JS性能优化之后,下面接着讲关于前端性能优化的内容.如果有不对的地方欢迎纠正. 1.避免过多的重排与重绘操作. 尽量将DOM中的多个读操作放一起,中间不要插入写的操作,因为写操作会导致浏览 ...

  10. Eclipse系列:如何断点调试web项目

    一直不知道如何在Eclipse中断点调试跟踪问题,今天试了一把,大致的步骤如下: 1)事先在需要断点跟踪的代码行左侧空白处双击处设置断点: 2)在工程列表中选中要调试的工程,然后点击Debug on ...