• Java 基础(Object 类的使用)


    Object 类中的主要结构

    NO. 方法名称 类型 描述
    1 public Object() 构造 构造者
    2 public boolean equals(Object obj) 普通 对象比较
    3 public int hashCode() 普通 取得Hash码
    4 public String toString() 普通 对象打印时调用

    例子

    ObjectTest.java

    package com.klvchen.exer1;
    
    public class ObjectTest {
    	public static void main(String[] args) {
    		
    		int it = 65;
    		float fl = 65.0f;
    		System.out.println("65和65.0f是否相等? " + (it == fl));    //true
    		
    		char ch1 = 'A';
    		char ch2 = 12;
    		System.out.println("65 和 'A' 是否相等? " + (it == ch1));  //true
    		System.out.println("12 和 ch2 是否相等? " + ( 12 == ch2)); //true
    		
    		String str1 = new String("hello");
    		String str2 = new String("hello");
    		System.out.println("str1 和 str2 是否相等?" + (str1 == str2));  //false
    		
    		System.out.println("str1 是否 equals str2?" + (str1.equals(str2))); //true
    		
    //		System.out.println("hello" == new java.util.Date()); //编译不通过
    	}
    
    }
    

    运行结果:

    toString() 方法

    • toString() 方法在 Object 类中定义,其返回值是 String 类型,返回类名和它的引用地址。
    • 在进行 String 与其它类型数据的连接操作时,自动调用 toString()方法
    Date now=new Date();
    System.out.printin("now="+now); //相当于
    system.out.printin("now="+now.toString());
    
    • 可以根据需要在用户自定义类型中重写 toString() 方法如 String 类重写了 toString()方法,返回字符串的值。
    s1="hello";
    System.out.printIn(s1);//相当于System.out.printin(s1.toString());
    
    • 基本类型数据转换为 String 类型时,调用了对应包装类的 toString() 方法
    int a=10;
    System.out.printin("a="+a);
    
    1. 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法

    2. 0bject类中toString()的定义:
      public String toString() {
      return getClass().getName() + "@" + Integer.toHexString(hashCode());
      }

    3. 像 String, Date, File, 包装类等都重写了 Object 类中的 toString() 方法。
      使得在调用对象的 toString() 时,返回 "实体内容" 信息

    4. 自定义类也可以重写 toString()方法,当调用此方法时,返回对象的 "实体内容"

    package com.klvchen.java1;
    
    import java.util.Date;
    
    public class ToStringTest {
    	public static void main(String[] args) {
    		
    		Customer cust1 = new Customer("Tom", 21);
    		System.out.println(cust1.toString());  //重写前:com.klvchen.java1.Customer@26f0a63f  重写后:Customer [name = Tom,age = 21]
    		System.out.println(cust1);  //重写前:com.klvchen.java1.Customer@26f0a63f   重写后:Customer [name = Tom,age = 21]
    		
    		String str = new String("MM");
    		System.out.println(str); //MM
    		
    		Date date = new Date(4534534534543L);
    		System.out.println(date.toString());
    	}
    }
    
    # 重写 Customer toString() 方法
    public String toString() {
    		return "Customer [name = " + name + ",age = " + age + "]";
    	} 
    

    运行结果

  • 相关阅读:
    算法竞赛进阶指南 0.1
    补题 : 过分的谜题
    矩阵快速幂【模板】
    10774: matrix
    火车进出栈问题 【求卡特兰数】
    [最小割]StoerWagner算法
    安装、使用sklearn
    [线段树]跳蚤
    [树形dp][换根]Maximum White Subtree
    [组合数学]Many Many Paths
  • 原文地址:https://www.cnblogs.com/klvchen/p/14446750.html
Copyright © 2020-2023  润新知