您的位置:首页 > 移动开发 > Objective-C

Object-C学习笔记(二)-----对象的创建和类方法的调用

2013-04-04 12:00 316 查看
既学习笔记一 helloworld项目,

在当前项目所在的xcode中,按 command+N ,出现一个创建类的向导:如图



创建一个oc 类, 选择其父类为NSObject ,命名为Student ;

系统会自动生成相应的 。h和。m文件

这里我说下关于要继承 NSObject的 个人见解,

在java中创建一个类,可以不继承任何类,因为系统会在该类的内部自动添加一个无参的构造方法,那么构建该类的对象时,可以调用该 无参构造方法来初始化一个该类的对象

但是再oc中,应该不存在这一机制,所以需要继承一个父类来调用父类的方法来构造一个对象。 如下代码:

Student *student=[[Studentalloc]
init];

alloc应该是 Student类的父类的方法, 调用该方法 后,Returns a new instance of the receiving class. (alloc



方法的api说明) 但是此时并没有完成初始化一个对象的过程,

还要执行init 方法来完成该对象的初始化过程,官方 api 说明为:You must use an
init...
method
to complete

the initialization process (翻译:你必须使用 init... 这样的方法来完成初始化过程)

接着上面的说:

创建一个 新类之后,在该类的。h文件中写上想要的属性,及其类方法。

代码如下;

Student。h文件

#import <Foundation/Foundation.h>

@interface Student : NSObject

{
    int age;
    NSString *name;
    
}

-(void) show;

-(void) setAge:(int)a;

-(NSString*) name;

-(void) setName:(NSString *) n;

-(NSString *) getName;

@end


Student。m文件

#import "Student.h"

@implementation Student

-(void) show
{
    NSLog(@"我的名字:%@,我的年龄:%i",name,age);
    NSLog(@"会不会调用set方法呢");
    self.name=@"张三";
}

-(void) setAge:(int)a
{
    age=a;
}

-(void)setName:(NSString *)n
{
    NSLog(@"会调用setName啊");
    name=n;
    
}

-(NSString *)name
{
    
    NSLog(@"会调用name");
    return name;
    
}

-(NSString *)getName
{
    NSLog(@"会调用getName方法");
    return name;
    
}

@end


类方法的调用

main。m文件

#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        NSString  *hello=@"object—c 你好";
        NSLog(@"%@",hello);
        
        Student *student=[[Student alloc] init];
        
        [student setName:@"郭靖"];
        
        [student setAge:20];
        
        [student show];
        
        [student name];
        
        student.name=@"黄蓉";
        
        NSLog(@"%@",student.name);
         
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