day012 oc中类的声明与调用

来源:互联网 发布:js面向对象的继承方式 编辑:程序博客网 时间:2024/06/06 08:47
//  main.m
//  day012
//
//  Created by 蔡定龙 on 15-3-30.
//  Copyright (c) 2015年 李灵杰. All rights reserved.
//

#import <Foundation/Foundation.h>

//NSObject是所有类的父类,基类
//'*'定义对象前加‘*’
/*
 1.实例方法   -
   必须实例化(创建)一个对象,用这个对象访问的方法
 2.类方法    +
   无需实例化对象,直接使用类调用的方法
 */

#import "Person.h"
#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

0 0
原创粉丝点击