从C语言角度看OC编程里类、类对象
来源:互联网 发布:win7无法更改网络位置 编辑:程序博客网 时间:2024/05/18 11:09
在c语言里面 每个变量、指针都有一个类型.
例如:int a;变量a 的类型为int
int *p; 指针变量p的类型为int *;
定义变量的形式:类型名 变量名
那么这个 类型名有什么用呢?
1、能访问内存的大小。
例如一般的在64位的苹果系统中int 占4个字节。
int a,表示a这个变量占4个字节。
所有当访问变量a的时候会访问4个字节。
2、如何解析数据。因为不同类型的数据在内存中的存储形式是不一样的。
例如在内存中有一个数据 000000000000101,如果类型是int 则解析出来的数据为5,若为float类型则解析出来的数据则不一定是5因为不同类型的数据存储的原则是不一样的。
定义一个结构体的过程其实就是在定义一种数据的类型,和int double float 等基本数据类型一样,只是基本数据类型是编译器定义好的,而为了满足描述更多现实中的信息,c语言里面运行我们自己定义自己的类型,因此有了结构体。
实际结构体就是描述对象的性质的集合。
在看一个结构体类型:
定义一个结构体struct student {
int age;
char name;
}
定义的一个结构体实际上是定义了一种数据类型名为struct student 的新类型,我们可以利用它来定义变量、指针等,例如:struct student stu1;struct student *p;
定义了变量stu1,该变量属于struct student类型,则它拥有了该类型里面的age 和name 属性。
在面向对象的语言中,和定义结构体一样定义了类,只是类里面不仅仅包括了属性,还把一些方法也包含进去了。可以将面向对象oc中的类理解为c语言中的结构体类名。
在oc里面定义类的形式为:
@interface 类名:父类
{
变量;
}
方法、属性声明等。
@end
先定义一个类:
@interface Animal :NSObject
{
int age;
nsstring *name;
}
-(void)method;
@end
在oc中定义一个类对象和在c语言里面定义一个结构体变量类似。
struct student stu;描述为定义了一个类型名为struct student 的stu变量。
Animal *dog;描述为定义了一个类为Animal 的dog类对象。
stu 可以拥有并可以访问struct student这种类型里面的变量。
dog 也拥有并可以访问Animal*这种类 里面的实例变量。
切记:在oc中所有的对象都是通过指针的形式来指向的。
在学习oc之前需要深入理解结构体,会对后面oc的学习有很大的帮助。
- 从C语言角度看OC编程里类、类对象
- 从汇编和底层的角度看c和类c语言
- 从汇编角度看C语言类型转换
- 从二进制的角度看类(Class)
- 从内存和对象的角度看C++类的静态…
- 从二进制的角度看对象
- 从语言层次的角度看为什么要精通C语言
- 从语言层次的角度看为什么要精通C语言
- 从封装的角度看OO编程
- 从编译器的角度看C代码
- OC-oc语言简介,类和对象
- OC语言 OC初识-类与对象
- C语言字符串转 OC NSString 类对象
- Objective-c:OC语言简介、类与对象
- C语言基础——从scanf()的角度看输入
- 从OOP的角度重看C++(二)——OOP的更多语言机制
- 从OOP的角度重看C++(三)——OOP的更多语言机制
- 从汇编语言角度看C语言代码,理解计算机如何工作
- IT成长
- Java虚拟机结构(一)
- 从Shortest Palindrome谈到Manacher和KMP算法
- 配置文件简单使用
- Jstl之核心标签库与格式标签库使用
- 从C语言角度看OC编程里类、类对象
- ZooKeeper多种方式安装
- Android学习笔记
- 项目管理实践教程一、工欲善其事,必先利其器【Basic Tools】
- 黑马程序员——oc和c的差异
- mysql cluster管理节点启动报错
- hadoop集群中增加节点
- 【BZOJ】1009 GT考试
- oc对象模型理解