黑马程序员------OC基础语法的使用
来源:互联网 发布:蜘蛛侠电影有哪些知乎 编辑:程序博客网 时间:2024/05/16 10:38
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
类的使用语法
在不改变原来类模型的前提下,给类扩充方法,除了可以利用继承特性设计一个子类外,还可以通过设置分类来完成。
分类的格式:
分类的声明:
@interface 类名(分类名称)
......
@end
分类的实现:
@implementation 类名(分类名称)
......
@end
示例1:
#import <Foundation/Foundation.h>
@interface Person : NSObject //类的申明
@property int age;
@property NSString *name;
@property double height;
- (void)run;
- (void)jump;
@end
@implementation Person //类的实现
- (void)run
{
NSLog(@"跑起来了");
}
- (void)jump
{
NSLog(@"跳起来了");
}
@end
@interface Person (Liyi) //声明Person的分类,取名为LiYi
- (void)shoot;//在分类中给Person扩充一个方法shoot
@end
@implementation Person(LiYi) // 类的实现
- (void)shoot//实现这个扩充的方法
{
NSLog(@"LiYi shoot");
}
@end
int main()
{
Person *per = [Person new];//创建一个Person对象
[per shoot]; //per调用分类中扩充的方法shoot
return 0;
}
该实例运行的结构为 LiYi shoot
使用类的好处
1、可以将一个大的类分为多模块的开发
2、多模块的开发有利益团队开发,提高效率。
例如:
模块一:
#import <Foundation/Foundation.h>
#import "Grab.h"
@interface Person : NSObject<Grab>
@property(nonatomic, strong)NSString *name;
@property(nonatomic, assign)int age;
@property(nonatomic, assign)int height;
- (void)jump;
- (void)run;
@end
模块二:
#import <Foundation/Foundation.h>
#import "Person.h"
int main() // 主函数的调用,分模块的调用
{
id<Grab> obj = [Person new];
[obj potholing];
return 0;
}
模块三:
#import "Person.h" // 声明的文件调用
@implementation Person //类的实现
- (void)jump
{
NSLog(@"跳跃");
}
- (void)run
{
NSLog(@"奔跑");
}
- (void)potholing
{
NSLog(@"开挖掘机挖坑");
}
@end
以上都是运用多分类模块,由主函数主类的调用
类的本质
其实类也是一个对象,是Class类型的对象,简称“类对象”。类就是以类对象的形式存储在内存中的。
+load方法:在程序启动的时候会加载所有的类和分类,并自动调用所有类和分类的+load方法,先加载父类再加载子类也就是先调用父
类的+load方法再调用子类的+load方法。此外先加载原始类再加载子类。不管程序运行过程中有没有用到这个类,都会调用+load加
载。
+initialize方法:在第一次使用某个类时(比如创建对象等),就会调用一次+initialize方法,一个类只会调用一次+initialize方
法,先调用父类的再调用子类的
获取类对象的方法:
方法1:
Class c = [Person class];
方法2:
Person *p = [Person new]; // 运用指针传地址
Class c = [p class];
简单的代码块的运用输出:
我们在打印输出某个类,通常会使用NSLog 函数来输出 和“%@”格式转换符,返回值一个整型,输出自己默认返回
#import <Foundation/Foundation.h>
int main()
{
int a = 5, b = 9;
int (^Sum)(int, int) = ^(int x, int y){
return x + y;
};
int sum = Sum(a, b);
NSLog(@"sum = %@", sum);
return 0;
}
示例13展示了代码块的简单应用,运行结果是:
sum = 14
- 黑马程序员------OC基础语法的使用
- 黑马程序员.............OC基础语法
- 黑马程序员-oc中点语法的使用
- 黑马程序员------OC基础-----基础语法总结
- 黑马程序员 _5 OC基础 简单语法
- 黑马程序员——OC基础语法
- 黑马程序员——OC基础语法
- 黑马程序员----OC基础--核心语法、关键字
- 黑马程序员——oc基础语法
- 黑马程序员 OC基础: 常用语法
- 黑马程序员-IOS基础之OC语法
- 黑马程序员-OC回顾-基础语法
- 黑马程序员-IOS-OC基础-OC简介及基本语法
- 黑马程序员-IOS-OC基础-OC简介及基本语法
- 黑马程序员-IOS-OC基础-OC特有语法
- 黑马程序员——OC基础---OC特有语法
- 黑马程序员-OC语言基础:OC特有语法
- 黑马程序员——OC基础——OC基本语法和面向对象的基本概念
- NoSQL开篇—为什么要使用NoSQL
- 图像平滑处理
- C#编程:网络连接状态的定时检测
- XMUT acdream DP专场
- PAT (Advanced Level) 1079. Total Sales of Supply Chain (25) 总叠加售价 BFS
- 黑马程序员------OC基础语法的使用
- 连载二———C语言篇
- 黑马程序员----java基础运算符选择结构总结
- 黑马程序员——Java基础---常见对象2
- 40个Java集合面试问题和答案
- Android获取手机分辨率 和屏幕的方向
- 设计模式在游戏中的应用--原型模式(六)
- iOS 显示HTML字符串
- 2015.07.29总结