// day012
//
// Created by 蔡定龙 on 15-3-30.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import <Foundation/Foundation.h>
//NSObject是所有类的父类,基类
//'*'定义对象前加‘*’
/*
1.实例方法 -
必须实例化(创建)一个对象,用这个对象访问的方法
2.类方法 +
无需实例化对象,直接使用类调用的方法
*/
#import "Pe.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
Person *wukaishui=[[Person alloc]init];
[wukaishui setName:@"你好" andAge:30];
[wukaishui print];
Pe *exercise=[[Pe alloc]init];
[exercise setName:@"实习"];
[exercise setAge:200];
NSLog(@"%@共%lu天",[exercise name],[exercise age]);
}
return 0;
}
// Person.h
// day012
//
// Created by 蔡定龙 on 15-3-30.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject{
NSString * name;
int age;
}
-(void)setName:(NSString*)aName andAge:(int)aAge;
-(void)print;
@end
// Person.m
// day012
//
// Created by 蔡定龙 on 15-3-30.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import "Person.h"
@implementation Person
-(void)setName:(NSString*)aName andAge:(int)aAge{
name=aName;
age=aAge;
}
-(void)print{
NSLog(@"%@age is%d",name,age);
NSLog(@"%@共%lu天",self->name,self->age);
}
@end
// Pe.h
// day012
//
// Created by 蔡定龙 on 15-3-30.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Pe : NSObject
@property(nonatomic,strong) NSString *name;
@property(nonatomic,assign) NSInteger age;
@end
//点语法 访问set或get方法
//cd.name=@
/*
@property 属性声明
@property (nonatomic,strong)NSString *name
1.声明一个属性(成员变量)变量名:_name;
2.自动生成setter/getter方法
-(void)setName:(NSString *)aName
-(NSSting *)name;
3.实现setter/getter方法
*/
/*
关键字,限定符
nonatomic 非原子操作 没有加锁解锁机制 运行效率高,不安全,但常选择
atomic 原子操作 有加锁解锁机制 运行效率低,安全,多用于多线程操作
//内存管理角度
retain 修饰OC对象类型 将对象的引用计数+1
copy 修饰OC对象类型 重新分配一片内存空间
strong 同retain
weak
assign 修饰c语言基本数据类型 int char long float double NSInterger
readonly 只读,(只提供了get方法)
readwrite 默认,可读可写
setter= 重新设置setter方法名
getter= 重新设置getter方法名
*/
// Pe.m
// day012
//
// Created by 蔡定龙 on 15-3-30.
// Copyright (c) 2015年 李灵杰. All rights reserved.
//
#import "Pe.h"
@implementation Pe
@end