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

来源:互联网 发布:asp数据库查询代码 编辑:程序博客网 时间:2024/06/05 19:02

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