Object-c------类的声明与实现以及注意事项

来源:互联网 发布:剑灵捏脸数据导入图 编辑:程序博客网 时间:2024/05/18 01:28
/* 类名:car 属性:轮胎个数、时速(速度) 行为:跑 */#import <Foundation/Foundation.h>//完整地写一个类:类的声明和实现(期间不允许发生嵌套)//             声明必须放在前面,实现可以放在后面//1. 类的声明//  声明对象的属性、行为//  : NSObject目的是:让Car这个类具备创建对象的能力@interface Car : NSObject{    //用来声明对象属性(实例变量\成员变量, 默认为0)    //@public可以让外部的指针间接访问对象内部的成员变量    //不允许在声明的时候初始化    //不能随便将成员变量当作c语言中的变量    @public    int wheels; //轮胎个数    int speed;  //时速}//方法(行为)声明 : 方法名、参数、返回值//只要是OC对象的方法:必须以减号 - 开头//OC方法中任何数据类型都必须用小括号()括住//OC方法中的小括号():括住数据类型- (void) run;- (void) walk;- (void) jiasu:(int)jspeed;- (void)piaoyijiaspeed:(int) jiaspeed jianspeed : (int) jianspeed;@end//2. 类的实现@implementation Car// 方法的实现(说清楚方法里面有什么代码)- (void) run{    NSLog(@"%i个轮子, %i速度的车子跑起来了", wheels, speed);}//方法名:walk- (void)walk{    NSLog(@"%i个轮子, %i速度的车子慢下来了", wheels, speed);}//OC方法中一个参数对应一个冒号,多个参数之间要有空格//方法名:jiasu:  (冒号也算在方法名之内)- (void) jiasu:(int)jspeed{    speed += jspeed;}//冒号前加一些描述信息//这样可以使程序的可读性提高//方法名:piaoyijiaspeed:jianspeed:- (void)piaoyijiaspeed:(int) jiaspeed jianspeed : (int) jianspeed{    speed += jiaspeed;    speed -= jianspeed;}@end//函数void test (Car *newC){    newC->wheels = 6;}/* 方法和函数的区别: 1.对象方法都是以减号 - 开头 2.对象方法的声明必须写在@interface和@end之间   对象方法的实现必须写在@implementation和@end之间 3.对象方法只能又对象调用 4.函数能写在文件中的任一位置,函数归文件所有 5.函数调用是不依赖于对象 6.函数内部不能直接通过成员变量名访问某个对象的成员变量 */int main(){    //在OC中,想执行一些行为,就写上一个中括号[行为执行者  行为名称 ]    //利用类来创建对象    //执行了Car这个类的new行为来创建新对象    //定义类一个指针变量p, p将来指向的Car类型的对象    //[Car new]会创建出一个新对象,并且会返回新对象本身(新对象的地址)    //在使用类创建对象之前,会将类加载进内存,而且只会加载一次    Car *p = [Car new];    Car *p2 = [Car new];    //匿名对象 对内存管理是不合理的,只需要看懂就可以    [Car new]->speed = 300;    [[Car new] run];    //给p所指向对象的wheels属性赋值    p->wheels = 4;    p->speed = 250;    p2->wheels = 5;    p2->speed = 300;    //函数    test(p2);    //给p所指向对象发送一个run消息    [p jiasu:10];    [p2 piaoyijiaspeed:10 jianspeed:20];    [p run];    [p walk];    [p2 run];    //NSLog(@"The car's wheels is %i, speed is %i", p->wheels , p2->speed);    return 0;}
0 0