最近开始学习IOS编程,自然开始接触了Object C 语言,下午看着例子进行了手动尝试了编码,对整个语言有基本的了解。
在Xcode创建Object C class文件,基本的class文件结构相比java语言 ,还是是简单多了,整体的文件结构
首先是头文件,后缀是以 .h头文件,这个文件定义了class的基本结构,有点类似一个类模板,定义class的结构信息
头文件部分
#import <目录/头文件.h> //代表只引入系统库的类的头文件
#import "目录/头文件.h" // 代表默认从当前路径下搜索是否存在对应的头文件,如果不存在,则从系统库里面
类变量部分
static 变量类型 变量名 = 初始值 //其中初始值可以没有
类定义以及成员变量定义部分,框架
@interface XXClass:NSObject <ProtocolA,ProtocolB>{
@public int a;
@private float b;
@protected int c;
}
@代表Object C 在C语言的基础上 新引入的关键字的前缀
@interface代表这个是一个类定义,这个和java里面的interface不一样
XXClass代表定义的类名
:NSObject 代表继承了NSObject对象
<ProtocolA,ProtocolB> 代表实现了ProtocolA 和ProtocolB 协议,这个Protocol和java语言里面的interface意义相同
类成员的变量是在 变量作用域 变量类型 变量名
接下来定义方法
-(void) print ;
-(void) setterA : (int) a;
-(void) setterABC : (int) a andB:(float) b andC:(int) c
+(int) toString ;
方法的定义为 方法所有者(返回值):方法名:(参数类型) 参数变量 下一个参数说明:(参数类型) 参数变量名 下一个参数说明 : (参数类型) 参数变量
其中 +代表类方法 -代表实力方法 在java里面相当于是否由static修饰符
其中 方法定义里面多了一个参数说明,这个参数说明有点怪,第一个参数是不能由参数说明的,如果由多个参数,从第二个参数开始,才允许由参数说明,这个参数说明一般情况是在重载的时候使用的,比如我有多个setterValue方法,第一个方法由一个变量,第二个方法有两个变量 ,那么第二个方法里面可以说明第二个变量干嘛用的
最后一行就是类定义结束 使用 @end标签就可以了
下面是一个完整的类定义
#import <Foundation/Foundation.h>
staticint i = 0;
@interface SampleTwoPerson : NSObject<NSCoding>{
NSString *name ;
float weight ;
}
-(SampleTwoPerson*) initNameAndWeight : (NSString*) name andweight:(float) weight andObject:(NSString *) obj;
-(NSString *) getterName ;
-(float) getterWeight;
-(NSString *) toString ;
@end
|
接下来是写class的实现文件,实现文件后缀是.m
首先还是引入头文件,这里面只需要引入定义的class头文件就可以了
#import "XXClass.h"
下面就是实现了
@implementationXXClass
方法定义 {
code
//方法实现代码
};
@end
方法定义和头文件XXClass.h中一样,只需要去掉最后面一个;号即可
同时还需要实现 类定义里面 需要实现的 Protocol 方法即可。
#import "SampleTwoPerson.h"
@implementation SampleTwoPerson
-(SampleTwoPerson*) initNameAndWeight : (NSString*) name1 andweight:(float) weight1 andObject:(NSString *) obj;
{
self->name = name1;
self->weight = weight1;
returnself;
};
-(NSString *) getterName {
return name;
}
-(float) getterWeight{
return weight;
}
-(NSString *) toString {
return name;
}
//下面两个方法是类定义中的 NSCoding 协议的实现
- (void)encodeWithCoder:(NSCoder *)aCoder{
}
- (id)initWithCoder:(NSCoder *)aDecoder{
returnnil;
}
@end
|
以上就是Object 语言的class文件定义的基本语法。
分享到:
相关推荐
Object-C 学习笔记 自己整理的 适合初学者
object-c入门学习笔记分享--继承,初学者可参考
Redis,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...本文适合Redis初学者和进阶者阅读,是一份全面而实用的学习笔记。
1. 前言 1-4 1.1. JAVA特点 1-4 1.2. 运行原理 1-4 1.3. JAVA目录 1-4 2. 一•基础知识 2-4 2.1. 配置环境 2-4 2.2. Java中基本概念 2-5 3. 二•定义,关键字和类型 3-5 3.1. 注释的三种形式 3-5 3.2. Java代码中的...
Allegro学习笔记系列 有初学者可以一起学习
非常适合从事JAVA开发的初学者使用。 PPT教程,安装有微软的office软件就可以打开查看,开始吧! Java是面向对象(Object-Oriented)程序语言,具有更高的跨平台可能性 在今日,更多时候代表了软件开发的架构 ...
这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的JavaSE小白的同学们,我相信通过你们的...
在我们使用Spring.NET框架的时候,首先需要实例化Spring.NET容器, 然后调用IoC容器IObjectFactory接口中GetObject方法获取容器中的对象。通过这一点就可以告诉我们...全程手把手都你学习Srint.Net,对初学者帮助很大.
代码如下: /* * JavaScript对象就是一组属性(方法)的集合 * 在该语言中如果变量名或方法名不符合声明规范, * 则一定得用方括号“ [] ”引用它 * */ /** * <1>该语句声明了一个class1类,class1相当于构造方法,又...
C# 2008 学习笔记 - LINQ to XML 87 一、命名空间 87 二、编程方式创建XML文档 88 三、使用 LINQ 查询创建XML文档 89 四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml ...
下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍: 《面向对象的Javascript》(Object-Oriented JavaScript) 《Javascript高级程序设计(第二版)》(Professional JavaScript ...
这是我学习scala时做的笔记,应该比较全面,对于初学scala足够了。文档排版整齐、方便阅读。 另外,我在百度文库也上传过一份,不过csdn上的版本是最新的。希望可以帮助到你。 --------- 目录 --------- 概述 1 ...
然而,该技术可能难以理解(尤其是对于深度学习的初学者)、难以实施且难以训练。 此外,即使使用“更快”的 R-CNN 实现(其中“R”代表“区域提议”),算法也可能非常慢,大约为 7 FPS。 如果我们追求纯粹的速度,...
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处...
VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...
由于好多库从头开始学习不足太大,所以在这里提供了笔者的部分注释,其中大部分都是跑过的模型,准备读的代码,已经读过的代码笔记,自己开发的simple系列简单代码,常用代码段。 尽量提供简化版本的,便于理解的...