ObjectiveC1基础代码——类和对象

//

//  main.m

//  ObjectiveC1

//

 

 

//  Created by scjy on 15/10/30.

//  Copyright © 2015年 lizhipeng. All rights reserved.

//

 

#import <Foundation/Foundation.h>

//引入头文件(也就是类的.h文件,不能引入.m文件)

#import "person.h"

#import "Dinosaur.h"

 

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //*********     oc第一讲       ***********//

        //类和对象

        //面向对象的核心是 类 和 对象。

        //类:具有相同特征和行为的事物的抽象。特征,行为

        //器官

            //特性:长在人身上;

            //行为:保证人体的正常生活;

        //人

        //特性:白种人、黑种人、黄种人

        //行为:会说会笑会吃饭,会跑会跳会学习。会穿衣会打扮会呼吸,会选择会欣赏会杀生。

        

        //oc中类的定义(定义类分为两个部分)

        //.h接口部分(头文件):对外声明类的特征和行为(说明书)

        //.m实现部分(文件):对内实现类的行为

        //接口部分标志:@interface

        

        //类是模板,对象是具体表现,任何对象需要占用内存空间

        //创建对象分两步:分配内存空间和初始化。

        //分配内存空间:根据类中声明的实例变量为对象分配内存,将所有实例变量置为默认值0,并返回首地址person *p = [person alloc];

        //初始化:为对象的实例变量设置初始值 p = [p init];

        

        //创建对象

        //+(id)alloc:表示这个方法属于类,只能类执行。id返回值类型,表示任意类型的对象,即创建好的对象。

        //-(id)init:表示这个方法属于对象,只能对象执行。id返回值类型,表示初始化完成的对象。

        /*

         -(id)init

         {

         _age = 18;

        return self;

         }

        */

        //指针储存对象的首地址,代指对象。

        //1.[[person alloc]init]返回值是对象的首地址,即对象。

        //2.p是跟对象同类型的指针变量,储存对象首地址,代指对象。

        

        //创建对象或实例化对象

        //person *xiaoming =[person alloc];分配内存空间

        //person *xiaoming =[person init];给成员变量赋值

        person *xiaoming =[[person alloc]init];

        //成员变量赋值用

        xiaoming->_name =@"小米摩纳哥";

        xiaoming->_sex =@"男";

        xiaoming->_age =100;

        xiaoming->_height =30;

        xiaoming->_hobby =@"学习";

       

        

        //使用对象,打招呼

        [xiaoming eat];

        [xiaoming sleep];

        [xiaoming teach];

        [xiaoming sayHellow];

        

        person *zhangsan =[[person alloc]init];

        [zhangsan eat];

        [zhangsan sayHellow];

        

        Dinosaur *konglong = [[Dinosaur alloc]init];

//        konglong->_name =@"恐龙";

        [konglong speak];

        

        //实例变量操作

        //实例变量区分可见度,常见的有三种。

        //其一为@public(公开的)

        //@protected(受保护的,默认的)

        //@pritave(私有的)

        

        

        

    }

    return 0;

}

 

posted @ 2015-11-02 18:08  朝阳向上  阅读(112)  评论(0编辑  收藏  举报