A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jeffdy66 中级黑马   /  2015-11-15 10:37  /  624 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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.对象内部能直接通过成员变量名访问某个对象的成员变量,函数不能.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马