OC第一课 类和对象

一、OC简介

1.OC是在C语言的基础上,增加了一层最小的面向对象语法

2.完全兼容C语言

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

对于2,3 两点如何理解呢?

新建一个.m的文件(注:OC文件的后缀为.m)在这个.m中你可以用你再学习C语言中学过的语法和知识,编译、链接、运行完全没有问题。
OC第一课 类和对象
不过如果你在一个.c的文件中,写上一大推OC中用到得知识,就会报错,这一点需要注意。所以第2点可以这么理解,OC是完全兼容C语言的,但是C语言不兼容OC。

二、OC语法预览
1.关键字

OC中关键字基本都是以@开头的比方说:@interface,@end,@implementation,@public 等等

2.字符串以@开头

比如@”Hello”是OC字符串,而”Hello”是C语言中的字符串

3.数据类型

就基本类型而言,OC比C多了一个BOOL类型,复杂数据类型,如结构体、枚举,C语言中有的OC中也有。

4.NSLog与printf的区别

NSLog是OC中的输出函数,printf是C语言中的输出函数。首先就他们的大小写就有区别,NSLog前3个字母大写,printf都是小写。第二点就是NSLog自动换行,而printf换行得使用’\n’。第三点就是NSLog的参数是OC字符串得加上@,printf中的字符串是C语言字符串

5.#import的作用

a)跟#include 一样,是用来拷贝某个文件的内荣

b)可以自动防止文件内容被拷贝多次,也就是头文件中不用加入下面的预处理指令了
OC第一课 类和对象

三、面向对象和面向过程思想
1)区别分析

a)面向过程关注的是解决问题需要哪些步骤,面向对象关注的是解决问题需要哪些对象

比如有这么个例子: 以用电脑听歌为例子

1⃣️面向过程实现的是: 先打开电脑,然后播放电脑中的歌曲,最后关闭电脑

2⃣️面向对象实现的是:对于一个电脑对象,调用它的开机,播放歌曲,关机方法

2)需要设计哪些类,如何设计类

1.类的设计只关心(类名,属性,行为)

2.一般名词都是类

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

3)OC中创建类和对象
OC第一课 类和对象

1.类的声明用到了关键字@interface、@end,类的实现用到了关键字@implementation、@end(注:@end不能省)。

2.一般都是通过指针来间接访问一个对象,创建一个对象的方法是[类名 new]

[email protected]的大括号{}中声明类的成员变量(实例变量)默认值为0,跟C语言中的全局变量一样。

[email protected]可以让成员变量被外界访问

5.加上:NSObject的目的是让Car类具备创建对象的能力(其实:是继承的意思,NSObject也是一个类,基类)

四、方法

1)不带参数的方法
a.设计一个返回PI的方法
OC第一课 类和对象

2)带参数的方法
a.设计一个计算平方的方法
OC第一课 类和对象

b.设计一个计算和的方法
OC第一课 类和对象

3)总结

a.OC中方法不允许同名

b.:冒号也是方法的一部分

c.有多少个参数就有多少个冒号:

d.从第二个参数开始冒号之前要加上对应的参数名作为描述

e.方法中的小括号()是用来将类型括起来的

f.对象方法得用-开头,类方法得用+开头

ps:注意
类的方法和对象方法的区别
类中可以定义两种方法
在@interface 类名 :NSObject
{
}
这里可以声明类方法对象方法
@end

(1)对象方法
对象方法声明用 - 开头
对象方法中可以直接访问属性(成员变量)
对象方法必须用对象调用 [对象 对象方法名称]

对象方法可以直接调用其他对象方法;
对象方法也可以直接调用其他类方法

(2)类方法
类方法的声明用 + 开头
类方法不可以直接访问对象的属性
类方法必须用类来调用 [类 类方法名称] 例:[Preson new] new为类方法 +开头的声明

类方法中可以直接调用对象方法;
类方法可以直接调用类方法