黑马程序员技术交流社区
标题:
oc基础笔记 继续更新--对象
[打印本页]
作者:
代战
时间:
2015-12-9 19:17
标题:
oc基础笔记 继续更新--对象
/*
参数的类型用()括起来 参数用:(冒号)分隔.一个参数对应一个:(冒号)
有参方法的使用:
方法的声明:
-(double)sumOfNum1:(double)num1 andNum2:(double) num2;
方法的调用:[c sumOfNum1: andNum2: ];
-(double)sumOfNum1:(double)num1 andNum2:(double) num2 andNum3:(double)num3 andNum4:(double)num4;
*/
//#import<Foundation/Foundation.h>
//@interface Add:NSObject
//
//
//
//-(double)addOfNum1:(double)num1 andNum2:(double) num2 andNum3:(double)num3 andNum4:(double)num4;
//
//
//
//
//@end
//
//@implementation Add
//
//-(double)addOfNum1:(double)num1 andNum2:(double) num2 andNum3:(double)num3 andNum4:(double)num4{
//
//
// return num1+num2+num3+num4;
//}
//
//
//
//@end
//
//int main()
//{
//
//
//
// NSlog(@"");
// return 0;
//}
//
//
//1.方法的数据类型需要添加什么?
括号()
//2.方法的参数名与方法名以什么分隔?
冒号:
//3.方法名怎么确定?
方法中除了方法类型符,参数名和数据类型的部分统称方法名
//4.参数前的修饰可以省略吗?
可以 省略是简化版的 一般不推荐 如前面的num1 num2之类的
//5.方法和函数的区别
这两者功能是类似的。但语法及使用上有不同
1>.对象都要以 - 开头,数据类型要用()括起来,函数不需要
2>.对象的方法声明要写在@interface和@end之间 ,实现必须写在@implementation和
@end之间 函数可以是任何位置(@interface和@end之间除外)
3>.对象方法的参数与方法之间以冒号:分隔.而函数是以括号()
4>.对象只能由对象来调用,函数不需要
5>.对象方法归类/对象所有,函数归文件所有
6>.对象内部能直接通过成员变量名访问某个对象的成员变量,函数不能
//6.类的属性可以是什么数据类型?
所有类型
//
//7.类中可不可以把别的对象当属性?如果可以用什么表示?
可以 指针类型 如 person * name
//8.一个类的属性不赋值。默认的是什么?
默认是0
//9.一个类中的对象属性不赋值能使用吗?
可以
//10.什么叫高内聚?什么叫低耦合?
高内聚:把有关联的属性封装起来,成为一个单一的模块
低耦合:就是一个类中各模块应该尽量独立。
//11.什么叫匿名对象?
没有赋予一个指针去接收的对象 也就是没有名字的对象
//12.匿名对象可不可以复用?
不可以
//13.匿名对象一般不要访问什么?
类的属性
//14.oc的消息机制实现的过程?
比如对象p1调用smile 方法 实际上是给对应的堆空间的对象发送消息,堆中的对象通过isa指针
去代码区寻找类的代码,找到对应的方法
如果方法中使用到了对象的属性,堆中的那个对象调用了方法,方法就访问堆中哪个对象的属性
//这就是oc的消息机制实现的过程
//15.对象中有方法吗?
没有 对象中只有属性
//16.方法在哪里?
在代码区对应的类中
//17.用对象指针是如何通过方法直接访问属性的?
使用oc的消息机制;
比如对象p1调用smile 方法 实际上是给对应的堆空间的对象发送消息,堆中的对象通过isa指针
去代码区寻找类的代码,找到对应的方法
如果方法中使用到了对象的属性,堆中的那个对象调用了方法,方法就访问堆中哪个对象的属性
//18.用对象指针是如何访问方法的?
比如对象p1调用smile 方法 实际上是给对应的堆空间的对象发送消息,堆中的对象通过isa指针
去代码区寻找类的代码,找到对应的方法
//19.类的封装主要是指的什么?
是指隐藏对象的属性和方法的实现细节,仅对外提供公共访问方式。
//20.类的封装有什么好处?
1.将变化隔离。
2.便于使用。
3.提高重用性。
4.提高安全性。
//21.举例说明封装的好处?
//22.封装原则:
1.讲不需要对外提供的内容都隐藏起来。
2.把属性都隐藏,提供公共方法对其访问。
/*
属性的两种操作方式:1.直接操作.@public
2.通过给外部暴露两个方法:set方法用于设置值。get方法用于获取值
set使用规范:
1.不能有返回值
2.必须有参数。且参数类型必须与属性类型一致
3.参数名不能与属性名一致
4.set+属性名:首字母大写
5.作用就是给属性去赋值
get使用规范:
1.必须有返回值
2不能有参数
3.返回值类型必须跟属性类型一致
4.get+属性名:首字母大写
5.作用就是给属性值传递给调用者
*/
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2