【好程序员训练营】Objective-C学习笔记(类的声明)NO1

时间:2021-04-17 00:19:35

<A href="http://***/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!

 

一、OC中类的声明

  先在Xcode中新建一个类文件,命名为Dog.h,然后按以下格式进行类的声明

#import<Foundation/Foundation.h>        //相当于C中引入头文件

@interface Dog:NSObject{



}

@end

上面的代码中Dog后面的冒号表示继承,继承自基类NSObject,在类的声明中字段(相当于java中的属性)只能在左花括号和右花括号之间定义,消息(在Objective-C中把函数称作消息)只能在右花括号与@end之间定义。一般来讲,在类的OC中声明类时相当于java中定义一个接口。

 

二、类的实现

  新建类文件命名为Dog.m并在文件中键入以下代码

#import "Dog.h"                 //将新建的接口引入 

@implementation Dog         //实现Dog这个接口    

- (id) init{                           //复写初始化函数
    self = [super init];           //这一句的意思是把父类中的初始化函数赋给本类
        age = 20;
    }
    return self;
}


- (int) getage{                 //获取age
    return age;
}

- (int)setage:(int)newage{ //这个函数的名字叫setage: 第一个int是函数的返回值类型第二个int是形参newage的类型
  age = newage;
  return age;
}
@end

这样一来,我们就把一个接口实现了。也就是我们有Dog这么一个类了接下来就该创建对象。在上面的代码中函数前面的+、-分别代表类函数和实例函数,(id)id代表函数的返回值类型,可以为void、int、float等等

 

三、对象的创建与销毁

  创建对象-----》Dog  *dog = [Dog alloc];    //*dog相当于创建dog这么一个引用指向新建的小狗对象

  初始化构造函数--------》[dog init];

  销毁对象---------》[dog release];

 

四、函数的调用

  注意,Xcode判断是否为init方法规则:方法返回id,并且名字以init+大写字母开头+其他  为准则。例如:- (id) initWithXXX;

  否则在使用编译的时候会出现error:Cannot assign to 'self' outside of a method in the init family

  现在,假设我们已经在Dog类中建立了一个函数-(int)setage:(int)newage;

  调用-------》int x = [dog setage:23];     //调用dog对象的setage方法,把int型返回值赋给x