gpt4 book ai didi

浅析Objective-C的程序结构及面向对象的编程方式

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅析Objective-C的程序结构及面向对象的编程方式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

objective-c程序的结构 就像学习所有编程语言一样,第一个程序就是在屏幕打印出“hello world !”.

我看的书上用到的编译器还是比较老的,我现在用的是xcode4.2.1,它有自动内存管理,所以书上的一些程序也许会报错。可以在创建工程时不选择use automatic reference counting选项解决这个问题.

运行xcode,新建一个command line tool工程,取名firstprogram.

浅析Objective-C的程序结构及面向对象的编程方式

在下一步,我们也取消use automatic reference counting选项.

不管自动生成的代码是什么样的,我们将代码改成以下:

复制代码 代码如下:

//first program example
#import <foundation/foundation.h>
int main (int argc, const char * argv[]) {
    nsautoreleasepool *pool = [[nsautoreleasepool alloc] init];
    nslog(@"hello, world!");
    [pool drain];
    return 0;
}

运行,显示如下:

  。

以下是对这段代码的简单说明:

1、程序第一行是注释,跟c/c++/java一样,objective-c注释也可以用 //、/*??*/来实现.

2、#import <foundation/foundation.h> 。

告诉编译器找到并处理名为foundation的文件.

3、int main (int argc, const char * argv[]) 。

指定程序名称为main,这是一个特殊名称,表示程序开始的地方.

4、nsautoreleasepool *pool = [[nsautoreleasepool alloc] init],

为自动释放池在内存中保留了空间.

5、nslog(@"hello, world!"),

指定要调用名为nslog的例程。传递给nslog的参数是字符串@"hello, world!",它是一个nsstring对象.

6、[pool drain],

用于释放已分配的内存池,以及与程序相关联的对象.

类、对象和方法 1、实例和方法 。

(1)使用类创建一个实例:

复制代码 代码如下:

yourcar = [car new];

这里的car是一个类,yourcar是一个对象 。

  。

(2)对类和实例应用方法:

复制代码 代码如下:

[classorinstance methed];

类或实例的名称要紧跟“[”,“];”用于终止。这条语句相当于java中的:对象名.方法名 。

  。

再如:

复制代码 代码如下:

currentmileage = [yourcar currentodometer];

其中,currentmileage用于接收返回值 。

  。

2、一段详细代码及说明:

复制代码 代码如下:

#import <foundation/foundation.h> 。

  。

//@interface section @interface fraction : nsobject {     int numerator;     int denominator; } -(void) print; -(void) setnumerator: (int) n; -(void) setdenominator: (int) d; @end 。

  。

复制代码 代码如下:

//@implementation section
@implementation fraction
-(void) print {
    nslog(@"%i/%i",numerator,denominator);
}
-(void) setnumerator:(int)n {
    numerator = n;
}
-(void) setdenominator:(int)d {
    denominator = d;
}
@end

  。

复制代码 代码如下:

//program section
int main (int argc, const char * argv[])
{
    nsautoreleasepool *pool = [[nsautoreleasepool alloc] init];
    fraction *myfraction;
    myfraction = [fraction alloc];
    myfraction = [myfraction init];
       
    [myfraction setnumerator: 1];
    [myfraction setdenominator: 3];
       
    nslog(@"the value of myfraction is: ");
    [myfraction print];
    [mufraction release];
    [pool drain];
    return 0;
}

(1)第4行是声明一个类的方法,@interface 新类名:父类名 。

  。

(2)第8~10行定义了三个方法,其中“-”表示实例方法,“+”表示类方法.

实例方法总是可以访问它的实例变量,而类方法却不行,因为类方法只处理类本身,而不处理类的任何实例 。

(3)第31~32行可以合并成 。

复制代码 代码如下:

myfraction = [[fraction alloc] init];

或者 。

复制代码 代码如下:

myfraction = [fraction new];

(4)第39行用于为对象myfraction释放内存,值得注意的是,最新的xcode编译器可以实现自动释放内存 。

最后此篇关于浅析Objective-C的程序结构及面向对象的编程方式的文章就讲到这里了,如果你想了解更多关于浅析Objective-C的程序结构及面向对象的编程方式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com