最近开始学习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文件定义的基本语法。
分享到:
相关推荐
本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...
object-c入门学习笔记分享--继承,初学者可参考
### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...
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代码中的...
这篇学习笔记旨在帮助读者理解C++的内存管理、类的结构、对象的生命周期以及模板等核心概念。 首先,C++的对象模型是基于C的,因此,它涉及到指针、内存布局以及数据成员的排列方式。在C++中,对象是通过在内存中...
这份"J2EE学习笔记(J2ee初学者必备手册)"是为初学者量身定制的指导资料,旨在帮助新手快速掌握J2EE的核心概念和技术。 **J2EE架构与组件** J2EE架构基于分层设计,主要包含以下层次: 1. **客户端层**:用户...
本学习笔记专为初学者设计,旨在帮助新接触JavaScript的人快速掌握这门语言的核心概念和实用技巧。 首先,"JavaScript特效.chm"可能是一份关于JavaScript实现的各种网页特效的教程。这些特效可能包括图片轮播、下拉...
Java学习笔记主要涉及Java语言的历史背景、语言特点、应用平台和学习建议。以下是对这些内容的详细解析: ### Java语言的历史背景 Java起源于1990年代初的Sun公司(现为Oracle公司的一部分)的“绿色项目”计划,...
这篇“web学习笔记——javascript基础”将带你走进JavaScript的世界,理解其基本概念和常用语法。 JavaScript语法基础: 1. 变量:在JavaScript中,变量用于存储数据。声明变量使用`var`关键字,例如`var myVar = ...
在C#编程语言中,学习基础是至关重要的,特别是对于初学者来说。下面将详细讲解在C#中进行文本文件的读取与存储以及数组文本读取和使用的基础知识。 首先,我们来看文本文件的读取与显示。在这个示例中,使用了`...
**正文** Maven是Java开发领域中不可或缺...通过这份学习笔记,初学者将能够快速上手Maven,熟练掌握项目构建流程,提高开发效率。而经验丰富的开发者也能从中学习到新的技巧和最佳实践,提升自身在项目管理中的能力。
标题:PHP学习笔记1 描述:本篇笔记旨在为初学者提供一个系统的学习路径,深入理解PHP编程语言的核心概念与实践技巧。通过本篇笔记,读者将能够掌握PHP的基础语法、变量、数据类型、控制结构、函数、面向对象编程、...
以上是C#学习笔记中的核心知识点总结,涵盖了MDI管理、系统托盘和菜单操作、图形和透明度设置、窗口置顶、进程启动、工具栏使用、关闭前询问及打印功能实现等多个方面,对C#初学者或开发者具有较高的参考价值。
Allegro学习笔记系列是为初学者准备的一系列学习笔记,旨在帮助初学者快速掌握Allegro软件的使用和pcb设计的基础知识。本系列笔记中,我们将从基础的Gerber文件格式开始,逐步深入到Allegro软件的使用和pcb设计的...