一、OC概述
1.简介
OC是基于C,所以在代码上是完全兼容C的。在OC中,你可以使用C的语法,甚至C++的语法。
C是面向过程的语言,而OC是面向对象的语言。
2.关键字
OC中的关键字都以“@”开头。
如:@public、@string
二、面向对象
1.面向对象和面向过程
是考虑事情的2种不同思想。面向过程,考虑的是做事情需要哪些步骤,面向对象考虑的则是谁能做这些事。
就比如:我想打电话
面向过程:开机->找到通讯录->拨打号码
面向对象:找手机
2.OC中的面向对象
1)要想创建一个类的对象,必须先有该类的声明。在类的声明中,可以声明类的属性和方法。
2)然后,进行类的实现,主要就是对类中的方法进行实现。
3)创建类的对象,并赋值。需要用指针,在OC中,操作对象一定且只能用指针。
3.OC中的"[]"和”()“
1)在OC中,行为要使用”[]“。
如:创建对象:Person *p =[Person new];
调用方法:[p walk];
2)在OC中,”()“只能用于括住数据类型,不能乱用,更不能作为方法的后缀。
4.实例
#import <Foundation/Foundation.h> @interface Person : NSObject { @public double weight; int age; } - (void)walk; @end @implementation Person - (void)walk { NSLog(@"某人有%d岁,体重为%fkg,有走路的方法!",age,weight); } @end int main() { Person *p1 = [Person new]; p1->weight=89.2; p1->age=30; NSLog(@"年龄为%d,体重为%f",p1->age,p1->weight); [p1 walk];//指针对象向Person对象发送消息,调用方法,那么对象的属性也可以直接用 Person *p2 =[Person new]; p2->weight=90.2; p2->age =40; p1=p2; p1->age=50; [p2 walk]; return 0; }
解析:
1)类的声明
使用”@interface [email protected]“,且必须继承NSObject,由于该类位于Foundation框架中,所以必须导入该框架。
2)属性声明
使用"{}",可以使用@public关键字,在该关键字之后的属性都是共有的。
3)方法声明
必须严格遵守格式:
如:- (void)run;
如:- (void)eat;
4)类的实现
使用"@[email protected]"。
5)方法的实现
要想使用声明的方法,必须实现该方法。格式:
如:- (void)run{...}
6)创建对象和赋值
Person *p = [Person new];//新建一个指针对象,指向新建的Person对象
p->weight=120.8;//创建指针对象就是为了操作该对象,并赋值。
p->age=30;
7)调用类的方法
[p run];