黑马程序员技术交流社区

标题: #import、@interface这类玩意说的是什么? [打印本页]

作者: Micro    时间: 2015-2-10 10:28
标题: #import、@interface这类玩意说的是什么?
#import、@interface这类玩意说的是什么?

1#import

你可以把它认为是#include,一样的。但是最好用#import,记住这个就行了。

2@interface等等

比如你在c#中写一个抓孩子类的定义:

public class Kids : System
{
           private string kidName=”mykid”;
           private string kidAge=“15”;
           private bool isCaughtKid()
           {
                     return true;
           }
}

当然,上面的写法不一定对,就是个用于看语法的举例。

在Objective-C里就得这么写:

先写一个kids.h文件定义这个类:


@interface Kids: NSObject {
           NSString *kidName;
           NSString *kidAge;
}
-(BOOL) isCaughtKid:;
@end

再写一个kids.m文件实现:

#import “kids.h”
@implementation Kids
-(void) init {
           kidName=@”mykid”;
           kidAge=@”15”;
}

-(BOOL) isCaughtKid:{
           return YES;
}
@end

这个写法也不一定对,主要是看看语法就行了。-_-b

问题三、一个方法如何传递多个参数?

一个方法可以包含多个参数,不过后面的参数都要写名字。

多个参数的写法

(方法的数据类型) 函数名: (参数1数据类型) 参数1的数值的名字 参数2的名字: (参数2数据类型) 参数2值的名字 …. ;
举个例子,一个方法的定义:

-(void) setKids: (NSString *)myOldestKidNamesecondKid: (NSString*) mySecondOldestKidName thirdKid: (NSString *)myThirdOldestKidName;


实现这个函数的时候:


-(void) setKids: (NSString *)myOldestKidNamesecondKid: (NSString *)mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName{
           大儿子 = myOldestKidName;
           二儿子 =mySecondOldestKidName;
           三儿子 =myThirdOldestKidName;
}

调用的时候:


           Kids *myKids = [[Kids alloc] init];
           [myKids setKids: @”张大力” secondKid: @”张二力” thirdKid: @”张小力”];

而如果你用c#写这个方法,大致的写法可能是

public void setKids( stringmyOldestKidName, string mySecondOldestKidName, stringmyThirdOldestKidName)
{
}

调用的时候大概的写法可能是:

Kids myKids = new Kids();
myKids.setKids (“张大力”, “张二力”, “张小力”);

明白了吧?其实不怎么难看懂。

基本上,如果你能了解下面这段代码的转换关系,你Objective-C的语法也就懂了八成了:

[[[MyClass alloc] init:[foo bar]] autorelease];
转换成C#或者Java的语法也就是:
MyClass.alloc().init(foo.bar()).autorelease();






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2