if逻辑实现的两种方式总结


1
public class Text1{ 2 public static void main(String[] args){ 3 Singleton s1=Singleton.getSingle(); 4 Singleton s2=Singleton.getSingle(); 5 Singleton s3=Singleton.getSingle(); 6 System.out.println(s3.equals(s2)); 7 System.out.println(s1.equals(s2)); 8 System.out.println(s1.equals(s3)); 9 System.out.println(s3==s2); 10 System.out.println(s1==s2); 11 System.out.println(s1==s3); 12 System.out.println(s1); 13 System.out.println(s2); 14 System.out.println(s3); 15 } 16 } 17 class Singleton{ 18 private String name; 19 private static Singleton single=new Singleton(); 20 private Singleton(){System.out.println("ddd");name="aa";} 21 public static Singleton getSingle(){ 22 return single; 23 } 24 //重写equals方法-----第一步,boolean值返回,第二步,先写false判断,省字省钱,第三步,选择以下两种方式之一写逻辑,第二种阅读性差,代码简洁 25 /* 26 public boolean equals(Singleton single){ 27 if(single==null) return false; 28 if(single!=this) return false; 29 if(single.hashCode()!=this.hashCode()) return false; 30 return single.name.equals(this.name) ? true : false; 31 }*/ 32 //重写equals方法2-----利用||短路特性来实现 33 34 public boolean equals(Singleton single){ 35 if(single==null||single!=this||single.hashCode()!=this.hashCode()) return false; 36 return single.name.equals(this.name) ? true : false; 37 } 38 }
原文地址:https://www.cnblogs.com/kaililikai/p/5888140.html