OC创建类和对象 设置器和存储器

来源:互联网 发布:上海市行知实验中学 编辑:程序博客网 时间:2024/05/18 02:40
<span style="font-size:18px;">类的.h文件////  Person.h//  Objective-COne////  Created by lanouhn on 14-8-1.//  Copyright (c) 2014年 Summer. All rights reserved.//#import <Foundation/Foundation.h>//类的接口部分/*! 1.定义一个类 2.添加当前类属性(特征) 3.添加当前类行为(方法 ) */@interface Person : NSObject{    //大括号内部,添加当前类属性    //字符串类型    NSString *name; //姓名,NSString,同样是一个类,它是Objective-C提供好的一个类    //整型    NSInteger age; //年龄,NSInteger是数值类型    //字符串类型    NSString *gender; //性别}//通过分配并初始化对象来创建对象/*! 为了分配对象,您发送alloc消息给该对象的类,来获得该类的一个"原始"(未初始化)的实例.分配对象时,Objective-C 运行时会从应用程序的虚拟内存, 为对象分配足够的内存. 除分配内存以外,运行时在分配期间还做了一点别的事,例如将所有实例变量设定为零  分配原始实例后,您必须立即对它初始化. 初始化将一个对象的初始状态(即它的实例变量和属性)设定为合理的值, 然后返回对象. 初始化的目的在于返回有用的对象  - (id)initFileURLWithPath:(NSString *)path isDirectory:(BOOL)isDir *///初始化方法//希望通过初始化方法能够获得一个Person类的实例对象,并且希望对该对象具有自己的姓名属性- (id)initWithName:(NSString *)_name;//大括号外部,添加当前类的行为- (void)sayHi;//设置器 setter- (void)setName:(NSString *)_name;- (void)setAge:(NSInteger)_age;- (void)setGender:(NSString *)_gender;//访问器 getter- (NSString *)getName;- (NSInteger)getAge;- (NSString *)getGender;@end类的.m文件////  Person.m//  Objective-COne////  Created by lanouhn on 14-8-1.//  Copyright (c) 2014年 Summer. All rights reserved.//#import "Person.h"@implementation Person//初始化方法//希望通过初始化方法能够获得一个Person类的实例对象,并且希望对该对象具有自己的姓名属性- (id)initWithName:(NSString *)_name{    //1. 原始初始化 也就是将内存内的变量都置为零    //super 是方法的接收对象, init 是方法名 方括号内的内容是将init方法发送给super对象    self = [super init];    //2.原始化初始化成功之后,需要设置当前对象的姓名为形参    if (self != nil) {        name = _name;    }    //3.返回当前对象    return self;}//大括号外部,添加当前类的行为- (void)sayHi{    //NSLog将字符串打印在控制台进行输出,类似于C语言中的printf函数    NSLog(@"Hello Wrold!");}//设置器 setter- (void)setName:(NSString *)_name{    //设置给当前对象的属性    name = _name;}- (void)setAge:(NSInteger)_age{    age = _age;}- (void)setGender:(NSString *)_gender{    gender = _gender;}//访问器 getter- (NSString *)getName{    //访问当前对象的属性    return name;}- (NSInteger)getAge{    return age;}- (NSString *)getGender{    return gender;}@endmain.m文件////  main.m//  Objective-COne////  Created by lanouhn on 14-8-1.//  Copyright (c) 2014年 Summer. All rights reserved.//#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]){    @autoreleasepool {        //1.创建Person类的实例对象        Person *person = [[Person alloc] initWithName:@"Summer"];        //2.给person发送实例消息sayHi        [person sayHi];                //3.先打印当前person实例对象的姓名是什么        NSLog(@"person's name is %@", [person getName]);                //4.修改当前person实例对象的姓名,修改成Jack        [person setName:@"Jack"];                //5.第二次打印当前person实例对象的姓名        NSLog(@"person's name is %@", [person getName]);                // insert code here...        NSLog(@"Hello, World!");            }    return 0;}</span>

0 0
原创粉丝点击