【练习】OC语法的简单复习

时间:2022-02-24 11:22:18

本次主要是根据视频的流程对过去学习的内容进行一个简单的复习。

1.首先创建1个类Student。

  【.h文件】

 1 //
 2 //  Student.h
 3 //  飘柔
 4 //
 5 //  Created by 裴烨烽 on 14-1-25.
 6 //  Copyright (c) 2014年 裴烨烽. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 
11 @interface Student : NSObject
12 {//默认是protected 代表是她和她的子类可以访问
13     int _age;
14 }
15 
16 
17 -(void)setAge:(int)newAge;
18 -(int)age;
19 
20 
21 //-(Student *)initWithAge:(int)newAge;
22 //任何指针都可以用id来代替
23 -(id)initWithAge:(int)newAge;
24 
25 
26 @end

 

【.m】文件

 1 //
 2 //  Student.m
 3 //  飘柔
 4 //
 5 //  Created by 裴烨烽 on 14-1-25.
 6 //  Copyright (c) 2014年 裴烨烽. All rights reserved.
 7 //
 8 
 9 #import "Student.h"
10 
11 @implementation Student
12 
13 -(void)setAge:(int)newAge{
14     _age=newAge;
15 }
16 
17 -(int)age{
18     return _age;//参数一般都要再前面加一个下划线_ 19 }
20 
21 -(id)initWithAge:(int)newAge{
22     self=[super init];
23     if(self)
24     {
25         _age=newAge;
26     }
27     return self;
28 }
29 
30 @end

 

  【main()】

 1 //
 2 //  main.m
 3 //  飘柔
 4 //
 5 //  Created by 裴烨烽 on 14-1-25.
 6 //  Copyright (c) 2014年 裴烨烽. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 #import "Student.h"
11 //这里的是c语言里的表现方法,因为oc中动态方法会有-号
12 int main(int argc, const char * argv[])
13 {
14 
15     @autoreleasepool {
16 
17         
18         
19       Student *stu= [[Student alloc] initWithAge:10];
20         //通过创建一个new方法来创建一个实例,也就是说上面这句和下面这句等同。
21         Student *stu=[Student new];   // Student *stu= [[Student alloc] init]等同;
22         stu.age=11;  //.age不是直接访问成员变量,所以会把成员变量千加下划线_
23         //上面这句和下面这句等同
24         //[stu age]
25         
26         
27         
28         NSLog(@"age is %i",stu.age);
29         
30         //为了不内存泄露,就得内存释放
31         [stu release]  【由于Xcode版本问题,这里不允许手动释放】
32         
33         
34         
35     }
36     return 0;
37 }