public class TestThree {
public static void main(String[] args){
//新建Animal
Animal one=new Animal("花花",2);
Animal two=new Animal("凡凡",2);
//Anima=null;
boolean flag=one.equals(two);
System.out.println("one 和 two的引用比较:"+flag);
System.out.println("one 和 two的引用比较:"+(one==two));
System.out.println("======================");
String str1=new String("Hello");
String str2=new String("Hello");
boolean flag1=str1.equals(str2);
System.out.println("str1 和 str2的引用比较:"+flag1);
System.out.println("str1 和 str2的引用比较:"+(str1==str2));
}
}
结果:
重写Object
public boolean equals(Object obj){
if(obj==null)
return false;
Animal temp=(Object)obj;
if(this.getName().equals(temp.getName()) && (this.getMonth()==temp.getMonth()))
return true;
else
return false;
}
重载
public boolean equals(Animal obj){
if(obj==null)
return false;
if(this.getName().equals(obj.getName()) && (this.getMonth()==obj.getMonth()))
return true;
else
return false;
}
System.out.println(one.toString());
System.out.println(one);
==在比较基本数据类型时,比较的是变量里存储的数值,因此,==比较的是数值是否相等;==在引用数据类型(String、自定义类等),变量里存的是对象的内存地址,因此==比较的是变量里村的是对象的内存地址。
//final class:该类没有子类(可书写称 final publi 或 public final 没有固定)
public final class TestThree {}
//------------------------------------
//final 在方法里表示:该子类不能重写父类的方法,但是可以正常被子类继承使用
public final void eat(){}
//------------------------------------
//final 方法内局部变量:只要在具体被使用之前进行赋值即可,一单赋值不允许被修改/类中成员属性:赋值过程:1、定义直接初始化 2、构造方法 3、构造代码块
public void age(){
final int temp;
System.out.print("使用前赋值temp:");
temp=10;
System.println(temp);
}
@Override :注解可以认为是一个标记
@Override public void eat() { super.eat(); }
© 版权声明
本博客不参与任何交易,也非中介,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。
THE END