1.方法名由什么组成?有没有方法的重载? 除掉参数类型和参数名称和返回值类型的所有内容。 没有重载。 2.方法与函数有什么区别? (1).方法以-或者+开头,数据类型要用()括起来。函数不需要。 (2).方法的声明必须写在@interface和@end之间,实现必须写在@implementation 和@end之间 函数可以写在任意位置(@interface和@end之间除外) (3).方法必须由对象或者类来调用,而函数不需要。 (4).方法归类或者对象所有,函数归文件所有。 3.用什么表示对象?什么叫匿名对象? 类的具体事例。 类是具有相似内部状态和运动规律的实体的抽象。 匿名对象:指没有变量名的对象。 4.一个类的属性又叫什么? 实例变量和成员变量。 5.一个类的属性可以是什么类型? 任意类型。 6. 一个类的属性默认值是多少? 0或者null. 7.Person *per=[Person new];per是一个指针还是一个对象?占几个字节(64位)? per是一个对象。8个字节。 8.方法有哪两种?有什么区别?各有什么应用场景? 方法分为类的方法和对象的方法。类的方法以+开头,对象的方法以-开头。类的方法使用便捷,但是不能访问类的属性。对象的方法可以直接访问对象的属性。 9.类方法能直接访问属性吗?如果一定要访问一个对象的属性,要怎么操作? 不能直接访问,如果一定要访问,必须把这个属性对应的对象传进方法中去。或者在类方法中直接创建一个新对象,然后用这个对象去访问。 10.封装在OC中主要指的是对什么的封装?有什么好处? 是指对类的属性的封装。好处:将变化隔离,便于使用,提高重用性,提高安全性。 11.属性封装的原则是什么? (1).将不需要对外提供的内容都隐藏起来。 (2).把属性都隐藏,提供公共方法对其访问。 12.匿名对象与有名字的对象最大区别是什么? 匿名对象具有一次性。使用一次之后再次使用,将重新初始化对象的属性值。 13.对象创建后,属性与方法是在一起吗?如果不在各在哪里? 不是,属性存在于内存的堆区,方法存在于内存的代码区。 14.对象的指针操作对象的时候用的是什么机制?访问方法的过程是什么? 消息机制。访问方法过程:对象指针指向内存堆区的isa指针,isa指针指向内存代码区的对象的方法,最后访问方法。 15.isa指针指向的是什么?一个对象有几个isa指针?同一个类的多个对象isa指针一样吗? isa指向的是内存代码区的方法。一个对象由1个isa指针。不一样。 16.类的设计要遵循哪两个原则? 高内聚。低耦合。
|