iOS 基础 第一天(0804)

时间:2016-01-09 18:18:04   收藏:0   阅读:296

OC对象的本质就是一个结构体

为什么说是个结构体?

例如:类里面声明了几个成员变量\实例变量(已添加@plublic),外部对象的指针在访问这个变量的时候是这么写的p->a


0804

注意oc的全称拼写:Objective-C

Mac终端Terminal的一些命令

下面是具体的情况

技术分享


NSLog输出的内容会自动换行

#import有两个作用
  1. 跟#include一样,拷贝文件内容
  2. 可以自动防止文件的内容被重复拷贝。例如导入同一个头文件多次,只在第一次生效,多写的那部分无效.

使用一个框架只需要将其的主头文件.h导入即可.主头文件的名称和框架的名称一样.例如:#import<Foundation/Foundation.h>

面向过程和面向对象的区别

以修电脑为例:面向过程是要知道怎么修电脑,第一步干什么第二步干什么等等。而面向对象就是直接去找修电脑的人,这个人就是一个对象。面向对象不用关心这个修电脑的人怎么修的,面向过程就要知道怎么修电脑.


类和对象

类名和函数名第一个字母大写.方法名和变量名第一个字母小写.

函数和类

如果一个类具备创建对象的能力,则该类需要继承自NSObject

1、类的声明,用来声明对象的属性和方法

@interface Car : NSObject

{

在这中间写的是成员变量\实例变量.如果不加@public的话,外界是不能通过对象指针p->访问的.链接会报错

}

@end

问题现象如下图:

技术分享

一般都这么写:

技术分享

2、类的实现

@implementation Car

#end


oc中的括号()有两个用途
  1. 用来括住数据类型
  2. 用来将int、float或者double的c语言类型的变量的值转换为oc对象的NSNumber

每个对象内部都会有一个isa指针,这个指针指向了对象所属的类.这个指针大小是8个字节。(这个isa指针实际上是NSObject的一个成员变量)而对每个类来说,每个类里面都有一个superClass指针,指向自己的父类

如下图所示:

技术分享

技术分享

技术分享

从上图可以看出,成员变量是属于对象的,对象内存里除了isa指针就是成员变量.但方法是属于类的,对象可以共用类里面的方法

一个可能的面试题:试着从内存的角度解释一个对象是如何知道自己有哪些成员变量有哪些对象方法的

答:一个类在实例化一个对象的时候就为其在内存中分配了内存地址及内存空间。对象的内存空间里包含两部分,一个是isa指针,一个是对象的成员变量.成员变量是属于对象的,在分配内存的时候就将对象所具有的变量分配到的对象内存中.这样对象就知道了自己有哪些成员变量.而isa指针8个字节,指向了对象所属的类,方法是属于类的.通过isa指针对象就知道了自己有哪些对象方法可以执行.


方法和函数的区别

原文:http://www.cnblogs.com/lyandy/p/5116784.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!