方法

 

//方法的两个方法,初始化器,便利构造器(有封装的思想),属性的设置器,访问器-----属性的使用.语法。

//例子简化如下

 

//  Student.h文件上的定义

#import <Foundation/Foundation.h>

 

@interface Student : NSObject

//没有指定成员变量的类型的话,系统会默认 成员变量的属性为 受保护行   @protected

 

{@public

    NSString *name;

    NSString *sex;

    int age;

}

//声明属性

@property(nonatomic,retain)NSString*hobby;

 

//对一个学生的行为方法进行初始化输出

-(void)studyWith:(NSString*)with;

 

 

//设置器

-(void)setName:(NSString*)newName Sex:(NSString*)newSex andAge:(int)newAge;

 

//访问器

-(NSString*)getName;

-(NSString*)getSex;

-(int)getAge;

//声明初始化器

-(Student *)initWithName:(NSString *)newName Sex:(NSString *)newSex andAge:(int)newAge;

//声明构造便利器

+(Student*)studentWithName:(NSString*)newName Sex:(NSString*)newSex andAge:(int)newAge;

@end

 

//Student.h文件上的具体实现

 #import "Student.h"

@implementation Student

@synthesize hobby;

//设置器功能的具体实现

-(void)setName:(NSString *)newName Sex:(NSString *)newSex andAge:(int)newAge

{

    self->name=newName;

    self->sex=newSex;

    self->age=newAge;

}

//对访问器功能的具体实现

-(NSString*)getName{

    return self->name;

}

-(NSString*)getSex{

        return self->sex;

}

//对设置器功能的具体实现

-(void)setAge:(int)newAge{

    if (newAge>0)

    {

        self->age=newAge;

    }

}

//对访问器功能的具体实现

-(int)getAge{

    return self->age;

}

 //对一个学生的行为方法进行初始化输出 方法的具体实现

-(void)studyWith:(NSString *)with

{

    NSLog(@"大家好,我是%@,很高兴在这里认识大家",with);

}

//Student.m文件中初始化器功能的具体实现

-(Student *)initWithName:(NSString *)newName Sex:(NSString *)newSex andAge:(int)newAge

{

    if(self)

    {

        name=newName;

        sex=newSex;

        age=newAge;

    }

    NSLog(@"姓名:%@,性别:%@,年龄:%d",self->name,self->sex,self->age);

    return self;

}

//便利构造器的具体实现

+(Student*)studentWithName:(NSString *)newName Sex:(NSString *)newSex andAge:(int)newAge

{

    Student *student=[[Student alloc]init];

    student->name=@"你好";

    student->sex=@"女";

    student->age=11;

    return student;

}

@end

 

 

 

 

 

 

 

//main.m文件的调用

 

#import <Foundation/Foundation.h>

#import "Student.h"

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

{

 

    @autoreleasepool {

        Student *stu1=[[Student alloc]init];

        

        //简单的对设置器和访问器的调用,感觉好苦逼

        [stu1 setName:@"hah" Sex:@"女" andAge:100 ];

      NSLog(@"%@,%@,%d",[stu1 getName],[stu1 getSex],[stu1 getAge]);

        

    /*有属性声明的方法去直接调用,注,这里属性的内容是苹果公司为我们封装好了的,

  属性.的运用,得是在声明成员变量的时候声明它们是属性,即@property(nonatomic,retain)NSString*hobby;然后得在是实现文件中(在声明类名的后面),加入一句@synthesize hobby;  最后在main.m文件中实现调用如下形式:stu1.hobby=@“运动”;*/

        

    stu1.hobby=@"篮球";

      NSLog(@"%@",stu1.hobby);

    

    Student *stu=[[Student alloc]init];

    [stu setName:@"李子" Sex:@"女" andAge:18];

     NSLog(@"我是%@,性别:%@,年龄:%d",[stu getName],[stu getSex],[stu getAge]);

//    Student *stu=[[Student alloc]initWithName:@"李子" Sex:@"女" andAge:-18];

//        

//        Student *stu2=[[Student alloc]initWithName:@"xxoo" Sex:@"女" andAge:100];

//NSLog(@"大家好我是%@,我是个好%@孩子,我今年有%d岁了",stu2->name,stu2->sex,stu2->age);

//    }

//    //对一个学生的行为方法进行初始化输出 的调用

//    Student *stu3=[[Student alloc]init];

//    [stu3 studyWith:@"XXXX"];

    

    return 0;

}

}

 

posted @ 2014-03-25 19:12  hellohellolin  阅读(243)  评论(0编辑  收藏  举报