黑马程序员————第二十天

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

点特性

左侧stu.age=10;<=>[stu setAge:10];

int a=p.age;点语法出现在等号右侧将page替换为[p.age];


验证文件是否copy进

点击项目->BuildPhases->Compile Source


OC点语法本质为方法调用必须要有set get方法


@property编译器指令

告诉编译器声明属性的访问器(getter/setter)方法


@property  类型名 方法名(为get方法名)

写在声明@interface@end内


@property声明的实例变量为私有变量只在类中使用


@synthesize

在.m文件中定义set,get方法的实现


@synthesize age;

@synthsize name;与@property连用默认生成了两个变量,age,name

必须@property先声明


@synthesize  age=_age,weight=_weight //将实例变量与属性关联不再使用默认生成变量


Xcode4.4以后可只使用@property自动生成下划线实例变量(私有变量)


编译时报错  不符合语法

运行时报错 代码区不存在



如果父类没有子类相同名的方法需要强制转换 


NSObject *obj=[Animals new];

[(Animal *)obj run];


ios5后推出instancetype类型 与id类型不同点:

instance可返回和方法所在类型相同类型的对象 id只能返回未知类型对象

相同点就是都能作为返回值


动态绑定

在OC中 对象能否调用指定的方法  不是由编译器决定而是由运行时决定的

被称作方法的动态绑定



在OC中对象不调用方法而是接受消息 源代码中消息也称为选择器

消息表达式为[reciver  message]


首先通过第一个参数reciver找到它的_isa指针,然后在_isa指向的class对象中使用第二个参数selector查找方法

如果没有找到就用当前class对象中的新_isa指针到上一级的父类的class对象中查找

当找到方法后,再依据reciver的self指针找到当前对象调用当前对象的具体实现的方法(IMP)然后传递参数调用实现方法

若一直到NSObject的Class对象也没有,则会报错。



内省 对象在运行时获取其类型的能力


1.判断类型

-(Bool) isKindOfClass:classObj判断实例对象是否为这个类或其子类实例

Bool b= animal isKindOfClass:[Animal class];

-(Bool) isMemberOfClass:classObj 判断实例对象是否为这个类实例

-(Bool) isSubClassOfClass:classObj 判断实例对象是否为其子类实例



2.判断对象能否响应指定的方法

-(Bool)respondsToSelector:selector

SEL s1=@selector(run);

Bool b=[dog respondsToSelector:s1];

判断类有无此方法

-(Bool)instanceRespondToSelector:selector

[Dog instanceRespondToSelector:s1];




响应方法

1.通过performselector响应无参方法

SEL s1=@selector(run);

[ani performselector:s1]

2.通过performselector:withObject:响应有参方法

SEL s1=@selector(eat:);//因为有一个参数所以eat后有冒号

[ani performselector:s1withObject:@"香蕉"];

3.通过performselector:withObject:withObject:响应两个参数

[ani performselector:s1withObject:@"香蕉"withObject:@"苹果"];



构造方法

1.alloc分配空间  此时内存已经清零

2.init初始化

3.返回值为对象地址


init就是构造方法  是对象方法减号开头


@implementation  Person

-(instancetype)init{

self=[super init];// 作用:防止文件类的初始化方法释放(release)掉self指向的空间并重新alloc了一块空间

[super init]可能失败表示父类初始化失败   super指代父类的对象

if(self)

{

-age=10;

}

return self;

}


自定义构造方法

1.一定为对象方法减号开头

2.返回值为instancetype类型

3.方法名为initWith开头
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值