美文网首页
第一个oc对象

第一个oc对象

作者: 孙国庆 | 来源:发表于2015-05-28 19:29 被阅读23次

//
// main.m
// 01-第一个oc类
//
// Created by zhaokai on 15/4/29.
// Copyright (c) 2015年 zhaokai. All rights reserved.
//

/**
//描述一个类
名字:首字母大写,其他的遵循驼峰原则(GoodPerson)
属性:最好以_开头,其他的遵循驼峰原则
行为(方法):遵守驼峰原则

//人
名字:Person
属性:身高(_height) 年龄(_age)
行为:跑(run)

//车
名字:Car
属性:轮子(_wheel) 颜色(_color)
行为:跑(run)

//苹果手机
名字:Iphone
属性:颜色(_color) 型号:(_model)
行为:打电话(callPhone) 发信息(sendMessage)

对比c语言的函数
要实现函数的声明和函数的定义
实现类的声明和定义

*/

//类的声明

//写一个枚举,表示手机的颜色 typedef给枚举起一个别名
typedef enum{
IphoneColorWithWhite = 1,//枚举的第一个元素最好不要从零开始
IphoneColorWithBlack,
IphoneColorWithTuHaoJin
}IphoneColor;

//注意:NSObject的作用:使类拥有创建对象的能力
@interface Iphone : NSObject//类名
//写属性的声明
{
//注意:属性的声明必须放在{}里面
@public //使在类的外部可以调用类的成员变量
int _model;//型号
IphoneColor _color;//颜色
}

//方法的声明 放在{}的后面 @end的前面 暂时先不写

@end//声明的结束,不可以省略

//类的实现
@implementation Iphone//类名

//写方法的实现
//注意:实现当中只能写自己的声明中的方法的实现(定义)

@end

import <Foundation/Foundation.h>

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

//自动释放池
@autoreleasepool {
    
    //创建一个具体的Iphone类的对象
    
    //注意:要想让类或对象去做一些事情,必须这样写[方法的调用者  方法名称]  也可以这样写[对象/类名  方法列表]
    
    //方法分类:通过对象调用的方法叫对象方法
    //通过类名调用的方法叫类方法

// [Iphone new];//创建一个对象

    /**
     new方法做的事情
     1.开辟一块存储空间
     2.初始化成员变量(简单数据类型会初始化成0)
     3.返回当前空间的地址
     */

// NSObject *
//用IPhone类型的指针保存Iphone类的对象
//注意:在oc中创建的每个类都可以看做一个新的数据类型

    //一般我们习惯上将iphone1当做后面的Iphone对象
    //实际上iphone1是一个对象指针
    
    //iphone1是一个局部变量
    //局部变量是相对于全局变量的  成员变量是类的属性的固有称呼
    Iphone * iphone1 = [Iphone new];
    
    //给对象赋值
    
    struct Student {
        int _age;
    };
    
    struct Student mystudent = {3};
    
    struct Student *studentP = &mystudent;
    
    studentP->_age = 6;
    
    //oc中给对象赋值与结构体类似
    
    iphone1->_model = 5;
    iphone1->_color = IphoneColorWithBlack;

// printf("%i",a);
NSLog(@"%i",iphone1->_model);

    //创建第二个Iphone类的对象
    Iphone *iphone2 = [Iphone new];
    
    iphone2->_color = IphoneColorWithTuHaoJin;
    iphone2->_model = 4;
    
    NSLog(@"iphone2->_model:%i",iphone2->_model);
    
    
    //总结:一个类可以创建多个对象,对象之间互不影响
    //方法只能通过对象指针/类名调用,不可以直接使用
    
    
    // insert code here...
    NSLog(@"Hello, World!");
    
}
return 0;

}

相关文章

  • OC

    了解OC/第一个OC程序/第一个面向对象程序的执行步骤1.程序语言分类: a.面向过程C (细节) b.面向对象O...

  • OC 与 Swift

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • OC对象的本质(中)—— OC对象的种类

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • OC对象的本质(下)—— 详解isa&supercl

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • weak和assign的区别

    1、weak OC对象 2、assign 基本数据对象 OC对象 3、strong OC对象 4、copy NSS...

  • iOS OC对象的本质

    先来一张OC对象的关系图 oc对象关系图 1、oc对象包括instance对象、class对象、metaclass...

  • OC对象的本质(上)

    iOS | OC对象本质 | Objective-C 什么是OC语言,OC对象、类的本质是什么,OC对象的内存布局...

  • OC对象的本质<二> 实例对象,类对象,元类对象

    OC对象的本质<一> OC对象的分类 OC对象可以分为三类,分别是实例对象,类对象,元类对象。 实例对象(inst...

  • iOS JSON 数据解析

    (1)JSON数据->OC对象(反序列化) (2)OC对象->JSON对象(序列化) (3)OC对象和JSON数据...

  • Foundation对象与CoreFoundation对象的区别

    Foundation对象与CoreFoundation对象的区别 Foundation对象是OC对象,使用OC语言...

网友评论

      本文标题:第一个oc对象

      本文链接:https://www.haomeiwen.com/subject/bmirqttx.html