OC基础--OC中类的声明与定义
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中类的声明与定义的更多相关文章
- OC基础--OC中类的定义
OC中类的定义与使用跟C#和java差别相当明显,做个笔记,牢记并加以区别! 一.OC中类的定义:关键字@implementation 和 @end 注意事项: 1.定义好一个类之后,要让这个类继承N ...
- ios开发之OC基础-oc小程序
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- OC基础--OC中的类方法和对象方法
PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1 ...
- OC基础:OC 基本数据类型与对象之间的转换方法 分类: ios学习 OC 2015-06-18 20:01 11人阅读 评论(0) 收藏
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...
- OC基础--OC内存管理原则和简单实例
ARC: 由于自己的学习视频太早,Xcode是iOS6版本,新建命令行项目后,系统会默认启动ARC机制,全程Automatic Reference Counting,简单的说,就是代码中自动加入了re ...
- OC基础 类的三大特性
OC基础 类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属 ...
- OC基础(1)
Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 *:first-child { margin-top: 0 !important; } body > *:last-chi ...
- OC基础-第1天
#pragma mark - Day01_01_OC语言的历史(了解) 1) Objective - C 是一门面向对象的高级语言 2) Objective - C 简称 obj - C \ OC ...
- OC基础 代理和协议
OC基础 代理和协议 1.协议 (1)oc语言中得协议:一组方法列表,不需要我们自己实现,由遵守协议的类来实现协议所定制的方法. (2)协议的使用步骤:制定协议-->遵守协议-->实现协议 ...
随机推荐
- TestNG之执行顺序
如果很有个测试方法,并且这几个方法又有先后顺序,那么如果让TestNG按照自己想要的方法执行呢 一.通过Dependencies 1.在测试类中添加Dependencies @Test public ...
- Mysql如何清空数据库的所有表数据
1.先查询出库中的所有表,“db”是数据库名称 SELECT CONCAT('truncate table ',TABLE_NAME,';') AS a FROM INFORMATION_SCHEMA ...
- 【温故而知新-Javascript】对象
1 创建对象 Javascript 支持对象的概率.有多种方法可以用来创建对象. <!DOCTYPE html> <html lang="en"> < ...
- 【ASP.NET 插件】zyUpload的HTML5上传插件
个人能力有限,只能网上找图片批量上传插件,看到一个还不错的插件zyUpload ,可以用来上传文件,但没有.NET 版本,特修改了下用以批量上传图片,效果图如下: update:2016年3月8日 有 ...
- AC日记—— codevs 1031 质数环(搜索)
题目描述 Description 一个大小为N(N<=17)的质数环是由1到N共N个自然数组成的一个数环,数环上每两个相邻的数字之和为质数.如下图是一个大小为6的质数环.为了方便描述,规定数环上 ...
- Facebook或成云领域黑马 冲击亚马逊
[摘要]目前,云计算领域最大的服务是亚马逊AWS,据称此服务年度营收约为100亿美元. 转播到腾讯微博 BI中文站 3月22日报道 如今,多数人认为亚马逊在云计算领域的发展势头无人可档,不过,这个市场 ...
- 查询Sqlserver数据库死锁的一个存储过程(转)
链接 :http://www.cnblogs.com/mzhanker/archive/2011/06/04/2072739.html 使用sqlserver作为数据库的应用系统,都避免不了有时候会产 ...
- Bolts-Android
对Android客户端编程来说,有个明确的规则是不能在ui线程里面做耗时的操作.这样就要求网络请求.文件读写等等操作都要异步操作.而异步操作完成后,往往需要再更新ui界面.最直接的想法是回调,只要保证 ...
- Go Walk教程 - 流程控制( switch)
Go的 switch 非常灵活,表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项,不要break: var score =98 var result string switch score/ ...
- linux下的zip命令
1.把/home目录下面的mydata目录压缩为mydata.zipzip -r mydata.zip mydata #压缩mydata目录2.把/home目录下面的mydata.zip解压到myda ...