定义OC中的类
2016-05-26 11:26
323 查看
//为了能使用NSObject #import <Foundation/Foundation.h> // 设计一个车类 //@implementation 和 @end 之间定义类 {}中间只能写属性,不能写方法,其为类的成员变量 //NSObject:让Car这个类具备创建对象的能力 @implementation Car:NSObject { //@public:让对象的属性可以被外面的指针访问。public后面的成员变量都为公有,和java不同,java必须在每个成员变量之前单独设置; @public int wheels; int speed; } //在@end前面,{}后面写行为(方法) //给Car对象增加一个方法. 必须以-开头 -(void)run { //车子对象内部的属性直接用属性行为 NSLog(@"速度为%i的%i个轮子的车跑起来了!",speed,wheels); } @end int main() { //在OC中想执行一些行为,首先写个[行为执行者 行为名称] //利用Car这个类,执行创建(new)车子的行为 //new 行为执行完毕,会返回这个对象的地址,对象的地址只能用该类型的指针变量来表示:Car *c Car *c =[Car new]; //给C指向的车子对象的wheels属性赋值 //因为创建属性的时候,属性默认为私有(Private),所有这时候必须设置成员变量属性为Public c->speed = 300; c->wheels = 4; //让内存的车子对象执行run行为 //给指针变量c指向的对象发送一条run消息。让这个对象执行这个run行为。接收消息的对象称为消息接收者; [c run]; //这时候内存又会复制一个Car对象,对象在内存中依旧包括成员变量(wheels=0和speed=0属性)和方法列表(run方法),只是这时候指向类的指针变量变为C2,c2将成员变量的speed更改为400,将wheels属性更改为2 Car *c2 =[Car new]; c2->speed = 400; c2->wheels = 2; [c2 run]; }
如果外部调用类的内部属性,而内部属性的属性未设为public的时候将会出现下面的错误:
程序正常运行:
相关文章推荐
- tomcat参数调优
- 内网IP地址如何做远程监控
- 通过Spring LocalVariableTableParameterNameDiscoverer 获取方法参数名
- Android - ContentProvider机制
- java 获取浏览器参数方法
- JDBC连接之InforMix数据库
- 五星填数--回溯
- 取得缓存表数据两种方法
- tomcat参数调优
- mac 下用 brew 安装mongodb
- 导航栏返回按钮的定制
- 合并有序数组
- 我搬家了
- 使用AES时出现 Illegal key size or default parameters 时的解决办法
- 加载动画生成网站
- JAVA温习:Hibernate六大核心接口,两个主要配置文件
- JS设计模式之构造函数模式
- junit单元测试工具类
- Android - Broadcast机制
- Android如何解析json数组对象