Objective-C 对象特性

本文详细介绍了Objective-C编程的基础知识,包括字符串操作、类方法、匿名类、封装、依赖关系、关联关系、方法重载、static作用、变量声明等核心概念。深入探讨了变量声明、方法使用、类间交互的原理与实践,为开发者提供了全面的编程指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20.格式化创建字符串

NSString *imageName = [NSString stringWithFormat:@"xxxxxx%02d.jpg",i];


21.字符串长度

在OC里面,中英文都是一个字符。

NSString *str1 = @"hahahahaha";

NSUInteger len = [str1 length];

NSLog(@"length is %ld",len);   //len = 10;

NSString *str2 = @"哈哈哈";

NSUInteger len2 = [str2 length];

NSLog(@"length is %ld",len2);  //len2 = 3; 


22.类方法

Objective-C中的类可以声明两种类型的方法:实例方法和类方法。

①简述

    实例方法就是一个方法,它在类的一个具体实例的范围内执行。也就是说,在你调用一个实例方法前,你必须首先创建类的一个实例。

而类方法,不用创建实例使用。

    + 表示类方法,就是类调用方法,不依赖与任何对象的方法。

    - 表示实例(对象)方法,只能时对象可调用,依赖与任何对象的方法。

②使用

    [类名 类方法名];

③注意事项

    1)类方法名可以和实例方法名重名;

    2)在类方法里使用了self,这个self执行的类对象class object而不是实例对象instance object;

    3)类方法中可以调用其他类方法,可以直接使用本类名(或者其他类名)调用类方法;

④优点:

    1)节省内存空间;

    2)提高了效率;

    3)作为工具方法;

⑤易犯错误:

    1)在类方法中使用了类的成员变量;

    2)类方法不可以调用自身,会造成死循环;

⑥应用场景

如果我们调用了一个方法,该方法中不需要使用成员变量,那么我们可以将该方法声明为类方法。


23.匿名类

使用:[car new]; 

[[car alloc] init];    //等价于[car new]; 但这样把内存和吃实话工作分开,这样更加灵活,可以自行初始化对象的成员变量值

①使用匿名类访问实例变量,能访问,但是只能访问一次,以后再访问,实际上是访问新的空间

②使用匿名的类,可以调用方法。

③优缺点

    1)优点:可以简化代码,方便方法调用

    2)缺点:匿名对象实例化以后,只能正确的使用成员变量一次


24.封装

封装的步骤

    ①seter方法(设置器)

        1)为外界提供一个设置成员变量值的方法。

        2)命名规范:1.方法名必须以set开头;    2.Set后面跟上成员变量的名称,首地址大写;    3.返回值一定时void;    4.一定要接受一个参数,而且参数类型需要和成员变量的类型一致;    5.形参名不能和成员变量名一样(苹果官方推荐成员变量名前加_以示区分);

    ②getter方法(访问器)

        1)get方法的作用:为调用者返回对象内部的成员变量

        2)命名规范:1.一定有返回值,返回值的类型和成员变量的类型一致;    2.方法名和成员变量名一样;    3.不需要接收任何参数


25.依赖关系

A对象作为B对象的局部变量或是方法形参的,B依赖于A,这时候我们称A与B之间存在一种依赖关

系。

面向对象设计中:

    耦合度:当修改一个对象的时候,对另外一个对象的影响程度;

    低耦合:当修改一个对象的对其他对象影响比较小;

    高内聚:一个对象仅仅做自己相关的事情;

    面向对象设计原则:单一职责原则;


26.关联关系

关联关系哦,HasA关系:当一个对象拥有另一个对象的时候,当B对象为A对象的成员变量的时候,B对象与A对象之间存在一种关联关系。

关联关系时面向对象中最常用的一种关系。

    关联关系的耦合度要高于依赖关系。


27.方法重载

概念:方法重载时指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

​但是OC中没有方法重载。OC没有严格的方法重载,在OC中,方法名不允许相同。


28.static

在变量声明前加上关键字static,可以使用局部变量保留多次调用一个方法所得的值。

变量为静态变量,位于程序的全局数据区。

若作全局变量,可将声明放在实现文件的开始部分。

①使用误区:

    1)使用static修饰实例变量是不被允许的;

    2)使用static修饰了方法,也是错误的;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值