Objective-c第一课,OC的面向对象
来源:互联网 发布:java 泛型 t e k v 编辑:程序博客网 时间:2024/05/18 00:47
之前基本上搞Android,边学习边做东西,这学期有幸加入到了一个苹果实验室,有个同年级IT大佬教我们开发ios的基本知识。想起之前有个研究生给我们就业指导是说
“学移动端开发,就要先学IOS,要是一上来就搞Android基本上就是废了。”
大概就是这个意思,我也不知道为何发此感叹。不过确实搞移动端开发,怎么只能偏向一科呢?
今天大概学了OC的第一个基础知识:面向对象。(无奈,笔记本win系统,没装开发工具,先不贴图了,全是无聊的文字)
OC和基本上所有的语言一样都需要引入头文件,不过OC是这样的:
#import <...>
#import "..."
例如我们的第一个hello world;
#import <Foundation/Foundation.h>
引入了Foundation的头文件,Foundation是Cocoa框架的一个重要的基础头文件。Cocoa是Mac os X原生的框架之一。
当我们字Xcode中创建oc程序时写对象,就是new cocoa class文件。
接下来说到oc 中的对象。
oc中的对象和java中的对象一样都是有一个基类NSObject(NS是Nextstep的缩写)。模板大概是这样
类的定义
@interface 类名 :父类{ 实例变量定义;}方法生命;...@end和c++一样,我们一般把函数的实现写到外面,而这里直接在另一个文件
@implementation 类名方法的定义;...@end比如一个Human的对象
@interface Human : NSObject-(void)speak;@end
@implementation Human-(void)speak{ NSLog(@"I speak chinese");}@end
上面就定义了一个Human 的类,当我们需要调用这个方法时就这样
...#import "Human.h"int main(int args,const char *argv){ ... Human *human = [[Human alloc]init]; [human speak]; ...}其中[obj msg]为OC中的消息表达式,我们调用msg的方法就是这样调用,告诉obj,我要调用 msg方法。
函数的声明和定义这里解释下,
返回类型和参数都是用小括号包住的
-(int) getWeight:(int)id{
...
}//这里获取指定id号的体重。
多个参数是这样
-(datatype) func:(datatype)arg1 columnName:(datatype)arg2...{
}
例如:
-(float)getCost:(float)price Number:(int)number{
return price*number;
}
调用时就这样
...
[obj getCost:5.5 Number:10];
...
注意这里没有写类中的属性定义生命,以及解释function前面(+)和(-)的区别,下次再详谈。
- Objective-c第一课,OC的面向对象
- OC: 第一讲(Objective-C,面向对象的C语言)
- Objective-C——OC中的面向对象规范
- Objective C(OC)面向对象三大特性之:封装
- 【Objective-C】07-OC对象的继承
- Objective-C 【OC和C的区别-面向对象-有参/无参方法-类和对象】
- Objective C面向对象
- objective-c面向对象
- Objective-C 面向对象
- 基于Objective-C的面向对象编程
- Objective-C 面向对象的编程语言
- 【Objective-C】05-第一个OC的类
- 【Objective-C】05-第一个OC的类
- 【IOS 开发学习总结-OC-18】★★objective-c面向对象之——OC的包装类与对象处理
- 【IOS 开发学习总结-OC-16】★★objective-c面向对象之——类的继承
- 【IOS 开发学习总结-OC-15】objective-c面向对象之——对象初始化
- oc的面向对象
- OC的面向对象
- VMware虚拟网络的各自含义(VMnet0、VMnet1、VMnet8)
- js中利用setInterval实现简单的倒计时
- Android调用系统相机,相册,并设置为圆形图像
- Unity5 LightMap 动态加载 运行时lightmapScaleOffset赋值后不生效
- Swift3.0语言教程使用路径字符串
- Objective-c第一课,OC的面向对象
- Android Studio 插件Plugin Error找不到的问题
- microsoft Visio 2010的使用和word的交互
- HDU 1133 Buy the Ticket DP+java大数
- Logcat内容输入到指定文件中
- static variable/function
- Java 阻塞队列 模拟 异步处理
- windows下svn服务器及客户端搭建
- [BZOJ3624][Apio2008]免费道路(并查集)