1、问题
面向对象的程序员喜欢能够将功能封装进对象中。此时,就需要定义一个类来封装属性和行为。
2、解决方案
Objective-C中的类需要有接口和实现定义。尽管不是绝对必要,但通常要将接口和实现分开放到不同的文件中。这2个文件的名字是一样的,但接口文件的扩展名是.h。
类文件的扩展名是.m。
要使用一个类,你必须将该类头文件导入到代码中。
3、原理
假如要定义一个Car类。
在Car.h中,放的是Car类的接口。类接口必须以@interface开头,以@end结尾。在这2者之间定义的就是类的属性和方法。
#import <Foundation/Foundation.h>
@interface Car : NSObject // 意思是说你的car是NSObject的一个子类,NSObject是Objective-C的根对象。
@end
说明:NSObject类具有管理iOS提供的运行时的能力。继承自它的对象可以利用Objective-C出色的内存管理模型。
在Car.m中,要先导入Car.h,然后用@implementation声明正在实现一个自定义类。
#import "Car.h"
@implementation Car
@end
要使用你的类,就需要导入Car.h,然后从该类实例化一个对象。要实例化一个对象,就要发送2条消息:alloc和init。它们都来自超类NSObject。
【当实现一个新对象时,不要覆盖alloc方法,这个方法是由NSObject声明的。与之相反的是,请覆盖init方法,创建自定义的初始化方法,因为NSObject提供的init方法只是起占位作用】
Car *car = [[Car alloc] init];
4、代码
//==============Car.h
#import <Foundation/Foundation.h>
@interface Car : NSObject
@end
//===============Car.m
#import "Car.h"
@implementation Car
@end
//==================main.m
#import "Car.h"
int main (int argc, const char * argv[]){
@autoreleasepool {
Car *car = [[Car alloc] init];
NSLog(@"car is %@", car);
}
return 0;
}
5、运行代码
clang -fobjc -framework Foundation Car.m main.m -o maccommandlineapp
相关推荐
jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种...
1.3创建项目并添加maven依赖 1.4 创建Javabean测试类 1.5 创建切面 1.6 测试类 1.7 测试结果 1.8 结论 1.9 代理方式的切换 1.9.1 设计一个接口ManInterface 1.9.2 javaBean目标类Man实现ManInterface接口 1.9.3 修改...
jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种...
1.3主要覆盖了UEdGraphSchema的CreateConnectionDrawPolicy函数,引出FConnectionDrawPolicy类,其中重点使用了他的CreateConnectionDrawingPolicy函数来实现自定义连接线样式
易语言彗星虚表操作类_1.3模块源码,彗星虚表操作类_1.3模块,父窗口消息处理,列表框消息处理,On_MouscEveal,On_LvnGetdispinfo,指针到列表框项目,读绑定数据库,是否已创建,取窗口句柄,创建,高度,宽度,左边,顶边,事件_...
淘特地方分类信息系统基于淘特ASPCMS核心创建,借助CMS灵活性,CMS+分类信打造本地信息门户网站。 功能列表: 1、支持无限级分类 2、海量数据支持;程序采用海量数据查询优化。在数据量很大时仍保持快速查询。 3、...
1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一...
1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一...
(熬夜做成,希望多多看...2.1 创建java类。 2.2 创建services.xml。 2.3 发布服务。 2.4 在浏览器上测试服务。 三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。
1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一...
2.0 创建一个SpringBoot项目 2.1 引入 POM 依赖 2.1.1 引入springboot aop依赖 2.1.2 引入fastjson依赖 2.2 .编写配置类SpringConfig.java 2.3.编写测试Controller 2.4 编写切面类(使用注解 `@Aspect`): 2.5 测试...
三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 private 成员只能被本类中的成员函数及友元访问,其他函数不能访问。public 成员是类与外部的接口,可以被程序中...
编写代码文档资料几乎总是一项令人畏惧的任务。我所说的不是早期设计文档,甚至也不是更为详细的...当该项目生成时,将创建一个 XML 文件,其中包含所有 XML 注释。下面是 NUnit 示例中的一个用 XML 编写了文档的方法:
<br/>·支持资源文件的使用,可以定义资源文件包括字符串(可以写出多语言特征的程序)、图片、文件等 <br/>·支持包含源文件,可以将一个大程序分成几个小模块 <br/>·支持面向对象(指VBS的类和JS的...
1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一...
YiiPin是一款精仿《美丽说》网站的社会化购物分享系统程序,让您轻松拥有一个媲美《美丽说》、《蘑菇街》等网站的淘宝客网站,并且支持当当联盟、拍拍客联盟等十几家购物网站商品抓取分享。 系统采用了当下最...
1.1 创建一个类型为win32 dll工程 1.2 定义接口文件 1.3 增加注册功能 1.3.1 增加一个MathCOM.def文件 1.3.2 DllRegisterServer()和DllUnregisterServer() 1.4 MathCOM.cpp文件 1.5 小结 2. 实现ISmipleMath,...