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. codeforces 487B B. Strip(RMQ+二分+dp)

    题目链接: B. Strip time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  2. poj2387 Til the Cows Come Home 最短路径dijkstra算法

    Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...

  3. CSS 实用技巧:制作三角形

    实现如图所示的三角形图标: html代码如下: <div class="arrow-up"></div> <div class="arrow ...

  4. Linux 常用基本命令

    这两天有俩哥们问了我linux的事,问我在工作中需不需要用到,需不需要学会 一个是工作1年不到的,我跟他说,建议你学学,在以后肯定是要用到的,虽然用到的机会不多,但是会总比不会好 另一个是工作6年的, ...

  5. 使用appscan实现多站扫描简单自动化

    因为appscan在新建扫描任务的时候只能输入一个target,并且没有awvs/nessus那样提供web接口,导致我以前一直以为appscan不能像awvs那样批量建立任务自动扫描. 不过,今天要 ...

  6. 【Java基础】java 获得本日,本周,本月的时间戳区间

    如果涉及到统计的话,可能会经常用到.很简单的基础知识. 1.getTimestampByOffsetDay public static long getTimestampByOffsetDay(int ...

  7. dexDebug ExecException finished with non-zero exit value 2

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transf ...

  8. Android Activity的生命周期

    一.为什么要了解Activity的生命周期 activity is directly affected by its association withother activities, its tas ...

  9. Android SQLite (五 ) 全面详解(三)

    SQLite约束 约束是在表的数据列上强制执行的规则.这些是用来限制可以插入到表中的数据类型.这确保了数据库中数据的准确性和可靠性.约束可以是列级或表级.列级约束仅适用于列,表级约束被应用到整个表. ...

  10. 关于第一个Java应用

    一.创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元(Compilation Unit). ...