黑马程序员————oc基础、类
来源:互联网 发布:函数式编程 编辑:程序博客网 时间:2024/06/07 11:56
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1,oc简介
1)C语言的基础上,增加了一层最小的面向对象语法。
2)完全兼容C语言。
3)可以在OC代码中混入C语言代码,甚至是C++代码。
4)可以使用OC开发Mac OS X平台和iOS平台的应用程序。
2,oc语法
1)关键字
@interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class@property、@synthesize、@dynamicself、super、id、_cmd、__block、__strong、__weak、
2)字符串
(1)表示字符串的类NSString
(2)字符串以@开头。
例如:@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串。
3)其他语法
其中NSlog()与printf()函数对比:
(1)NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
(2)NSLog输出后会自动换行,printf输出后不会自动换行
(3)使用NSLog需要#import <Foundation/Foundation.h>
(4)使用printf需要#include <stdio.h>
4)终端指令
一般形式:
编译cc –c main.m链接cc main.o –framework Foundation运行./a.out
多个.m文件:
编译:cc –c main.m test.m链接:cc main.o test.o –framework Foundation运行:./a.out
m文件和.c文件混用:(没有使用Foundation框架的话,就不用-framework Foundation)
编译:cc –c main.m test.m链接:cc main.o test.o运行:./a.out
5)#import与#include
相同:用来拷贝某个文件的内容
不同:#include完全复制,文件内容可能被拷贝多次;#import可以自动防止文件内容被拷贝多次。
6)BOOL
Object-c 提供了BOOL 类型,Object-c 里1 为true 并被宏定义为YES,0 为false 并被宏定义为NO。
3,面向对象
OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想。区别:面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象。
4,类的声明与实现
1)interface部分
描述类、类的数据成分以及类的方法。一般形式:
@interfac NewClassName : ParentClassName{memberDeclarations;}methoddeclarations;@end
命名规则:以字母或下划线开头,之后可以是任何字母,下划线或者0~9 数字组合。一般情况,类名以大写字母开头,实例变量、对象以及方法的名称以小写字母开始。
方法开头的(-)号或者(+)号表示:
(-) 该方法是实例方法(对类的特定实例执行一些操作);
(+)是类方法(即对类本身执行某些操作的方法,例如创建类的新实例)
举例:
@interface Stu : NSObject{ int num; char name int age; }- (void) learn; @end
2)implementation部分
实现这些方法的实际代码,一般形式如下:2)implementation部分
实现这些方法的实际代码,一般形式如下:
@implementation NewClassNamemethodDefinitions;@end
其中NewClassName表示的名称与interface部分的类名相同。
例如:
@implementation Stu- (void) learn{Nslog(@"学生在学习");}@end
3)创建对象
举例:
int main(int argc , const char *argv){Stu *stu = [Stu new];}
5,方法
1)无参数
一般形式:
-(void)methodname
例如:
// 方法声明-/+ (double)pi;// 方法实现- (double)pi{return 3.14;}
2)一个参数
一般形式:
-/+(return type)methodname : (parameter type) parameter
例如:
// 方法声明- (double)square : (double)number;// 方法实现- (double)square : (double)number{ return number * number;}
3)多个参数
一般形式:
-/+ (return type) methodname : (parameter type) parameter1 otherParameter : (parameter_type) parameter2 otherParameter :......
例如:
// 方法声明- (double)sumOfNum1:(double)num1 andNum2:(double)num2;// 方法实现- (double)sumOfNum1:(double)num1 andNum2:(double)num2{ return num1 + num2;}
4)方法调用
一般形式:
[classOrInstance method];
例如:
[stu learn]
0 0
- 黑马程序员—OC基础--基础数据类型和包装类
- 黑马程序员——OC基础
- 黑马程序员——OC基础语法
- 黑马程序员——oc基础1
- 黑马程序员——OC基础语法
- 黑马程序员——oc基础语法
- 黑马程序员——OC基础---继承
- 黑马程序员——OC基础---协议
- 黑马程序员—OC基础--枚举数据类型
- 黑马程序员—OC基础--初探“多态”
- 黑马程序员—OC基础--初探 “KVO”
- 黑马程序员—OC基础--初探 “KVC”
- 黑马程序员——OC基础---OC特有语法
- 黑马程序员——OC基础---简单的OC程序
- 黑马程序员————oc基础、类
- 黑马程序员——OC基础语法----类、对象、方法
- 黑马程序员——OC基础:类和对象
- 黑马程序员—OC语言基础—类与对象
- AsyncTask类(Android)
- 一次解决mysql中文问题的过程
- 观察者模式
- 程序
- 使用chrome浏览器禁止javascript复制无法复制的网页内容
- 黑马程序员————oc基础、类
- JavaScript框架(iframe)操作总结
- Photoshop 批量处理图片
- [HDU 1402]A * B Problem Plus(FFT)
- 常见排序算法的稳定性分析
- 黑马程序员-★基础语法二★
- 递推与递归
- 字典树
- 算法基础:分治模式,归并排序ΘΘΘΘΘΘ知识小结