instanceof、==、equals 区分和用法 还有return

instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

==其实是比较两个对象的内存地址,而equals方法是比较两个对象是否内容相等


instanceof:

用于判断一个引用类型所引用的对象是否是一个类(子类)的实例,左边操作元是一个引用类型,右边是一个类(父类)名或(父类实现的)接口名;
多态性,对于引用类型变量,java编译器只根据变量被显示声明的类去编译,左边操作元被显示声明的类型与右边操作元必须是同类或有继承关系
在运行时根据左边实际引用的对象来判断


操作符==

操作符==用于判断两个操作元是否相等,既可以是基本类型也可是引用类型,当是后者时,引用变量必须引用同一个对象时才返回true

操作符==同样具有多态性


对象的equals()方法

Object中equals方法规则为:当参数object引用的对象与当前对象为同一个对象时就返回true
jdk中一些覆盖equals方法的类有io.File、util.Date、lang.String以及包装类,比较规则更具实际意义:对象已知且内容一致,则返回true

用户可通过自定义类中覆盖equals方法,重新定义比较规则


return什么时候用

是根据函数声明,如果函数声明了void类型返回值就不需要写return,如果函数声明了void类型外的任意返回值类型都要明确的写上return



你可能感兴趣的:(Java,Android)