Object-c初步学习 一

oc关键字@

1.新建Student.h文件  .h文件表示类的声明文件

#import

NS_ASSUME_NONNULL_BEGIN

//@interface 代表声明一个类使用@end结束, 在{}中声明成员变量
@interface Student: NSObject {
    int age;
    int no;
}

//- 表示声明动态方法 -类方法 ,类的实例才可以调用
//+ 表示声明静态方法,类名直接调用
- (id)initWithAge:(int)NewAge andNo:(int)newNo;
- (int)geAge;
- (void)setAge:(int)newAge;

@end

NS_ASSUME_NONNULL_END

2. 新建Student.m文件,类的实现文件

#import

#import "Student.h"

@implementation Student

- (int)geAge{
    return age;
}

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

//自定义构造方法
//- (Student *)initWithAge:(int)newAge andNo:(int)newNo{
- (id)initWithAge:(int)newAge andNo:(int)newNo{
    self = [super init];
    if(self){
        age = newAge;
        no = newNo;
    }
    return self;
}

- (NSString *)description{//打印类的信息,重写description方法,类似java的toString方法
    NSString *str= [[[NSString alloc] init] stringByAppendingFormat:@"age is %d",age];
    NSLog(@"run description");
    return str;
}

+ (int)test{
    //静态方法中的 self 代表类 student
    //动态方法中的self 代表类的实例
    [self init];
    return 1;
}

@end

3.使用Student类

#import
#import "Student.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        
//        Student *stu = [[Student alloc] init];//调用父类NSSObject的构造方法
//        [stu setAge:100];
        
//        Student *stu = [[Student alloc] initWithAge:80 andNo:20];//自定义的构造方法使用
        Student *stu = [Student new];//使用new关键字创建类
        [stu setAge:10];//调用方法
        
        NSLog(@"age is %i",stu.geAge);
        
        NSLog(@"stu is %@",stu);
    }
    return 0;
}

你可能感兴趣的:(objective-c)