Android进阶——Material Design新控件之FloatingActionButton

本文详细介绍了FloatingActionButton组件的概述及其在Android应用中的应用,包括代码实现、功能特性和使用场景。同时,文章还探讨了Java中的==和Equals方法的区别,以及如何正确重写equals方法遵循的原则。

引言

上一篇讲解了InputTextLayout,接下来我们继续学习Google I/O 2015 推出的 Android Design Support Library的其他成员,这一篇主要讲解android.support.design.widget.FloatingActionButton。

一、FloatingActionButton概述

java 代码块:
[static]{
//当创建java对象时,系统总是调用该类中定义的初始化代码块,如果有两个代码块,则按先后顺序执行,初始化代码块虽然也可以看成是java的一种成员但是它没有名字,无法通过类或者对象去调用初始化代码块,仅仅是在创建java对象时隐式执行,而且是在构造器之前执行。
}
代码块总是在构造器执行之前执行,但它不能接收任何参数,对于一个类中所有的对象所进行的初始化操作处理完全相同。所以如果两个构造器中有相同的初始化代码且无需接收参数,就可以提取到代码块中去实现。当然当我们创建一个java对象的时候不仅仅会执行该类的普通初始化代码块和构造器,还会上溯到Object的初始化块,再执行Object 的构造器,再一次执行这个类的父类的初始化块,再到父类的构造器,最后才是本类的初始化块和构造器,最终返回本类的对象

当使用了static修饰符修饰的代码块之后即静态初始化代码块也叫类初始化块,假如有这么一个需求当Employee类加载了之后,需要把Employee的类Filed Wage初始化为10000,此时我们可以使用static关键字来初始化代码块。当然静态代码块会比普通的代码块先执行,由于静态代码块是类相关的,用于对整个类的类Filed 初始化处理,所以自然不能对实例Filed处理。创建一个java对象的时候也会上溯到Object,相关机制与普通代码块类似

java == 和Equals

java中有两种测试两个变量是否相等的方法:一种是利用==运算符,另一种是利用Equals,当使用==来判断时,如果两个变量是基本类型的变量且都是数值类型(不一定数据类型严格相同),则只要两个变量的值相等就返回true,如:int key=65;float key2=65.0f;key==key2 输出true,再比如char ch=’A’;key==ch输出true;
但是对于引用类型变量,他们必须指向同一个对象的时候==才会返回true,且要注意的是==不能用于比较两个类型上没有父子关系的对象,如String str=new String(“helloworld”);
String str2=new String(“helloworld”); str==str2 返回false;而这条语句则会报错:”Dog”==new Dog();;;
第二种使用Equals,并非许多教材中所说的那样是判断,两个对象的值是否相等,或许是因为String类型造成的误解吧,实际上String是重写了Object的equals方法,具体实现的思路就是只要两个字符串包含的字符串序列相同则认为两个String相同,即返回true,换言之,equals比较两个对象是否相等的标准是基于是否重写了equals方法而言的。

重写equals方法的必须遵守的原则:
自反性:对任意x,x.equals(x)一定恒返回true
对称性:对于任意x,y, x.equals(y)返回true,则y.equals(x)也一定返回true
传递性:对于x,y,z,如果x.equals(y)返回true,y.equals(z)也返回true,那么x.equals(z)也一定返回true
一致性:无论调用多少次x.equals(y)返回的结果必须一致
对于任何不适null的x,x.equals(null)一定返回false

×在判断obj是否为某一类的实例时候,应当少用obj instanceof Employee,因为当前面对象是后面类的实例或者子类的实例时候都会返回true,应该使用obj.getClass()==Employee.class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrazyMo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值