美文网首页
Objective-C笔记-2

Objective-C笔记-2

作者: _Dam0n | 来源:发表于2018-01-25 18:40 被阅读10次

在学校学习结束,把东西都搬回家,还要一堆的散伙饭吃完了,搞完很多很多事情之后,终于在距离还有不到1个月的过年前,重新写下东西,学学习什么的···

那么现在从Objective-C开始,也是我实习之前的知识点回顾,也算是一个复习吧····

上次的笔记,感觉好像还是有点凌乱,我还是按照当年lnj老师的思路去总结,再自己加上心得和体会吧,还有给个建议就是,有一本书叫做《Objective-C基础教程》,这本书感觉还是不错的,配合着lnj老师的视频看,反正我是这样干的···

面向对象基本概念:

引用一句很牛逼的话,就是“万物皆对象。”意思就是说,这个世界上所有的东西,都是一个对象,这样这个东西,会一个方法,那么这个东西就是对象,因为这个东西能帮别人,干些事情,但是具体是什么就不知道,但是在程序员看来啊,方法什么的,这个函数,这个对象有什么,会什么,传什么值都是自己去赋予的。

 用书上的话去说,面向对象是相对面向过程而言

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

-面向过程

    +强调的是功能行为

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

-面向对象

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

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

这个是别人的例子啊;

-示例

-把衣服放进洗衣机

    +面向过程

        *打开洗衣机

        *放进去衣服

        *关闭洗衣机

    +面向对象

        *洗衣机-打开

        *洗衣机-存储

        *洗衣机-关闭

这样就应该不难理解的,那么我在工作的时候首先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的对象。最后这样简化开发并提高复用。    

那么在OC中呢,面向对像的核心就是就是对象,若果一开始没有,我们就去创建一个。 OC中创建对象比较复杂, 首先要理解一个概念叫做类。那么我们在这个类上要赋予其方法,清楚将来创建出来的对象有哪些属性和行为,我们就叫这个述事物通过类的形式体现,类是多个同种类型事物的抽象,概念上的定义。

-OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类。

-OC利用类来创建对象,对象是类的具体存在, 因此面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象。

-OC中用类来描述事物也是如此,拥有相同(或者类似)`属性`(状态特征)和`行为`(能干什么事)的对象都可以抽像成为一个类:

    +属性:对应类中的成员变量。

    +行为:对应类中的成员方法。

-定义类其实在定义类中的成员(成员变量和成员方法)

-一般名词都是类(名词提炼法),但是呢,若果这个对象拥有相同(或者类似)`属性`(状态特征)和`行为`(能干什么事)的对象都可以抽像成为一个类;也就是放在一起,打包;

那么如何定义一个类:

     1.必须以@interface开头,@end结尾

     2.成员变量的声明,必须写在@interface与@end之间的大括号中

     3.方法的声明必须在{}下面,不能写在{}中

       如何实现一个类

-格式

@implementation MyClass

- (id)initWithString:(NSString *)aName

{

    //写代码处

}

+ (MyClass *)myClassWithString:(NSString *)aName

{

    //写代码处

}

@end

注意:!!!必须以@implementation开头,@end结尾,类名必须和声明的一致

这里引用lnj老师的话

对象方法声明和实现

特征

    +对象方法以-开头如 -(void)xx;

    +对象方法只能由对象来调用

    +对象方法中可以访问当前对象的成员变量

    +调用格式 [对象名 对象方法名];

示例

```

//声明没有返回值的方法

- (void)method;

//声明有返回值的方法

- (int)method;

//声明有返回值有参数的方法

- (int)method: (int)var;

//声明有返回值有多个参数的方法

- (int)method: (int)var1 andVar2: (int)var2;

实现

    +必须卸载以@implementation开头,@end之间

    +在声明的后面加上{}即表示实现

    +讲需要实现的代码写在{}中

类方法声明和实现

-格式

    +将对象方法-号变为+号

-特征

    +类方法以+开头 如+(void)put;

    +类方法只能由类来调用

    +类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间 来存储类中的成员变量。

-类方法的好处:

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

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

-类方法的场合:

    +当方法内部不需要使用到成员变量时,可以改为类方法

    +类方法一般用于编写工具方法

-示例

```

//声明没有返回值的方法

+ (void)method;

//声明有返回值的方法

+ (int)method;

//声明有返回值有参数的方法

+ (int)method: (int)var;

//声明有返回值有多个参数的方法

+ (int)method: (int)var1 andVar2: (int)var2;

```

-实现

    +必须卸载以@implementation开头,@end之间

    +在声明的后面加上{}即表示实现

    +讲需要实现的代码写在{}中

---

##3.对象方法和类方法区别

对象方法

    +对象方法是属于对象的

    +以减号-开头

    +只能让对象调用,没有对象,这个方法根本不可能被执行

    +对象方法能访问实例变量(成员变量)

    +对象方法中可以调用当前对象的对象方法

    +对象方法中可以调用其他对象的对象方法

    +对象方法中部可以调用类方法

-类方法

    +类方法是属于类的

    +以加号+开头

    +只能用类名调用,对象不能调用

    +类方法中不能直接访问实例变量(成员变量)

    +类方法中不能直接调用对象方法,要想调用对象方法,该对象必须通过参数传入。

-使用场合:

    +当不需要访问成员变量的时候,尽量用类方法

-类方法和对象方法可以同名

注意:通常会发生一些错误:

1)@interface @end和@implementation @end不能嵌套包含

2) OC是弱语法,可以只有@implementation,但实际开发中千万不要这样。

4)漏写@end

5)两个类的对象声明顺序(可以把顺序打乱)

6)成员变量没有写在{}里

7)方法的声明写在了{}里面

8)在声明时不能对类的成员变量进行初始化,请注意成员变量不能脱离对象而独立存在

9)方法无法像函数那样的调用

10)成员变量和方法不能用static等关键字修饰,不要和c语言混淆

11)类的实现可以写在mian函数后面,在使用之前只要有声明就可以

相关文章

网友评论

      本文标题:Objective-C笔记-2

      本文链接:https://www.haomeiwen.com/subject/mfpaoxtx.html