objectivec类对象与方法_第1页
objectivec类对象与方法_第2页
objectivec类对象与方法_第3页
objectivec类对象与方法_第4页
objectivec类对象与方法_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章类、对象与方法目标了解面向过程和面向对象程序设计思想熟悉创建类和类的对象和实例本章结构面向对象思想的介绍Objective-C中的实例和方法Objective-C程序分为3部分

@interface部分

@implementation部分

program部分获取实例变量的值变量的访问函数面向过程(OP)面向过程的程序设计工作主要围绕设计解题过程来进行,更加侧重于细节如何实现。C、FORTRAN都是面向过程的程序设计语言。面向过程开发模式的优缺点优点:算法描述准确缺点:编程复杂.可读性差系统维护困难程序代码可重用性差一个处理分数的程序1:面向过程设计思想#import<Foundation/Foundation.h>intmain(intargc,constchar*argv[]){@autoreleasepool{ intnumerator=1; intdenominator=3;NSLog(@"Thefractionis%i/%i",numerator,denominator);}return0;}一个处理分数的程序2:面向过程设计思想#import

<Foundation/Foundation.h>

struct

FenShu

{

int

fenzi;

int

fenmu;

};

int

main(int

argc,

const

char

*

argv[])

{

@autoreleasepool

{

struct

FenShu

fen1={1,3};

NSLog(@“fenshu

=

%i/%i”,fen1.fenzi,fen1.fenmu);

}

return

0;

}面向对象(OO)1.面向对象程序设计方法侧重于从整体上对程序进行分析,用对象分解取代功能分解。 可以认为:面向对象的程序是由对象和对象间的相互作用构成的。面向对象的程序是对象的有机结合。2.面向对象的特点有三个:封装、继承、和多态。3.面向对象方法的主要优点与人类习惯的思维方法比较一致;稳定性好;可重用性好;可维护性好。类与对象对象:现实世界中某个具体的物理实体,每

个对象都包含特定的属性和行为类:现实世界中具有相同属性和行为的物理

实体的抽象。学生:类那个背书包的学生:对象自行车:类我的那辆自行车:对象类与对象的关系(cont.)类是对对象的抽象对象(Object)是类的实例类对象对象对象对象对象对象实例化实例和方法实例:实例是对象的另一种称谓方法:实例具有的行为对象使用对象执行的操作你的汽车驾驶加油洗车维修Objective-C程序分为3部分@interface部分用于描述类和类的方法@implementation部分包括实现这些方法的实现代码Program部分包含实现程序预期目的的程序代码(或叫测试代码)@interface

部分定义一个新类时,

一:必须要命名它的父类二:要定义处理该类对象时要用到的各种操作方法及返回值类型。

@interfaceNewClassName:ParentClassName propertyAndMethodDeclatations;@end注意:约定类名以大写字母开头

实例变量和方法都以小写字母开头,多个字母构成则后面的字母大写一个处理分数的Objective-C类@interface部分-(void)setNumerator:(int) n;方法类型方法返回值方法名方法参数类型方法参数名:表示该方法是一个实例方法+:表示该方法是一个类方法一个处理分数的Objective-C类@interface部分@interfaceFraction:NSObject{ intnumerator; intdenominator;}-(void)print;-(void)setNumerator:(int)n;-(void)setDenominator:(int)d;@end一个处理分数的Objective-C类@implementation部分@implementation部分包含声明在@interface部分方法的实现代码一般格式:

@implementationNewClassNamemethodDefinitions;@end每种方法的定义首先指定方法(或者实例)的类型、返回值、参数类型,后面将方法的定义放入花括号中。一个处理分数的Objective-C类@implementation部分@implementationFraction-(void)print{ NSLog(@"%i/%i",numerator,denominator);}-(void)setNumerator:(int)n{numerator=n;}-(void)setDenominator:(int)d{denominator=d;}@end一个处理分数的Objective-C类Program部分Program部分包含解决特定问题的代码,必须有一个main方法,这是程序开始的地方在Program文件中必须导入

#import"Fraction.h"头文件一个处理分数的Objective-C类Program部分#import<Foundation/Foundation.h>#import"Fraction.h"intmain(intargc,constchar*argv[]){@autoreleasepool{Fraction*myFraction;myFraction=[Fractionalloc];myFraction=[myFractioninit];[myFractionsetNumerator:1];[myFractionsetDenominator:3];NSLog(@"TheValueofMyFractionis:");[myFractionprint];}return0;}Program部分Fraction*myFraction;myFraction是Fraction类型的对象,注意Objective-C中采用指针,即实际表示myFraction是对Fraction的一个引用。myFraction=[[Fractionalloc]init];Fraction类发送消息,要求使用alloc方法分配内存空间,alloc方法继承来自NSObject类的方法调用alloc方法后,分配了存储空间在发送消息进行实例变量的初始化,即发送init的消息,并返回一个初始化的对象。[myFractionsetNumerator:1];[myFractionsetDenominator:3];

将消息setNumerator:发送给myFraction,提供一个值为1的参数,由于myFraction是Fraction类的对象,实际调用Fraction类的setNumerator:方法;[myFractionprint];

调用print方法,打印输出分数的值Program部分获取实例变量的值实例方法可以直接访问它的实例变量如果从main函数中访问实例变量,怎么实现?需要编写特殊方法来检索实例变量的值

-(int)numerator{returnnumerator;}-(int)denominator{returndenominator;}

注意:方法名与实例变量名相同。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论