博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC学习笔记八 类2(代码部分)
阅读量:5786 次
发布时间:2019-06-18

本文共 2323 字,大约阅读时间需要 7 分钟。

  hot3.png

一.类的申明

//定义一个枚举值enum Color{    black,    white};typedef enum Color IColor;//声明类 用@inteface@interface Cat:NSObject //NSObject 是根类,有一些基本方法,比如创建对象的方法{    //定义属性    /*     注意:     1.属性一般用“_”开头     2.必须定义在大括号中     3.注意变量的作用域     */    @public    int _age;    IColor _color;}//定义行为必须写在@interface 和@end 之间,并且不能写在大括号之内/* 声明函数步骤 OC方法分为 类方法(+) 和 对象方法(-)  1.定义函数结构  2.是否有参数 3.是否有返回值  注意 1.声明类的行为必须在@interface 和@end 之间,并且不能写在大括号中 2.oc 方法中所有的数据类型都需要用括号括起来 3.如果没有形参用";"结束不用括号,应为 括号用于数据类型 4.如果是类方法用 + ,对象方(需要用实例来调用)法用 - 5.方法名命名规则 驼峰命名法 6.OC 方法中,每个参数对应一个冒号 7.冒号也是方法名的一部分 8.多个惨可以在冒号前加上标签,说明参数的作用,“说明”也是方法的一部分 */ //无参数 无返回值 -(void) walk;//无参数 有返回值-(int) getAge;//有参数 有返回值-(int) eat:(char *) food;//多个参数 主要空格-(void) eatFood:(char *) food andDrink:(char *) water;@end//声明结束

二.类的实现

/*@implementation 表示实现一个类@end 表示类实现结束@implementation 只有一个作用,就是实现@interface中声明的方法*/@implementation Cat     /*    实现方法    1.@implementation要显示 @interface 中声明的方法,名称一样,只需要在后面加上大括号    2.在括号中实现功能	    */	    //无参数 无返回值    -(int) walk    {        NSLog(@"cat walk");    }	    //无参数 有返回值    -(int) getAge;    {        //在OC对象中,直接通过名字访问成员变量        return _age;    }		    //有参数 无返回值    -(char *) eat:(char *) food    {        NSLog(@"%s",food);        return "ok";    }	    //多个参数    -(void) eatFood:(char *) food andDrink:(char *) water    {        NSLog("Food:%s Water:%s",food ,water);    }  @end

三 访问部分

int main(int argc, const char * argv[]){    //创建对象    /*     说明:     1.要创建对象,需要类继承NSObject类     2.要访问实例变量,需要把变量声明为@public 类型          创建对象前,首先在堆中创建类对象(存储对象方法 )      实例化对象 [Obj new]  [Cat new]时会做三件事:     1.在堆中开辟新的存储空间(有别于类对象的空间,是堆中的空间,new 一个 则开辟一个)     2.初始化成员变量(成员变量 在堆 中),给成员变量赋默认值,lsa(指针 指向 对象)     3.返回地址 指向堆地址的指针          Cat *cat 用于接收返回地址的指针,是个局部变量     局部变量会再栈中开辟空间,保存指向堆中指针          */              Cat *cat = [Cat new];        //访问属性 和C中指针访问方式一样    cat->_age=4;    cat->_color=white;    int age = cat->_age;    NSLog("age=%d",age);            //调用方法 用 "[]"    /*    调用方法 调用方法在oc 中有称为发送消息		    1.cat对象(栈中)在堆中找到las指针    2.las指针 找对 对应 类对象的方法    3.如果方法中有成员变量(类对象中不保持成员变量),方法会根据调用指针定位对应的对象的成员变量(堆中)    */		    //无参数 无返回值    [cat  walk];				    //无参数 有返回值    int age = [cat getAge];    NSLog(@"%d",age);				    //有参数 无返回值    [cat eat:"mouse"];				    //多个参数    [cat eatFood:"mouse" andDrink:"农夫山泉"];	       return 0;    }

转载于:https://my.oschina.net/wolx/blog/318740

你可能感兴趣的文章