Objective-C入门06:属性
// 属性是描述类的特征
// 存在的目的: 赋值 取值
在main函数里面
#import "Hero.h"
#import <Foundation/Foundation.h>
#import "Hero2.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
// 不管存取值都用 .来存取;
Hero2 * kaTe = [ [Hero2 alloc ] init ];
kaTe.blood = 1000 ;
NSLog( @"卡特的血量是:%d" , kaTe.blood ) ;
kaTe.name =@"卡特" ;
NSLog( @"卡特的名字是:%@", kaTe.name ) ;
kaTe.lv=1;
Hero * jianSheng = [ [Heroalloc ] init ] ;
// setter 方法 是位内部变量设置一个 赋值的
[ jianSheng setLv : 20] ;
// getter 方法 取值的
NSLog( @" 英雄的等级 : %ld " , [ jianSheng lv ] ) ;
不用传参的 有返回值的函数
- ( 返回值类型 )函数名
{
renturn 返回值;
}
有返回值的函数的意义: 有返回值函数 就相当与是 返回值类型的一个实际的值
- ( int )aa
{
renturn 15 ;
}
aa这个函数就是 15这个 int 类型的数字
需要传参的 有返回值的函数
- ( 返回值类型 )函数名:(参数类型)参数名
函数名:(参数类型)参数名
{
renturn 返回值;
}
- ( int ) sumWithA :(int)a
bb :(int)b
{
renturn 返回值;
}
}
return 0;
}
在Hero.h里面
#import <Foundation/Foundation.h>
@interface Hero : NSObject
{
NSInteger _lv ;
}
- (void )setLv : (NSUInteger)lv;
- (NSInteger )lv ;
@end
在Hero.m里面
#import "Hero.h"
@implementation Hero
- (void )setLv : (NSUInteger)lv
{
_lv = lv;
NSLog(@"英雄的等级 : %ld" , _lv );
}
- ( NSInteger )lv
{
return _lv ;
}
@end
在Hero2.h里面
#import <Foundation/Foundation.h>
@interface Hero2 : NSObject
/*
{
int _blood;
}
// 带参的函数 是希望从外部类得到一个参数
//settter方法是为了从外部类得到一个参数,赋值给内部变量 _blood(写入数值)
//如果写的时setter方法,函数名必须用set开头,后面必须有参数,系统才回认为它是一个setter函数。
// 公式 - (void)set变量名(首字母大写) : (变量的参数类型 )参数名;
- (void)setBlood : ( int )newBlood ;
//什么时候用返回值的函数?需要给别人一个东西的时候 就用有返回值的函数 这个有返回值的函数返回值类型是什么类型函数就可以做一个返回值类型的变量
//getter方法存在的意义 是为了取值(读取)
//getter方法的书写规范:函数名必须是内部变量的名字
// 公式 - (返回值类型 )需要访问的变量的变量名;
- ( int )blood;
*/
//@propertyt 帮咱们声明了 setter、getter 方法
@property int blood ;
@propertyNSString * name ;
@property int lv ;
在Hero2.m里面
#import "Hero2.h"
@implementation Hero2
/*
- (void)setBlood : ( int )newBlood
{
// 把从外部类传过来的值,赋值给内部变量
_blood = newBlood ;
NSLog( @"%d" , _blood ) ;
}
// getter 读取
- ( int )blood
{
// 为了把内部类的变量给调用的地方
return _blood ;
}
*/
// @synthesize 帮我咱们实现了 setter、getter 方法
//@synthesize blood ; 这句话也可以不用了
@end