- String内存结构:
- equals方法使用练习:
package ststring; //关于String方面的一些内容 /* * 两个练习:编写Order类,有int型的orderID,String型的OrderName * 相应的getter和setter方法,两个参数的构造器,重写父类的equals方法 * public boolean equals(Object obj),并判断测试类中创建的两个对象是否相等 * * */ public class StString { public static void main(String[] args) { Order a = new Order(1001, "aa"); Order b = new Order(1001, "aa"); System.out.println(a == b); System.out.println(a.equals(b));// 重写之前,比较的仍然是两个对象的地址值 } } class Order { private int orderID; private String OrderName; public Order(int orderID, String orderName) { super(); this.orderID = orderID; this.OrderName = orderName; } public int getOrderID() { return orderID; } public void setOrderID(int orderID) { this.orderID = orderID; } public String getOrderName() { return OrderName; } public void setOrderName(String orderName) { OrderName = orderName; } // 重写之后是比较的属性 public boolean equals(Object obj) { if (this == obj) { return true; } else if (obj instanceof Order) { Order a = (Order) obj;//向下转型 //这边要注意,String类型的已经重写过了equals了 return this.orderID == a.orderID && (this.OrderName).equals(a.OrderName); } else return false; } //重写toString方法 //这叫手动实现 /* public String toString() { return ""+OrderName+"orderID="+orderID; }*/ //自动调用 @Override public String toString() { return "Order [orderID=" + orderID + ", OrderName=" + OrderName + "]"; } }
3.toString()方法使用及注意:上图已经写出了对toString的手动及自动重写方法,做以下补充:
package ststring; /*toString 方法的使用 public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 如果没有重写的话返回的是对象在堆中的首地址值 重写之后,调用的就是自己重写的 像String类,包装类,Date类,File类等已经实现了Object类中的toString方法重写 */ public class UseToString { public static void main(String[] args) { Order p1= new Order(1001,"1"); System.out.println(p1.toString()); } }
String
最新推荐文章于 2022-10-27 16:00:57 发布