• 问题总会出现,不过解决问题的方法也会出现!!!

OC基础学习笔记01

学习笔记 小雨 551次浏览 已收录 0个评论

—— ——-

1-Objective-C

  1. Objective-C

由Brad Cox基于Smalltalk的方法

在进行时可以灵活处理所有事情

运行时非常灵活处理所有事情

运行时非常灵活:

Dynamic Binding动态绑定

Dynamic Typing 动态检查

Dynamic Linking 动态链接

Objective-C可以认为是继承了C和Smalltalk优点

2-OC学习注意

OC不是一门全新的语言

C语言的基础上增加了一层最小的面向对象语法

OC完全兼容C语言

可以在OC代码中混入C语言代码,甚至是C++代码

可以使用OC开发Mac OS X平台和iOS平台的应用程序

5-NSlog函数使用方法

  1. NSLog的介绍

NSLog是cocoa的框架中提供的一个方法

NSLog的定义

NSLog定义在NSObjCRuntime.h中

如下所示:

void NSlog(NSString *format,…);

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

NSLog和printf使用的差异

  1. NSLog会自动换行 而printf不会自动换行
  2. NSLog会自动输出时间等项目信息,printf不会输出调试信息
  3. NSlog函数的参数是一个NSString对象

printf是一个字符串常量指针

OC基础学习笔记01OC基础学习笔记01

  1. NS前缀

前缀

Objective-C应用中的所有类名都必须是全局唯一的。由于很多不同的框架中会有一些像是的功能,所以在名字上也可能会有重复(users,views,requests/responses等等),所以苹果官方文档规定类名需要有2-3个字母作为前缀。

类前缀

苹果官方建议两个字母作为前缀的类名是为官方的库和框架准备的,而对于作为第三方开发者的我们,官方建议使用3个或者更多的字母作为前缀去命名我们的类。

NS来自于NeXTStep的一个软件NeXT Software

OC中不支持命名空间(namespace)

NS是为了避免命名冲突而给的前缀

看到NS前缀就知道是Cocoa中的系统类的名称

6-OC中注释及@符号使用

1、“@”的使用方法

在OC中“@”有特殊的用法

(1)@””这个符号表示将一个C的字符串转化为OC中的字符串对象NSString

(2)@符号OC中大部分的关键字都是以@开头的,比如@interface,@implementation,@end,@class等。

2、OC中注释

OC中的注释有两种

  1. 单行注释//
  2. 多行注释/* */
  3. 文档注释

/**

*

*

*/

程序编译时,不对注释做任何处理,注释可以出现在程序的大部分位置。

8-OC和C差异学习(一)

  1. 源文件对比

OC基础学习笔记01

在OC中常见的文件有两种:.h和.m的文件

OC基础学习笔记01

  1. 基本语法对比
  2. 基本数据类型对比学习

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01

OC基础学习笔记01OC基础学习笔记01

9-OC和C差异学习(二)

  1. OC新增的数据类型介绍
  2. 逻辑型
    1. Boolean

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

Boolean类型数据允许取值true或false,也可以是0或非0的整数替代true和false,这点这java语言不同。

OC基础学习笔记01

2.BOOL也是用作逻辑判断

OC基础学习笔记01

OC的BOOL类型:

BOOL类型其实是由一种称为预处理程序的机制添加的。typedef signed char BOOL;

BOOL类型有两个值YES,NO。YES=1,NO=0。

说明:objective-c 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#define指令把YES定义为1,NO定义为0。

注意:objective-c 并不会将BOOL作为仅能保存YES或NO值的真正布尔类型来处理。编译器仍将BOOL认作8位二进制数,YES 和 NO 值只是在习惯上的一种理解。

  1. OC中的新增异常捕捉方法

@try…@catch…@finally

OC基础学习笔记01

OC基础学习笔记01

代码有可能抛出的异常是封闭在一个@try块。@catch()块包含为@try块抛出的异常的异常处理逻辑。一个@finally块包含代码必须是引发异常与否。您可以使用@throw指令抛出一个异常,这基本上是一个对Objective-C对象的指针。你可以使用NSException对象但不限于他们。

10-面向对象编程概念

  1. 编程的实质是什么?

软件编程就是将我们的思维转变成计算机能够识别的语言的一个过程

  1. 面向对象的基本概念

面向对象是相对面向过程而言的

面向对象和面向过程都是一种思想

Object Oriented Programming-OOP

面向对象(object-oriented:简称:00)至今还没有统一的概念,我这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法、通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。

面向对象编程(Object Oriented Programming-OOP)

是一种解决软件复杂的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作应用数据、状态,以类的形式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。

优点:

大幅度提高软件项目的成功率

减少维护费

提高可移植性和可靠性

面向对象的三个主要特征:

封装性

多态性

继承性

抽象性

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

面向过程:

强调的是功能行为

关注的是解决问题需要哪些步骤

面向对象

