黑马程序员--IOS基础第十六天(OC)

来源:互联网 发布:细菌觅食算法流程图 编辑:程序博客网 时间:2024/06/13 23:47

  1. OC不是一门全新的语言,是c语言的基础上增加了一层最小的面向对象语法。

  2. 学习目标:

    语法学习

    建立面向对象思维能力
    建立基本项目需求分析能力

  3. Includeimport区别:

  1. includeimport都是引入头文件

  2. import引入的头文件,可以防止重复包含

  3. include是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题

  1. Foundation/Foundation.h是什么

  1. 头文件

  2. 头文件的位置

  3. 文件包含了其他的大量的头文件

    作用:把foundation.h引入了,等于把OC的库文件都引过来了。

  1. NSLog的介绍:

    NSLogcocoa的框架中提供的一个方法
    NSLog
    的定义
    NSLog
    定义在NSObjCRuntime.h

    void NSLog(NSString*format,);
    基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是chat*这种字符串指针

  2. NSLogprintf差距

  1. NSlog会自动换行,而printf不会自动换行

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

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

    Printf函数是一个字符串常量指针

  1.  NSLog(@"this isa test"); //打印一个字符串
    NSString *str = @"hello itcast!";
    NSLog(@"string is:%@",str);//
    使用占位符, %@表示打印一个对象, %@ OC特有的
    NSLog(@"x=%d, y=%d",10,20)
    ;//使用多个占位符, %d表示整型数

  2. OC中注释及@符号使用

    1@的使用方法:

    OC中“@”有特殊的用法
    1
    @""这个符号表示将一个C的字符串转化为OC中的字符串对象NSString.
    2
    @标识符OC中大部分的关键字都是以@开头的,比如@interface,@implementation,@end
    @class
    等。
    2OC中注释
    OC中的注释有两种:
    1
    )单行注释://
    2
    )多行注释:/* */
    3
    )文档注释
    /**
    *
    狗吃食物的方法
    * *
    @param foodName
    参数描述
    */
    程序编译时,不对注释做任何处理
    注意可以出现在程序的大部分的位置。

  3. COC的差别:

  1. 源文件对比:

    C.h .o .out .c

    OC.h(头文件) .m(类的实现文件,参与编译的文件,用来实现类中声明的方法)

  2. 数据类型:

3)变量的定义对比:

注意:1c语言的关键字都可以在oc源程序中使用

      2oc新增的关键字在使用时,注意部分关键字以“@开头

4)流程控制语句对比:

  Oc中并没有增加新的流程控制

  Oc中提供一种增强型的for循环

NSArrau *arr=@[@”one”,@”two”,@”three”];

For(NSString *str in arr){

 

     NSLog(@”%@”,str);

}

5)OC中函数的定义和声明的差异:

OC中把函数称之为方法:

+voidtest

-voidtest

 

