`
rysh0818
  • 浏览: 21890 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Object C初学学习笔记(1)

 
阅读更多

最近开始学习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 学习笔记 自己整理的 适合初学者

    object-c入门学习笔记分享-继承.txt

    object-c入门学习笔记分享--继承,初学者可参考

    Redis全套学习笔记 (带章节目录) 完整版pdf

    Redis,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。...本文适合Redis初学者和进阶者阅读,是一份全面而实用的学习笔记。

    java学习笔记 初学者必读

    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学习笔记系列

    Allegro学习笔记系列 有初学者可以一起学习

    java学习笔记JDK6课件和课本代码

    非常适合从事JAVA开发的初学者使用。 PPT教程,安装有微软的office软件就可以打开查看,开始吧! Java是面向对象(Object-Oriented)程序语言,具有更高的跨平台可能性 在今日,更多时候代表了软件开发的架构 ...

    JavaSE之Object与Object类

    这也是小编在刚开学学习JavaSE时记录的一些笔记,里面的内容非常适合JavaSE入门者学习,都是浅显易懂的话语,没有太多的官方话,绝对是你初学JavaSE的宝典,针对人群:刚入门的JavaSE小白的同学们,我相信通过你们的...

    Spring.NET学习笔记-实现一个简易的IoC框架

    在我们使用Spring.NET框架的时候,首先需要实例化Spring.NET容器, 然后调用IoC容器IObjectFactory接口中GetObject方法获取容器中的对象。通过这一点就可以告诉我们...全程手把手都你学习Srint.Net,对初学者帮助很大.

    某人初学javascript的时候写的学习笔记

    代码如下: /* * JavaScript对象就是一组属性(方法)的集合 * 在该语言中如果变量名或方法名不符合声明规范, * 则一定得用方括号“ [] ”引用它 * */ /** * &lt;1&gt;该语句声明了一个class1类,class1相当于构造方法,又...

    LINQ基础教程(中文版) 适合初学者

    C# 2008 学习笔记 - LINQ to XML 87 一、命名空间 87 二、编程方式创建XML文档 88 三、使用 LINQ 查询创建XML文档 89 四、加载和解析XML内容 90 六、遍历内存中的XML文档 90 七、修改 XML文档 92 使用linq to xml ...

    Javascript 面向对象编程(一) 封装

    下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍: 《面向对象的Javascript》(Object-Oriented JavaScript) 《Javascript高级程序设计(第二版)》(Professional JavaScript ...

    Scala详细总结(精辟版++)

    这是我学习scala时做的笔记,应该比较全面,对于初学scala足够了。文档排版整齐、方便阅读。 另外,我在百度文库也上传过一份,不过csdn上的版本是最新的。希望可以帮助到你。 --------- 目录 --------- 概述 1 ...

    谷歌师兄的leetcode刷题笔记-MobileNet-Object-Detection:MobileNet对象检测

    然而,该技术可能难以理解(尤其是对于深度学习的初学者)、难以实施且难以训练。 此外,即使使用“更快”的 R-CNN 实现(其中“R”代表“区域提议”),算法也可能非常慢,大约为 7 FPS。 如果我们追求纯粹的速度,...

    Javascript闭包(Closure)详解

    下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处...

    asp.net知识库

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

    SimpleCVReproduction:复制简单的简历项目,包括注意力模块,分类,目标检测,分割,关键点检测,跟踪等

    由于好多库从头开始学习不足太大,所以在这里提供了笔者的部分注释,其中大部分都是跑过的模型,准备读的代码,已经读过的代码笔记,自己开发的simple系列简单代码,常用代码段。 尽量提供简化版本的,便于理解的...

Global site tag (gtag.js) - Google Analytics