黑马程序员技术交流社区
标题:
OC 开启新的篇章
[打印本页]
作者:
jeffdy66
时间:
2015-11-15 10:37
标题:
OC 开启新的篇章
1.NSLog 是什么?
答: OC 独有的函数
2.有什么用?
答:用于打印输出,跟c 语言printf函数作用相似.
NSLog 和 printf 的差异是什么?
a.NSLog可以自动换行,printf不可以
b.NSLog自动输出时间等项目信息,printf不会输出.
c.NSLog函数的参数是一个NSString对象.
d.printf是一个字符串常量指针.
3.怎么用?
答:a.导入头文件 #import <Foundation/Foundation.h>
使用 NSLog(@"hello world")
b. import 本身就具有防止重复包含的功能,Foundation.h主文件包含这个框架里所有的头文件
3.BOOL 是什么?
答: 是OC独有的基本数据类型
4.有什么用?
答:用于表示真假结果,只有两个值 YES,NO.
5.How to use ?
答: 导入头文件 #import<Foundation/Foundation.h>
使用 BOOL b=YES; b=NO;
6.什么时候用?
答:当需要表示真假值的时候
7.有什么特点?
答:需要导入函数的声明的头文件,并添加框架一起编译.
#import <Foundation/Foundation.h>
int main(){
BOOL b=YES;
BOOL n=NO;
NSLog(@"%d--%d",b,n);
return 0;
}
// 用别名的方式定义了一个有符号的char类型叫BOOL
typedef signed char BOOL
#define YES (BOOL) 1 // 用宏定义的方式定义了1并强转为BOOL型,YES
#define NO (BOOL) 0 // 用宏定义的方式定义了0并强转为BOOL型,NO
8.面向对象是什么?
答:是一种解决问题或处理事情的思想
9.有什么用?
答:可以将复杂的事情简单化,将程序开发者从执行者转换成了指挥者.
10.How to use ?
答:找到对象,没有就创建对象, 使用对象实现我们的需求.
11.何时用?
答:面向对象编程的时候.
12.有什么特点?
答:a. 面向过程重点是过程及行为,而面对对象重点在于对象及结果.
b.有需求时首先找对象,如果找不到对象则自己创建一个对象.
c. 对象具有很强的复用性.
d.一切事情都可以用面向对象来处理,万物皆对象.
13.类与对象概述是什么?
答:OC 中描述事物通过类的形式体现,类是具体事物的抽象,是一个抽象概念.而对象即是该类事物实实在在存在的个体.
14.怎么用?
答:定义类, 根据类创建对象,使用对象
15.特点?
答:任何一个类都是由属性和行为构成.
16 如何取定义一个类:
a.类的声明->功能:做成员(实例)变量(即属性)和方法(即行为)的声明
@interface Phone :NSObject {
@pubilc
float screen ; // 成员变量的声明
int cell ;
}
-(void)call; // 方法的声明
@end
b.类的实现->功能:做方法的实现
@implementation Phone
-(void)call { // 方法的实现
NSLog(@"打电话了");
#import <Foundation/Foundation.h>
@interface Phone :NSObject {
// 大括号里面写属性
@pubilc // 表示这个属性能被外部访问
float screen;
int cell ;
}
-(void) call ; // 声明一个打电话的方法
@end
@implementation Phone
-(void) call {
NSLog(@"打电话了.....")
}
@end
17.创建一个类的对象并使用
1.创建
类名*对象=类型 [new]; 固定写发
如:Phone *p=[Phone new]; p表示这个对象
注:类的对象用这个类的指针来表示
#import<Foundation/Foundation.h>
@interface Car : NSObject {
@public
int wheel;
int speed;
}
-(void) run;
-(void) stop;
@end
@implementation Car
-(void) run{
NSLog(@"车正在飞...");
}
-(void) stop {
NSLog(@"车停了");
}
@end
int main(){
Car *p =[Car new];
p->wheel=4;
p->speed=120;
int t=p->wheel;
int s=p->speed;
[p run];
[p stop];
NSLog(@"车子的轮子是:%d,车的速度为:%d",t,s);
return 0;
}
18.使用
1.使用属性 对象名->属性名; p->screen;
2.给属性赋值 对象名->属性名=具体的值; p->screen=4.0;
19.使用方法
[对象名 方法名:参数] 如:[p call]
注:参数没有可省略
20.类与对象使用的关键点
a.类必须有声明和实现,二者缺一不可.
b.类必须继承NSObject,让其具有创建对象的能力.
c.成员变量要能被直接访问必须声明为@pubilc
d.属性初始值为0,且不能在声明时赋值.
e.方法在类的声明区域声明,就要在类的实现区域实现.
f.方法中所有数据类型必须加括号.
g.可以在方法中直接使用成员变量.
21.OC的有参方法
两个要点:1,参数的类型用()括起来 2.参数用:(冒号)分割,一个参数对应一个(冒号)
如:定义一个两个数相加的方法
-(int)add:(int)a :(int) b{
return a+b; // 简化版,不建议.
}
标准版:OC的规范:参数前面要有说明
-(int)addOfNum1:(int) a Num2(int) b{
return a+b;
}
注意:方法中除了参数名和数据类型的部分统称为方法名.
#import <Foundation/Foundation.h>
@interface Calculator :NSObject
-(int) addOfNum1:(int) a Num2:(int) b;
@end
@implementation Calculator
-(int) addOfNum1: (int) a Num2:(int) b{
return a+b;
}
@end
int main(){
Calculator *c=[calculator new];
int count =[c addOfNum1:1 Num2:2];
NSLog(@"两个数相加的和是:%d",count);
return 0;
}
22.方法与函数
这二者功能是累死的,但在语法及使用上有不同:
a.对象方法要以减号开头,数据类型要用()括起来,函数不需要.
b.对象方法的声明要写在@interface和@end之间,实现必须写在@implementation和@end之间,函数可以是任意位置(@interface和@end之间除外).
c.对象方法的参数与方法名之间以冒号:分隔,而函数是以括号()
d.对象方法只能由对象调用,函数不需要.
e.对象方法归类,对象所有,函数归文件所有.
f.对象内部能直接通过成员变量名访问某个对象的成员变量,函数不能.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2