Objective-C个人学习系列(4) 类与对象

//基础类库头文件

//<>表示搜索顺序从XCode系统路径中优先搜索

//“”表示搜索顺序从新建本地项目中WKRect项目中优先搜索

#import <Foundation/Foundation.h>

//类的声明

@interface WKRect : NSObject   //NSObject是所有OC中类的基础类

{

//定义公有成员变量

@public

    

//受到保护的成员变量

@protected

    

    //成员变量定义

    

    //左上角坐标x

    int xPos ;

    //左上角坐标y

    int yPos ;

    

    //矩形宽度

    int width ;

    //矩形高度

    int height;

    

//私有的成员变量

@private

}

//只要声明在头文件中的方法

//默认都为受保护的成员变量

//声明一个方法,设置xPos的值

-(void) setXPosValue:(int) value ;

//声明多个参数的方法,

//方法名包括两部分setXYValue: withYValue:

//除第一部分外后面命名的可以省略,但:不可省,如setXYValue::

//该方法包含两个参数,xValue和 yValue,参数类型都为int

-(void) setXValue:(int) xValue withYValue:(int) yValue;

//声明设置YPos值的方法

-(void) setYPosValue:(int) value ;

//声明设置矩形宽度的方法

-(void) setWidthValue:(int) value;

//声明设置矩形高度的方法

-(void) setHeightValue:(int) value;

//获得XPos值

-(int) getXPosValue ;

//获得YPos值

-(int) getYPosValue ;

//获得矩形宽度值

-(int) getWidthValue;

//获得矩形高度值

-(int) getHeightValue;

@end

//类的实现

#import "WKRect.h"

@implementation WKRect

//函数现实X设置函数

-(void) setXPosValue:(int)value

{

    xPos = value ;

}

//实现yPos设置函数

-(void) setYPosValue:(int)value

{

    yPos = value ;

}

//实现宽度设置函数

-(void) setWidthValue:(int)value

{

    width = value ;

}

//实现高度设置函数

-(void) setHeightValue:(int)value

{

    height = value ;

}

-(void)setXValue:(int)xValue withYValue:(int)yValue{

    xPos = xValue;

    yPos = yValue;

}

//实现getX函数

-(int) getXPosValue

{

    return xPos ;

}

//实现getY函数

-(int) getYPosValue

{

    return yPos ;

}

//实现getWidth函数

-(int) getWidthValue

{

    return width ;

}

//实现getHeight函数

-(int) getHeightValue

{

    return height ;

}

@end

#import <Foundation/Foundation.h>

#import "WKRect.h"

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

{

    //OC关键字,处理代码模块内存管理关键字,

    @autoreleasepool

    {   

                  //创建一个矩形对象,通过alloc函数创建对象并且分配内存

        WKRect* rect1 = [WKRect alloc] ;

        //通过init函数对对象进行初始化

        rect1 = [rect1 init] ;

        

        //rect1 = [[WKRect alloc] init];   //一般采用合并写法

        

        [rect1 setXPosValue: 5 ] ;

        [rect1 setYPosValue: 10 ];

        [rect1 setWidthValue: 10 ];

        [rect1 setHeightValue: 20 ];

        

        int xPos = [rect1 getXPosValue];

        int yPos = [rect1 getYPosValue];

        int width  = [rect1 getWidthValue];

        int height = [rect1 getHeightValue];

        

        NSLog(@"xPos = %d",xPos);

        NSLog(@"yPos = %d",yPos);

        NSLog(@"width = %d",width);

        NSLog(@"height = %d",height);

    }

    return 0;

}

//从Objective-C 2.0开始,可自动生成set方法和get方法(统称存储器方法)

//第一步在接口中通过@peroperty关键字定义需要自动生成存储器方法的实例变量

//第二步,在类实现中用@synthesize指定实例变量,编译器便可自动生成存储器方法。

//--------成员变量自动存储器用法--------

#import <Foundation/Foundation.h>

@interface WK_student : NSObject{

    int _num;

    int _age;

    int _sex;

    NSString* _name;

    NSString* _phone;

    NSString* _QQ;

}

@property int _num,_age,_sex;

@property NSString* _name, *_phone,*_QQ;

-(void) showStudentInfo;

-(void) addStudent:(QF_student *)stu;

@end

#import "WK_student.h"

@implementation WK_student

@synthesize _num,_age,_sex,_QQ;

@synthesize _phone,_name;

-(void)showStudentInfo{

    NSLog(@"name=%@",_name);

    NSLog(@"num=%d",_num);

    NSLog(@"age=%d",_age);

    NSLog(@"sex=%@",(_sex==0) ? @"男":@"女");

    NSLog(@"QQ=%@",_QQ);

    NSLog(@"phone=%@",_phone);

}

-(void)addStudent:(QF_student *)stu{

    

}

@end

#import <Foundation/Foundation.h>

#import "WK_student.h"

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

{

    @autoreleasepool {

        WK_student *stu = [[WK_studentalloc] init];

        stu._name = @"张三";

        stu._age = 20;

        stu._sex = 1;

        stu._num = 1002;

        stu._QQ = @"1919192388";

        stu._phone = @"13880901088";

        

        [stu showStudentInfo];

    }

    return 0;

}

相关推荐