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;
}