将功能封装进对象,强调具备了功能的对象

关注的是解决问题需要哪些对象

面向对象是基于面向过程的

11-类和对象

  1. 类(class)和对象(object)

类(class):

类是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。类的概念来自于人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:由特殊到一般的归纳法和由一般到特殊的演绎法。在归纳的过程中,我们从一个个具体的事物中把共同的特征抽取出来,形成一个一般的概念,这就是“归类”;如:昆虫、狮子、爬行动物,因为它们都能动所以归类为动物。在演绎的过程中我们又把同类的事物,根据不同的特征分成不同的小类,这就是“分类”:如动物->猫科动物->猫->大花猫等。对于一个具体的类,它有许多具体的个体,我们就管这些个体叫做“对象”。类的内部状态是指类集合中对象的共同状态;类的运动规律是指类集合中对象的共同运动规律。如:柏拉图对人作如下定义:人是没有毛能直立行走的动物。在柏拉图的定义中“人”是一个类,具有“没有毛、直立行走”等一些区别于其他事物的共同特征:而张三、李四、王五等一个个具体的人,是“人”这个类的一个个“对象”。

对象(object):

即指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。如:整数1、2、3、苹果、飞机、规则、法律、表单等。每个对象皆有自己的内部状态和运动规律,如张三有名字、身高、体重等内部状态,就有吃饭、睡觉、打人等运动规律。在面向对象概念中我们把对象的内部状态称为属性、运动规律称为方法或事件。

消息(Message):

消息是指对象间相互联系和相互作用的方式。一个消息主要由5部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。

OC基础学习笔记01

OC中描述事物通过类的形式体现,类是多个同种类型事物的抽象,概念上的定义。

OC基础学习笔记01

总结:

一个类可以实例化多个对象

OC基础学习笔记01

OC基础学习笔记01

  1. 类和对象之间的关系

类(class)一个类由3个部分构成

类的名称:类名

类的属性:一组包含数据的属性

类的方法:允许对属性中包含的数据进行操作的方法

对象(object):

是系统中的基本运行实体

对象就是类类型(class type)的变量

定义了一个类,就可以创建这个类的多个对象

OC基础学习笔记01

  1. 类的构成

OC基础学习笔记01

  1. 类的抽象

如何把日常生活中的食物抽象成程序中的类?

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

方法:一般名词都是类(名词提炼法)

12-类的声明和实现

在OC中类的定义有两部分:类的声明、类的实现

  1. 关于类的几个名词

.h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end

注意:.h中的方法只是做一个声明,并不对方法进行实现。也就是说,只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已。并不会编写方法内部的代码。

方法

方法的声明和实现,都必须以+或者-开头

+表示类方法(静态方法)

-表示对象方法(动态方法)

在.h中声明的所有方法作用域都是public类型,不能更改

成员变量(实例变量属性)

成员变量的常用作用域有3种:

@public全局都可以访问

@protected只能在类内部和子类中访问

@private只能在类内部访问

  1. 声明一个类
  2. 声明类使用关键字@interface
  3. 声明类,我们通常放到.h的头文件中

OC基础学习笔记01OC基础学习笔记01

  1. 实现一个类
  2. 实现一个类 使用关键字@implementation
  3. 实现一个类通常放到.m的文件中
  4. 实现类主要是对方法的具体实现

OC基础学习笔记01

13-创建一个对象并访问成员变量

  1. 创建一个对象

OC基础学习笔记01

只要是用new操作符定义的实体就会在堆内存中开辟一个新的空间。

注意:[Car new]

14-无参方法的声明实现及调用

  1. 声明实现

OC基础学习笔记01

OC中的方法分为:对象方法和类方法;

对象方法:

  1. 对象方法以 – 开头如 -(void)xx;
  2. 对象方法只能由对象来调用
  3. 对象方法中可以访问当前对象的成员变量
  4. 调用格式[对象名 对象方法名];

类方法:

  1. 类方法以+开头,如+(void)put;
  2. 类方法只能由类来调用
  3. 类方法不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量。
  4. 调用格式:[类名 类方法名];
  5. 类方法的好处和适用场合;

不能依赖于对象,执行效率更高;

能用类方法解决的问题,尽量使用类方法;

场合:当方法内部不需要使用成员变量时,可以改为类方法。

不带参数的方法声明:

OC基础学习笔记01

  1. 方法的调用

使用对象调用方法就是OC中的消息机制

OC语言中采用特定的语言调用类或者实例(对象)的方法称为发送消息或方法调用。

[类名或者对象名 方法名];

OC基础学习笔记01

不带参数的方法调用。

15-有参方法声明实现及调用

  1. 声明实现

带参数的方法的定义和实现

OC基础学习笔记01

  1. 有参方法的调用

OC基础学习笔记01


本博客内容既有转载自网络的内容,也有本作者原创内容,仅供学习与交流之用
如有侵权或者错误之处,请及时在下方留言!
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址