您的位置:首页 > 移动开发 > Objective-C

Object

2016-06-01 13:32 344 查看
package com.Object;

public class Test01{
public static void main(String[] args){
Test01 ts=new Test01();
ts.textEquals();
Student s=new Student();

}
public void testGetClass(){
//Object的getClass()方法返回的是一个该类的class对象,一般使用该class对象的getName方法获取类名
Student s=new Student();
System.out.println(s.getClass());
System.out.println(s.getClass().getName());
Object o=new Object();
System.out.println(o.getClass().getName());

}
public void testHashCode(){
//HashCode()获取的是Object对象的哈希值。哈希值,其实是对象的地址值的一种经过特殊处理后的形式
Student s=new Student();
System.out.println(s.hashCode());
}
public void testToString(){
/*
* 默认情况下,对象的toString方法返回的是它的类名+@+哈希码的十六进制表示
* 这种表示一般没有意义,因为地址值我们一般没有作用,所以我们一般将它重写成为输出所有的成员变量
* 使用myeclipes的source+Generate toString...可以自动生成
*/
Student s=new Student();
System.out.println(s.toString());
//System.out.println(s.getClass().getName());
//System.out.println("@");
//System.out.println(s.hashCode());
//System.out.println(Integer.toHexString(s.hashCode()));
System.out.println(s.getClass().getName()+"@"+Integer.toHexString(s.hashCode()));
}
public void textEquals(){
/*
* 常量类型的比较==是对值得比较
* 引用类型的比较==是对内存地址的比较
* 默认的hashCode()得到的是内存地址的hashCode,所以默认情况下==的比较相当于hashCode的比较
* 对象的equals默认是==一样的,这个是通过查看源码发现的。
* 所以默认情况下==和equals和hashCode比较得到的值是一致的。
* equals可以重写。
* 因为针对内存地址的比较结果不是我们想要的,一般我们需要的是针对成员变量值得比较,所以一般重写
* 一般重写equals方法往往需要重写hashCode方法。
*
* instanceOf 关键字可以判断前者是不是后者的子元素
*/
Student s=new Student("林青霞",27);
Student s1=new Student("林青霞",27);
System.out.println(s.equals(s1));//重写之后比较的就是值得hashCode了。String对象的equals方法比较的是值
}
public void testClone(){
Student s=new Student("林青霞",28);
Student s2=s;
s2.setName("林青霞");
s2.setAge(30);
System.out.println(s+"\n"+s2);
/*
* clone()方法不是想用就可以用,必须实现Cloneable接口才可以使用这个方法。
* clone()方法得到的对象是原来对象的复制品,属性的值都相同,地址值不同,也就是开辟了一块新的空间存储了一样的值
*/
}
}
/*
类Object
java.lang.Object
版本从JDK1.0开始
类Object是类层次结构的根类。每个类都直接或者间接继承这个类

拥有构造方法:
Object()
这里主要讲几个方法:
getClass() 返回此Object的运行时类
hashCode() 返回该对象的哈希码值
toString() 返回该对象的字符串表示
clone()    克隆该对象
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: