黑马程序员——类与对象

来源:互联网 发布:送男朋友什么礼物知乎 编辑:程序博客网 时间:2024/05/22 15:50
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
 
1、类的设计
类有三个步骤:类名、属性、行为(功能)
类的设计:类名首字母必须大写,不能有下划线,而且多个英文单词用驼峰标识。

如:(1)植物大战僵尸

 *类名:Zoombie(僵尸)
 *属性:life(生命值)、speed(速度)、gongjil(攻击力)
 *行为:walk(走)、bite(咬)、die(死)

    (2)雷电的飞机

 *类名:Plane
 *属性:life(生命值)、speed(速度)、gongjil(攻击力)、bomcount(炮弹数)
 *行为:fly(飞)、bomb(爆炸)、die(死)

    所以,哪个对象最清楚这个行为,就把这个行为写到哪个对象中去。

2、类的声明和实现
类名:Car
属性:轮胎个数,时速
行为:跑

#inport<Foundation/Foundation.h>//声明@interface Car :NSObject{ //声明对象属性 @public int wheels; int speed;}//方法:方法名,参数,返回值//只要是OC对象的方法,必须以减号-开头//OC方法中任意数据类型都需用括号()括住-(void)run;@end//实现@implementation Car//方法的实现-(void)run{ NSLog(@"车子跑起来了"); }@endint main(){ //在OC中,想执行一些行为就写上一个中括号[] //利用类创建对象 //执行Car这个类的new行为来创建新对象,并且会返回新对象本身 //定义指针变量p,指向Car类型的对象 Car *p = [Car new];  //p指向对象的wheels属性赋值 p->wheels = 4;  //p指向对象的speed属性赋值 p->speed = 250;  NSLog(@"车子有%d个轮子,时速是%dkm\h",p->wheels,p->speed); //给p指向的对象发送run消息 [p run];}


 

输出结果:车子有4个轮子,时速是250km\h
   车子跑起来了

3、类Person的设计

类名:Person
//成员变量(实例变量)
属性:体重,年龄
行为(方法):走路

#inport<Foundation/Foundation.h>//声明@interface Person :NSObject{ //声明对象属性 @public int age double weight;}//方法:方法名,参数,返回值//只要是OC对象的方法,必须以减号-开头//OC方法中任意数据类型都需用括号()括住-(void)walk;@end//实现@implementation Person//方法的实现-(void)walk{ NSLog(@"%d岁%f公斤的人走了一段路"); }@endint main(){ //在OC中,想执行一些行为就写上一个中括号[] //利用类创建对象 //执行Person这个类的new行为来创建新对象,并且会返回新对象本身 //定义指针变量p,指向Person类型的对象 Person *p = [Person new];  //p指向对象的age属性赋值 p->age =14;  //p指向对象的weight属性赋值 p->weight = 50.0;  //给p指向的对象发送walk消息 Person *p1 = [Person new];  p1->age =20; p1->weight = 45.0;  p = p1; p->age = 40; [p1 walk];}


 

输出结果:40岁45公斤的人走了一段路

总结:
    当第一次调用类[Person new]时,所以,将类加载进内存。
所以,实际上创建对象之前会有存储空间分给类(类中只有方法列表)。
且每个对象内部默认有一个指针isa,这个指针指向类。
    方法列表是各对象一起使用的。

0 0