黑马程序员技术交流社区
标题: 学了一天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 |