OC和C的一些区别
Nslog会自动换行,会在输出时附加一些系统信息
```
/**
import的功能和include的功能一样
为了降低程序员的负担,防止重复导入,
OC给出来一个新的预处理指令impor
import优点:会自动防止重复拷贝
*/
#include
/*Foundation.h称为主头文件,
只需要导入主头文件就可以使用该工具箱中的所有工具
*/
#import
intmain(intargc,const char* argv[]) {
return0;
}
类与对象的关系
房子图纸->房子,也就是说想创建对象先创建类
例:
描述生活中的事物
(类名):Person(人)
属性:height,age
行为:run,sleep
oc中用类来描述事物也是如此
属性:对应类中的成员变量。
行为:对应勒种的成员方法
如何分析一个类
一般名词都是一个类
例
妹子穿了比基尼戴了墨镜,妹子一个类,比基尼是个类,墨镜是个类
妹子的属性:高矮胖瘦,是不是美女
妹子的行为:跑跳睡觉
比基尼的属性:三点式
比基尼的行为:遮挡私密
墨镜的属性:墨镜多大,镜片颜色
墨镜的行为:遮挡阳光
创建一个oc类
#import
/**
1.编写一个类
以@interface开头,以@end结尾,class name对应的地方写上
事物名称,也就是类名即可
注意:类名的首字符必须大写
声明一个类的目的就是为了告诉系统,我们这个类中有哪些属性和行为
oc类声明中属性只能写在@interface和@end{}中
注意:编写oc类属性的时候,建议将斯所有属性的名称前面都加上_下划线
*/
@interfaceComputer :NSObject
{
//默认情况下,oc中的属性不能直接访问
@public//只要让类中的属性公开,以后就可以直接通过一个指向结构体的指针来操作对象中的属性
float_model;
int_cpu;
double_size;
}
@end
/**
2.如何编写类的实现
以@implemtation开头,以@end结束,然后在class对应的地方写上声明时声明的类的名称,必须和声明的类名一模一样
*/
@implementationComputer
//行为的实现
@end
intmain(intargc,const char* argv[]) {
//如何通过一个类来创建对象
//在oc中想要通过一个类来创建一个对象,必须给类发送一个消息
//如何发送消息? 在oc中只要想要发送消息就先写上 【类名称/对象方法
方法名称】;
//发送什么消息(和c中的调方法意思一样)
/**
只要通过一个类调用类的new方法,也就是给类发送一个叫做new的消息之后系统内部就会做三件事
1.为Computer类创建出来得对象分配存储空间
2.初始化Computer类创建出来得对象中的属性
3.返回Computer类创建出来得对象对应的地址
*/
//通过一个Computer类型的指针接收了Computer对象的地址
//如果使用给一个指针保存了某一个对象的地址,那么我们就成这个指针位置为某个类型的对象
//利用Computer类型的指针保存了Computer对象的地址,那么我们就Computer类型指针p为Computer对象
Computer*com = [Computernew];
com->_cpu=2;
com->_size=2.333;
com->_model=3.33333;
NSLog(@"_cpu = %i \n
_size = %lf\n _model = %f\n",com->_cpu,com->_size,com->_model);
/**
_cpu = 2
_size = 2.333000
_model = 3.333330
*/
//oc中的类其实本质就是一个结构体,所以p这个指针其实就是指向了一个结构体
return0;
}
```