【学习ios之路:Objective-C】类与对象
来源:互联网 发布:装修报价软件 编辑:程序博客网 时间:2024/05/16 18:17
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之路:Objective-C】类与对象
- 1.类与对象之objective-c
- 1.类与对象之objective-c
- 【黑马程序员】iOS学习之路——Objective-C之面向对象
- iOS学习笔记56(Runtime)- Objective-C Runtime 运行时之一:类与对象
- 【IOS 开发学习总结-OC-18】★★objective-c面向对象之——OC的包装类与对象处理
- iOS学习笔记-Objective-C-类和对象
- IOS开发之路-Objective-C 面向对象编程基础
- 【IOS 开发学习总结-OC-12】★objective-c面向对象之——合成存取方法与点语法
- 【IOS 开发学习总结-OC-19】★★objective-c面向对象之——类别与扩展
- 【iOS开发之Objective-C】初始化对象
- 【IOS 开发学习总结-OC-8.1】★★ objective-c面向对象之——类和对象(上)
- 【IOS 开发学习总结-OC-8.2】★★ objective-c面向对象之——类和对象(下)
- Objective-c 对象与类
- 【IOS 开发学习总结-OC-15】objective-c面向对象之——对象初始化
- 【Objective-C学习笔记】基本语法、类与对象
- Objective-C 学习笔记(1)——类与对象
- Objective-C研究之Object对象学习
- GUI运用2
- unity之GUI基础(二)
- Linux下C语言连接MySQL找不到mysql.h解决办法
- 【简单粗暴】建立Java的Log4j 日志打印工具
- Android SDK Manager 下载SDK失败的解决办法
- 【学习ios之路:Objective-C】类与对象
- 遗传算法
- 对c语言指针的理解
- ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
- Eclipse调试:改变颜色, 背景与字体大小 和xml字体调整
- 系统的制作和飞机大战的完善
- FlashDevelop在非默认浏览器中运行flash
- LINQPad
- avplayer 分析