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

既学习笔记一  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 

@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 
#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;
}







你可能感兴趣的:(Object-C)