黑马程序员 _5 OC基础 简单语法
2014-03-25 11:20
323 查看
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
OC语言就是C语言加上了一层面向对象的语法的扩展,完全兼容C语言。
1.OC程序的开发过程:
.m源文件-->.o目标文件-->a.out可执行文件
入口仍然为main函数,与C一样,执行过程中不能执行前面没有定义的内容或函数,想调用必须之前声明
2.简单语法
语法中的字符串要用@开头,用NSLog函数打印,会自动换行。
OC新添的关键字都是以@开头,比如 @interface ,@implementation,@end
基本数据类型与C一致,不过多了BOOL类型(YES\NO)
nil相当于Java的null , self 相当于Java的this,基类也就是所有类的父类NSObject。
3.OC的#import 相当于C语言中的#include 用来拷贝文件的内容
#import <Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明,所以每次使用NSlog函数都要导入Foundation框架,这样可以使用该框架的所有内容
4.运行过程
1> 编写OC源文件:.m、.c
2> 编译:cc -c xxx.m xxx.c
3> 链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4> 运行:./a.out
5.常见扩展名:
.h 头文件,用于描述类的组成,包括成员变量,成员方法,类方法类变量
.cc源文件
.m OC源文件
.mm 除了OC、C代码还可以包含C++代码
6.类
在OC中需要用两个文件来描述一个类,一个.h声明文件,来声明成员变量、方法。关键字@interface和@end;一个.m实现文件,关键字@implementation和@end。
有点类似 再C语言中的声明函数文件.h和在.c中实现,就像是我想做什么,先在.h文件中绘制一个草图,然后再在.m中实现。
7.方法
方法的声明和实现都要用+或-号开头,+表示类方法(静态方法),-表示对象方法(动态),在.h中的声明方法都是Public类型
8.成员变量
作用域和Java类似 有@public(全局可访问) @protected(只能在类内部和子类) @private(只能在类内部) 三种类型
9.创建类的过程
1>声明
在.h文件
2>实现
在.m文件
再就是OC对成员变量取值赋值要用到set get方法,对age使用是就要命名为setAge,getAge,就是set/get + 成员变量首字母大写的命名方式,这样对以后的点语法使用相符合。
10.创建对象的过程
利用Person类创建, OC是方法调用是用中括号[ ],方法调用者写在括号左侧,方法名写在括号右侧,中间留点空格。
或者可以是 Person *p1 = [Person alloc];
调用Person类的静态方法alloc分配内存 至于*,利用类名定义一个变量时,类名之后必须带上*号。
用->设置属性,与指向结构体的指针访问结构体属性一样。
11.OC 方法和函数的区别
OC方法只能声明再@interface和@end之间,只能实现再@implementation和@end之间。也就是说OC方法不能独立于类外存在。
方法应该有声明,又实现,。只有声明,没有实现(经典错误);只有实现,没有声明(编译警告,能调用,OC弱语法)。
1>有参数的方法:
调用 方式:[q square: 10];
2>无参数的方法
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
OC语言就是C语言加上了一层面向对象的语法的扩展,完全兼容C语言。
1.OC程序的开发过程:
.m源文件-->.o目标文件-->a.out可执行文件
入口仍然为main函数,与C一样,执行过程中不能执行前面没有定义的内容或函数,想调用必须之前声明
2.简单语法
语法中的字符串要用@开头,用NSLog函数打印,会自动换行。
OC新添的关键字都是以@开头,比如 @interface ,@implementation,@end
基本数据类型与C一致,不过多了BOOL类型(YES\NO)
nil相当于Java的null , self 相当于Java的this,基类也就是所有类的父类NSObject。
3.OC的#import 相当于C语言中的#include 用来拷贝文件的内容
#import <Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明,所以每次使用NSlog函数都要导入Foundation框架,这样可以使用该框架的所有内容
4.运行过程
1> 编写OC源文件:.m、.c
2> 编译:cc -c xxx.m xxx.c
3> 链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4> 运行:./a.out
5.常见扩展名:
.h 头文件,用于描述类的组成,包括成员变量,成员方法,类方法类变量
.cc源文件
.m OC源文件
.mm 除了OC、C代码还可以包含C++代码
6.类
在OC中需要用两个文件来描述一个类,一个.h声明文件,来声明成员变量、方法。关键字@interface和@end;一个.m实现文件,关键字@implementation和@end。
有点类似 再C语言中的声明函数文件.h和在.c中实现,就像是我想做什么,先在.h文件中绘制一个草图,然后再在.m中实现。
7.方法
方法的声明和实现都要用+或-号开头,+表示类方法(静态方法),-表示对象方法(动态),在.h中的声明方法都是Public类型
8.成员变量
作用域和Java类似 有@public(全局可访问) @protected(只能在类内部和子类) @private(只能在类内部) 三种类型
9.创建类的过程
1>声明
在.h文件
@interface Person : NSObject { @public int age; // 年龄 char boold; // 血型 } - (void)run; // 跑的行为 @end
2>实现
在.m文件
@implementation Person - (void) run { NSLog(@"%d岁,血型为%c的人跑起来了", age, boold); } @end
再就是OC对成员变量取值赋值要用到set get方法,对age使用是就要命名为setAge,getAge,就是set/get + 成员变量首字母大写的命名方式,这样对以后的点语法使用相符合。
10.创建对象的过程
int main() { // 创建人对象 Person *p = [Person new]; p->age = 22; p->boold = 'A'; [p run]; return 0; }
利用Person类创建, OC是方法调用是用中括号[ ],方法调用者写在括号左侧,方法名写在括号右侧,中间留点空格。
或者可以是 Person *p1 = [Person alloc];
调用Person类的静态方法alloc分配内存 至于*,利用类名定义一个变量时,类名之后必须带上*号。
用->设置属性,与指向结构体的指针访问结构体属性一样。
11.OC 方法和函数的区别
OC方法只能声明再@interface和@end之间,只能实现再@implementation和@end之间。也就是说OC方法不能独立于类外存在。
方法应该有声明,又实现,。只有声明,没有实现(经典错误);只有实现,没有声明(编译警告,能调用,OC弱语法)。
1>有参数的方法:
- (double)square:(double)number; - (double)square:(double)number{ return number * number; }冒号是方法名的一部分,同一个类中不允许两个对象方法同名,即使参数不一样。
调用 方式:[q square: 10];
2>无参数的方法
- (double)pi; - (double)pi{ return 3.14; }
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员------OC基础语法的使用
- 黑马程序员----OC基础--核心语法、关键字
- 黑马程序员 OC基础: 常用语法
- 黑马程序员_OC基础01_基础语法
- OC语法基础简单代码练习Demo
- 黑马程序员_OC基础00_基本语法
- 黑马程序员—OC语言基础—核心语法小结
- 黑马程序员-IOS-OC基础-面向对象语法二
- 黑马程序员——OC基础—核心语法(下)
- 黑马程序员—OC语言基础—基础语法知识
- 黑马程序员——OC基础语法—点语法和成员变量作用域
- 黑马程序员-OC语言基础:面向对象语法 二
- 黑马程序员-IOS-OC基础-OC简介及基本语法
- 黑马程序员——OC基础之点语法
- 黑马程序员-IOS-OC基础-浅析Copy语法
- 黑马程序员-OC语言基础:面向对象语法 四
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 黑马程序员——OC基础语法
- 黑马程序员-OC语言基础:面向对象语法 三
- 黑马程序员——OC学习——基础语法二