IOS接口 和 实例变量的使用

通过下面的图解我们可以创建接口。

~GNKTNZ[]1C@5W4L5Z@CZ[P

 

图(1-1)

Q3)OKN1N{6CRR8@_VU[L5VK[4]

图(1-2)

D3B0TC)F%~~D3}]N_MB{TR7

图(1-3)

通过上面的图解我们可以学会创建接口文件。

下面是创建的接口文件Humen.h

#import <Cocoa/Cocoa.h>

@protocol Humen
-(void) showName:(NSString *)name;

@end

这段代码是Humen接口的声明,接口以@protocol开头,以@end结尾。

此接口中声明了一个无返回值的有一个字符串类型(NSString)参数的方法showName;

下面一段代码是头文件中的代码:

#import <Cocoa/Cocoa.h>
#import "Humen.h"

@interface Student : NSObject <Humen>
{
    NSString * studentName;
}
@property (nonatomic,retain) NSString * studentName;

@end

上面代码是声明了一个Student类并继承了NSObject 实现了接口Humen

:NSObject 表示继承类 NSObject

<Humen> 表示实现接口Humen

{NSString * studentName} 表示类Student 声明了一个字符串类型的属性 :  studentName

@property 是对属性的约束或是限定。

nonatomic 是@property中的属性用来设置类属性的,它的意思是:非原子性,不加同步,这样允许多线程并发访问,在iphone等小型设备上提高的性能是很可观的。

retail 也是@property中的属性,它的意思是:先释放之前的值,再将新值赋给属性,并且索引加1。

还要注意的是:此头文件中要包含 Humen.h 接口文件。

#import "File1.h"

@implementation Student
@synthesize studentName;
-(id)init{
    self=[super init];
    if (self) {
        studentName=@"StudentName is hongxing11111";
    }
    return self;
}
-(void) showName:(NSString *) name{
    NSLog(@"humen name is %@ student first name is %@",name,studentName);
}

@end

上面代码中的@synthesize  studentName;表示自动设置类属性studentName的getter 和setter方法。

还重写了init方法,并为属性赋值。

要注意的是实现接口中定义的方法-(void) showName:(NSString *) name{}

#import <Foundation/Foundation.h> 
#import "File1.h"

int main (int argc, const char * argv[]) {
    Student * student=[[Student alloc]init];/*创建Student类 在执行init方法时 会给类属性赋值*/
    [student showName:(NSString *) @"hongxing222"];/*调用 实例中的showName方法*/
    student.studentName=@"hongxing";  //为类属性赋值
    NSLog(@"sudent name is%@",student.studentName);     //

}

上面代码运行后结果如下图:

0Q~74SGF)DN`E7[L4)R]IY5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值