首页 > 代码库 > 【学习ios之路:Object-C】类与对象
【学习ios之路:Object-C】类与对象
1.面向对象和面向过程概念
1).面向过程
面向过程:以过程为核心,注重的是完成事件的详细步骤,一步一步如何实现.
2).面向对象
面向对象:以事物为核心,注重的是参与该事件的事物应该具备的功能.所以完成该事件只是事物所有功能中的一个功能.
2.类与对象
类: 类是具有相同特征以及行为的事物的抽象,它是一个抽象的概念,不具体.
对象: 类的实例.类的具体体现.生活中的万物都是对象.
3.OO与OOP
OO:(Object Oritented)面向对象
OOP:(Object Oriented Programming)
4.@是OC标志
NSLog(@"%hello World");//输出的目的是为了验证.
5.如何创建对象
1.开辟空间(堆区)
例:Person *p = [Person alloc];//开辟空间, +号方法,类方法.
//+(id)alloc; //id等同于void *,泛型,可以代表所有的对象.
//因为p存储着对象堆区空间的地址,所有间接把p叫做对象,但是本质还是指针变量.
2.初始化
即: p = [p init]; //初始化,nil null 0
6.OC中方法的调用形式: 消息发送机制
[receiver message];
1.+号方法 类方法
2.-号方法 对象方法(实例方法)
例如:
Car *car = [[Car alloc] init]; [car run];//run();函数
7.类的定义
* 类的定义分为两部分:1.接口部分(.h文件中)2.实现部门(.m文件中)
* 接口部分: 以 @interface 开头 + 类型 : (冒号表示继承) 父类名 @end 作为结束
* 类的接口部分的内容必须写在 @interface 与 @end 之间.
* 类的实现主要是方法的实现.
* 类的接口部分提供实例变量以及方法的声明
* 类的本质就是自定义的一种数据类型.
例如:1).Student.h声明文件
@interface Student : NSObject { @public NSString *_name;//姓名 NSInteger _age;//年龄 NSInteger _num;//学号 NSString *_glass; //班级 //实例变量一定要写在大括号之内,而且大括号之内也只能写实例变量. //对应类的特征,实例变量(等同结构体的结构体成员) } - (void)study;//方法名:study - (void)message:(NSString *)name1;//无返回值,有一个参数,参数类型NSString *类型//方法名 sumValueWithA: withB: withC:- (NSInteger)sumValueWithA:(NSInteger)a withB:(NSInteger)b withC:(NSInteger)c; - (NSInteger)maxGBWithA:(NSInteger)a withB:(NSInteger)b;//方法名 maxGBWithA: withB: @end
2).Student.m实现文件.
* 类的实现部分: 以@implementation 开头 + 实现类名 @end 作为实现部分的结束.
* 类的实现代码 必须卸载 @implementation 与@end 之间才有效.
@implementation Student - (void)study { NSLog(@"学习去!"); } - (NSInteger)moneyValueWithA:(NSInteger)a withB:(NSInteger)b { return a * b; } - (void)message:(NSString *)name1 { NSString *s = name1; NSLog(@"%@",s); }//最小公倍数- (NSInteger)maxGBWithA:(NSInteger)a withB:(NSInteger)b { //存储a,b的值 NSInteger tempA = a; NSInteger tempB = b; NSInteger rem = a % b; while(rem != 0) { a = b; b = rem; rem = a % b; } return (tempA * tempB) / b;} @end3). main函数实现.
Student *stu = [[Student alloc] init]; [stu study]; NSInteger mon = [stu moneyValueWithA:10 withB:20]; NSLog(@"%ld", mon); [stu message:@"asdf"];
注:
代码规范:
1.类名:有英文单词组成,每个单词的首字母大写,不能出现数字,更不能出现拼音.
2.实例变量: 有英文单词组成,除了第一个单词的首字母小写以外,其他单词首字母大写.
3.一般情况下一对一,h和m文件中定义一个类.
【学习ios之路:Object-C】类与对象