-intmax:(intx and Y:(int y;

10.OC新增的数据类型

 1)逻辑性

1Boolean:指的是用于存储真值和假值的变量,一般用于程序流控制。

          True 1 false 0

2BOOL:取值是YESNO,用作逻辑判断

 YES 1

 NO 0

  1. 异常捕捉方法:

    @try .... @catch .... @finally
    格式:
    @try {
    < #statements#>//
    此处放的是有可能出错的代码
    }
    @catch (NSException*exception){ //捕捉最具体的异常类型
    < #handler#>//
    此处放出错以后,我们处理的代码
    }
    @catch (NSException*ne){ //捕获一个比较重要的异常类型。
    }
    @catch (id ue){ //再次掷出捕获的异常。
    }
    @finally { //不管有没有异常finally内的代码都会执行。
    < #statements#>
    }

  1. 编程的实质:思维转变成计算机能够识别的语言的一个过程。

11.面向对象编程

向对象(object-oriented ;简称: OO至今还没有统一的概念,我这里把它定义为:
按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世
界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的
系统一一对应。
面向对象编程( Object Oriented Programming-OOP
是一种解决软件复用的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作
应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高
软件开发效率的作用。
优点:
大幅度提高软件项目的成功率
减少维护费
提高可移植性和可靠性
面向对象设计四个个主要特征
封装性

面向对象和面向过程的区别:
面向过程

强调的是功能行为
关注的是解决问题需要哪些步骤
面向对象
将功能封装进对象,强调具备了功能的对象
关注的是解决问题需要哪些对象
面向对象是基于面向过程的。

12.类(class)和对象(object

1)类:具有相似内部状态和运动规律的尸体的集合

2)对象:指显示世界中各种各样的尸体。可以指具体的食物,也可以指抽象的事物。

  在面向对象概念中我们把对象的内部状态称为属性、运动规律称为方法或时间、

3)消息(message):指对象间相互联系和相互作用的方式、

Oc中描述事物通过类的形式体现,类是多个同种类型事物的抽象

13.类:一个类可以实例化多个对象:

  例如:学生类可以有张三、李四。。。人

  1. 类和对象之间的关系
    类(Class一个类由3个部分构成
    类的属性:一组包含数据的属性
    类的方法:允许对属性中包含的数据进行操作的方法
    类的名称:类名

    对象

    是系统中的基本运行实体
    对象就是类类型(class type)的变量
    定义了一个类,就可以创建这个类的多个对象
    一个类就是具有相同类型的对象的抽象

  2. 类的构成:

    类名、属性、行为。

    例如:人 身高、年龄 跑、代价

  3. 类的抽象:

    拥有相同(或者类似)属性和行为的对象都可以抽象出一个类。、

    方法:名词提炼法

14.关于类的几个名词

1)类:

 .h类的声明文件,用于声明成员变量、方法

 .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation

@end

2方法
方法的声明和实现,都必须以 + 或者 -开头
+
表示类方法(静态方法)
-
表示对象方法(动态方法)
.h中声明的所有方法作用域都是public类型,不能更改
3)成员变量(实例变量\属性)
成员变量的常用作用域有3种:
@public
全局都可以访问
@protected
只能在类内部和子类中访问
@private
只能在类内部访问

15.声明一个类:

1)声明类使用关键字@interface

2)声明类,我们通常放到.h的头文件中

16.类的定义:

1)类的声明(规定当前类的:类名,属性,行为)

@interface类名:父类名

{

 //定义类的属性

}

//类的行为

@end

2)类的实现(实现具体行为)

@implementation类名

//行为的具体实现

@end

16.oc中用已经存在的类,创建一个对象:

Car *car1=[Car new ]//做了三件事:1、向计算机申请内存空间 2、给类中的每一个成员初始化值3、返回//新申请的空间的首地址

Car *p = [ Car new];//理解方式1:定义了一个Car类型的指针变量,指针变量指向新申请的内存空间

               //理解方式2:用Car类实例化了一个实例对象,对象名是p

17.无参方法声明及调用

 

 @interface CarNSObject

{

Int lunzi

Int speed

NSString *pp

 

}

//行为

//车跑的方法 方法名是run

-voidrun//定义了一个无参无返回值的方法

-voidstop

@end

//类的实现

@implementation Car

//方法的具体的实现

-voidrun{

   NSLog@“车跑在达到上);

}

-voidstop{

 NSLog@“车停了!);

}

 

@end

18.方法调用:

 [类名或对象名  方法名]

例如:[car stop]//调用stop方法,向car对象发送stop消息

19.C的函数

Int sum(int x,i8nt y){

 

Return x+y;

}

OC的方法

-(返回值类型)方法名1(参数类型)参数名;//有一个参数的方法

-(返回值类型)方法名1:(参数类型1)参数名1 and (参数类型2参数名2//2个参数的方法

// sum-àOC的方法

-int sum : (int) x and : (int)y;//方法的声明

//方法的实现

-int sum : (int) x and : (int)y{

Return x+y

}

有参方法的使用注意:

  1. 方法的类型 -)对象方法

  2. 方法的返回值:int类型

  3. 方法的参数是:x y

  4. 参数的类型:第一个int第二个int

  5. 方法名:sum and

0 0
原创粉丝点击