zoukankan      html  css  js  c++  java
  • Object-C中的类-类的声明

    1.关键字命名:为了避免与已有的c,C++关键字冲突,ObjectC关键字都有@开始:
    如:@classs,@interface,@private,@try,@catch,@protocol等。 

    2.oc类分为2个文件,一个是.h文件,一个是.m文件:
    .h文件:存放类,函数的申明;类申明使用关键字@interface @end来申明;
    .m文件:存放类的具体实现;类实现使用关键字@implementation @end来实现; 

    3.对象的方法和类的方法:
    +表示类的方法;
    -表示对象的方法 

    4.类的申明 Dog.h:
    #import<Foundation/Foundation.h>
    @interface Dog:NSObject{

    }
    @end 

    5.类的实现 Dog.m:
    #import "Dog.h"
    @implementation Dog 

    @end 

    6.创建和销毁OC对象:
    创建对象:Dog *dog=[Dog alloc];//申明对象必须要带*号,即代表指针,也代表引用
    初始化:[dog init];
    销毁对象:[dog release]; 

    7.类中的字段和函数:
    @interface Dog:NSObject

    {

       //字段定义在此 
       int age; 
    }  
    //函数定义在此:OC的函数全部是public类型的,可以用其他方式实现私有函数
    -(void)setAge:(int)newAge;
    @end
     
    8.完整实例:
    //Dog.h 类申明文件
    #import<Foundation/Foundation.h>
    @interface Dog:NSObject{
       int age;
    }
    -(id)init;
    -(id)initWidthAge:(int)newAge;
    -(int)getAge;
    -(void)setAge:(int)newAge; 
    @end 
    
    
    //Dog.m 类的实现
    #import "Dog.h"
    @implementation Dog
    -(id)init{
      return [self initWithAge:10];
    }
    -(id)initWithAge:(int)newAge{
      self=[super init];
       if(self){
         age=newAge;
       }
       return self;
    }
    -(int)getAge{
       return age;
    }
    -(void)setAge:(int)newAge{
       age=newAge;
    } 
    @end 


  • 相关阅读:
    深度学习中常见问题
    freespace
    跑superpixel的程序
    python处理图片的一些操作
    跑edgebox
    tensorflow安装
    matlab启动
    stixel 理解
    stixel-world跑在kitti数据集
    小议中国人的乡土情结
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3618406.html
Copyright © 2011-2022 走看看