A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

个人关于object的总结
/*
* 用输出语句直接输出对象的名称,其实底层调用了该对象的toString()方法。
*
* 如果我们认为某个类应该有某个功能,而我们在这个类中确没有方法,这个时候,就应该在其父类中查找。
* Student类,我们并没有看到有父类啊。
* 注意:任何类都直接或者间接继承自Object类。
*
* Object类的toString()方法:推荐自己重写toString()方法。
*   public String toString():返回对象的字符串表示形式。
*   字符串的组成:
*    getClass().getName() +
'@' + Integer.toHexString(hashCode())
*
*  public final Class<?> getClass():返回的Object类的运行时类。(反射)
*  Class类下面有一个方法:public String getName() 返回某个类的完整路径名称。包括包名。
*   
*  Integer类有一个静态方法:
*      public static String toHexString(int i)
*      返回给定参数的十六进制表示的字符串。
*
*  public int hashCode():返回该对象的哈希码值。
*      是根据对象的地址值计算出来的一个对应的整数值。
*      可以理解为地址值。
*  举例:
*   Student s = new Student();
*
*   public Student getStudent()
*   {
*    return new Student();
*   }
*
*   public int getInt()
*   {
*    return 10;
*   }
*
  Object类的:
*   public boolean equals(Object obj):默认就是比较对象的是否相等,比较的是地址值。
*   
*   而一般来说,同一个类的不同对象,地址值肯定不同。所以,Object类的equals()的默认操作是没有意义。
*   所以, 一般我们会重写该方法比较类的成员变量值是否相同。(按照需求进行比较)
public int hashCode()
public final Class getClass()
public String toString()
public boolean equals(Object?obj)
protected void finalize()
protected Object clone()
*/
public class StudentTest {
public static void main(String[] args) {
  // 创建学生对象
  Student s = new Student();
  
  s.setName("林青霞");
  s.setAge(26);
  
  // cn.itcast_01.Student@181ed9e
  System.out.println(s);
  // cn.itcast_01.Student@181ed9e
  System.out.println(s.toString());
  
  //toString()有些时候灵活度不高。这个时候,一般我们选择getXxx()方法
  System.out.println(s.getName()+"---"+s.getAge());
  
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马