黑马程序员技术交流社区

标题: 学了一天OC,知道了类,总感觉跟结构体很像.然后写点东西; [打印本页]

作者: foolishlovepig    时间: 2016-1-5 20:49
标题: 学了一天OC,知道了类,总感觉跟结构体很像.然后写点东西;

#import <Foundation/Foundation.h>
//  main.m
//  总结:类与结构体的区别
//
//  Created by 晓 &zerone on 16/1/5.
//  Copyright © 2016年 xiao. All rights reserved.
//

//1.相同点
//都是将多个数据封装为一个整体.例如:
//结构体
struct Birthday{

    int month;

    int day;
};
//类
@interface Birthday :NSObject
{
    int month;

    int day
}

@end


//2.不同点
//1.结构体只能封装数据,而类还可以封装行为;
//2.它们分配的空间不一样,结构体的变量在栈空间(当然你硬要说还有常量的情况我也无言以对),而类是的对象(注意的它的名称)分配在堆空间;
//{
//    栈堆的区别:我现在只知道栈更小,数据访问运行效率更快;堆更大,数据访问运行效率没栈快(当然你要是说存个很大的数据在栈区,然后跟存在堆中进行对比,我也没办法)
//}
//3.就是赋值的问题:结构体是复制,类的对象是传地址;
//例如:
//结构体
struct Birthday bir1 = {2,28};
struct Birthday bir2 = bir1;

//类
Birthday *bir1 = [Birthday new];

Birthday *bir2 = [Birthday new];

bir2=bir1;


作者: foolishlovepig    时间: 2016-1-5 20:51
因为XCODE背景的关系,好多看不到,重新发一次!

#import <Foundation/Foundation.h>
//  main.m
//  总结:类与结构体的区别
//
//  Created by 晓 &zerone on 16/1/5.
//  Copyright © 2016年 xiao. All rights reserved.
//

//1.相同点
//都是将多个数据封装为一个整体.例如:
//结构体
struct Birthday{
   
    int month;
   
    int day;
};
//类
@interface Birthday :NSObject
{
    int month;
   
    int day
}

@end


//2.不同点
//1.结构体只能封装数据,而类还可以封装行为;
//2.它们分配的空间不一样,结构体的变量在栈空间(当然你硬要说还有常量的情况我也无言以对),而类是的对象(注意的它的名称)分配在堆空间;
//{
//    栈堆的区别:我现在只知道栈更小,数据访问运行效率更快;堆更大,数据访问运行效率没栈快(当然你要是说存个很大的数据在栈区,然后跟存在堆中进行对比,我也没办法)
//}
//3.就是赋值的问题:结构体是复制,类的对象是传地址;
//例如:
//结构体
struct Birthday bir1 = {2,28};
struct Birthday bir2 = bir1;

//类
Birthday *bir1 = [Birthday new];

Birthday *bir2 = [Birthday new];

bir2=bir1;


作者: 603285468    时间: 2016-1-5 22:56
理解很到位嘛!!加油!!
作者: 海棠依旧2046    时间: 2016-1-5 23:19
如今是雾里看花水中望月,希望柳暗花明早一天到来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2