OC面向对象,面向过程

1. NSLog 是什么

   是OC独有的函数

2.有什么用

   用于打印输出,跟C语言printf函数作用相似


3. NSLog和printf函数的差异是什么

    a.NSLog 可以自动换行,而printf不可以

    b.NSLog自动输出时间等项目信息, printf 不会输出

    c. NSLog 函数的参数是一个NSString对象

    d. printf 是一个字符串常量指针.


4.BOOL 是什么

   是OC独有的基本数据类型

5.  有什么用: 用于表示真假结果,只有两个值,YES,NO

6. 何时用

    当需要表示真假值的时候   


  1. #import <Foundation/Foundation.h>

  2. int main(){

  3. BOOL b=YES;

  4. BOOL n=NO;

  5. NSLog(@"%d--%d",b,n);

  6. return 0;

  7. }

  8. // 用别名的方式定义了一个有符号的char类型叫BOOL

  9. typedef signed char BOOL

  10. #define YES (BOOL) 1  // 用宏定义的方式定义了1并强转为BOOL型,YES

  11. #define NO (BOOL) 0 // 用宏定义的方式定义了0并强转为BOOL型,NO


7. 面向对象是什么

    是一种解决问题或处理事情的思想

8.类与对象概述是什么?

答:OC 中描述事物通过类的形式体现,类是具体事物的抽象,是一个抽象概念.而对象即是该类事物实实在在存在的个体.


9.怎么用?

答:定义类, 根据类创建对象,使用对象

10.特点?

答:任何一个类都是由属性和行为构成.

11. 如何取定义一个类:

a.类的声明->功能:做成员(实例)变量(即属性)和方法(即行为)的声明

 @interface Phone :NSObject {

 @pubilc 

 float screen ; // 成员变量的声明

 int cell ;

}

b.类的实现->功能:做方法的实现

@implementation Phone 

-(void)call { // 方法的实现

NSLog(@"打电话了");


}

  1. #import <Foundation/Foundation.h>

  2. @interface Phone :NSObject {

  3.                 // 大括号里面写属性
  4. @pubilc         // 表示这个属性能被外部访问
  5. float screen;
  6. int cell ;
  7. }
  8. -(void) call ;   // 声明一个打电话的方法
  9. @end
  10. @implementation Phone
  11. -(void) call {
  12. NSLog(@"打电话了.....")
  13. }
  14. @end


12.创建一个类的对象并使用

1.创建

类名*对象=类型 [new]; 固定写发

如:Phone *p=[Phone new]; p表示这个对象 

注:类的对象用这个类的指针来表示

13.使用

1.使用属性    对象名->属性名;  p->screen;

2.给属性赋值  对象名->属性名=具体的值; p->screen=4.0;


14.使用方法

[对象名 方法名:参数]    如:[p call]

注:参数没有可省略


15.类与对象使用的关键点

a.类必须有声明和实现,二者缺一不可.

b.类必须继承NSObject,让其具有创建对象的能力.

c.成员变量要能被直接访问必须声明为@pubilc

d.属性初始值为0,且不能在声明时赋值.

e.方法在类的声明区域声明,就要在类的实现区域实现.

f.方法中所有数据类型必须加括号.

g.可以在方法中直接使用成员变量.


16.OC的有参方法

两个要点:1,参数的类型用()括起来  2.参数用:(冒号)分割,一个参数对应一个(冒号)

如:定义一个两个数相加的方法

-(int)add:(int)a :(int) b{

return a+b;   // 简化版,不建议.

}

标准版:OC的规范:参数前面要有说明

-(int)addOfNum1:(int) a Num2(int) b{

return a+b;

}  

注意:方法中除了参数名和数据类型的部分统称为方法名.


17. 类的设计与匿名对象

    一个类中的属性可以是任何类型.

    类设计的两个原则,高内聚,低藕合

高内聚:就是把有关联的属性要封装起来,成为一个单一的模块.

低藕合:就是一个类中各模块应该尽量独立.


18.面向对象的三大特性

     封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式.

     好处:将变化隔离,便于使用,提高重要性,提高安全性.

     封装操作:通过给外部暴露的两个方法,set方法用设置值,get方法用于获取值.


规范:

1.不能有返回值 

2.必须有参数,且参数类型与属性类型一致

3.参数名不能与属性名一致

4.set+属性名:从第二个单词首字母大写(驼峰命名)

作用:就是给属性(成员变量)去赋值


规范:

1.必须有返回值.

2.不能有参数.

3.返回值类型必须跟属性类型一致.

4.get+属性名:从第二个单词首字母大写(驼峰命名)

作用:就是把属性值传递给调用者.

类方法:用加号+开头 调用:[类名 方法名:参数];

对象方法 :用减号-开头


19. 继承

      多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需在定义这些属性和行为,只要继承单独的那个类即可.


注意:a.一个父类的子类可以有多个,但一个父类只有一个.

       b.子类里不能定义与父类相同的属性

       c.但子类与父类中可以定义相同的方法, 重写


       d.当父类与父类有同方法时,用之类的.

       e.父类必须在子类定义前声明

       f.一个类只能单继承(一级继承)但是能多层继承.

作用及好处: 

               a.子类可以直接访问父类中的属性和行为

               b.继承的出现提高了代码的复用性.

               c.继承的出现让类之间产生了关系,提供了多态


20. 组合:一个类里,包含另一个类的对象.

   当两个类需要建立关联的时候,可以用组合.

   表示:A类包含B.


21.多态:是指一种事物的多种形态

   有什么用:具有极强的扩展性,父类的一个指针可以表示不同的子类为对象.

21.多态有什么局限?

   父类的指针指向子类时,如果要调用子类的独有方法,必须强转.


普通写法: Cat *cat=[Cat new];

                    [Cat eat];

               Dog *dog=[Dog new]

                    [Dog eat];

多态写法:Animal *a =[Dog new];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值