`
zsjg13
  • 浏览: 139743 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

1.3 创建一个类

    博客分类:
  • ios
 
阅读更多

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-1.3.js已压缩

     jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。  它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种...

    SpringBoot AOP切面类三种写法(源代码)

    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-1.3.js未压缩

     jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。  它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种...

    1.3 前端数据开发-创建节点之间的连接线 类函数关系 Xmind

    1.3主要覆盖了UEdGraphSchema的CreateConnectionDrawPolicy函数,引出FConnectionDrawPolicy类,其中重点使用了他的CreateConnectionDrawingPolicy函数来实现自定义连接线样式

    易语言彗星虚表操作类_1.3模块

    易语言彗星虚表操作类_1.3模块源码,彗星虚表操作类_1.3模块,父窗口消息处理,列表框消息处理,On_MouscEveal,On_LvnGetdispinfo,指针到列表框项目,读绑定数据库,是否已创建,取窗口句柄,创建,高度,宽度,左边,顶边,事件_...

    淘特地方分类信息系统 v1.3.rar

    淘特地方分类信息系统基于淘特ASPCMS核心创建,借助CMS灵活性,CMS+分类信打造本地信息门户网站。 功能列表: 1、支持无限级分类 2、海量数据支持;程序采用海量数据查询优化。在数据量很大时仍保持快速查询。 3、...

    Visual C++ MFC编程实例.PDF

    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 () 函数注册一...

    VC++MFC教程全解

    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 () 函数注册一...

    (原创)用Eclipse + Axis2+Tomcat创建Web Service

    (熬夜做成,希望多多看...2.1 创建java类。 2.2 创建services.xml。 2.3 发布服务。 2.4 在浏览器上测试服务。 三、 Web Service 客户端的创建。 3.1 创建WSDL文件。 3.2 利用WSDL创建stub。 3.3 利用stub类测试服务。

    Visual C++MFC编程实例

    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 () 函数注册一...

    SpringBoot中的AOP+自定义注解(源代码)

    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 测试...

    c++ 基本知识--类定义、初始化、析构(曹阳).ppt

    三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。 private 成员只能被本类中的成员函数及友元访问,其他函数不能访问。public 成员是类与外部的接口,可以被程序中...

    编写代码文档资料ndoc1.3

    编写代码文档资料几乎总是一项令人畏惧的任务。我所说的不是早期设计文档,甚至也不是更为详细的...当该项目生成时,将创建一个 XML 文件,其中包含所有 XML 注释。下面是 NUnit 示例中的一个用 XML 编写了文档的方法:

    多功能脚本虚拟机1.3

    &lt;br/&gt;·支持资源文件的使用,可以定义资源文件包括字符串(可以写出多语言特征的程序)、图片、文件等 &lt;br/&gt;·支持包含源文件,可以将一个大程序分成几个小模块 &lt;br/&gt;·支持面向对象(指VBS的类和JS的...

    VISUAL C++MFC编程实例

    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社会化电商分享系统 v1.3.zip

    YiiPin是一款精仿《美丽说》网站的社会化购物分享系统程序,让您轻松拥有一个媲美《美丽说》、《蘑菇街》等网站的淘宝客网站,并且支持当当联盟、拍拍客联盟等十几家购物网站商品抓取分享。   系统采用了当下最...

    COM技术初探(pdf格式)

    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,...

Global site tag (gtag.js) - Google Analytics