Object类的几个方法
2006-09-06 23:56
375 查看
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
package helloWorld;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
import java.util.Hashtable;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
public class Key ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
private String name;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
private int age;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public Key(String name, int age) ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
this.name = name;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
this.age = age;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public int getAge() ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return age;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public void setAge(int age) ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
this.age = age;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public String getName() ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return name;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public void setName(String name) ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
this.name = name;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
/** *//**
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* Key key1=new Key("key1",1);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* Key key2=new Key("key2",2);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* Key key3=new Key("key1",1);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* Key key4=key1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 对象间的比较分两种:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 一种是通过比较内存地址是否一致比较是否是同一对象,用==来表示。
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 如key1和key3内容虽然相同, 但key3是新new的,和key1地址不一样。以上只有key1==key3.
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 另一种是按编程人员的眼光看两个对象是否一致,用equals方法来表示,
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 具体怎么一样是一个属性一样就可以还是需要所有属性都一样这两个对象才equals由
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 开发人员自己实现这个方法来决定。
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public boolean equals(Object obj) ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (obj instanceof Key)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
Key key=(Key)obj;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
if (name.equals(key.getName())&&age==key.getAge())
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return true;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
else return false;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
else return false;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
/** *//**
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 当此类的对象做为HashTable的key时,当两个对象既equals且hashCode相同的情况下视为同一个key。
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* Hashtable ht=new Hashtable();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* ht.put(new Key("Tom",20),"I'm Tom");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* ht.put(new Key("Tom",20),"I'm Mike");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* ht.put(new Key("Andy",20),"I'm Andy");
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* ht.get(new Key("Tom",20)结果为 I'm Mike
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* JAVA规定两个equals的对象其haseCode也要一样,所以一般情况下这两个方法是同时覆盖的。
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
*
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 一般几个属性在equals中比较,就用这几个属性的hashCode XOR 即^
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public int hashCode() ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return name.hashCode()^new Integer(age).hashCode();
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
/** *//**
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 以对象做为参数打印时显示的文本
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* System.out.println(new Key("Andy",20));
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 如果没覆盖此方法,输出为 helloWorld.Key@1f35b6
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
* 如此覆盖后,输出为 Andy,20
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
*/
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
public String toString() ...{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
return name+","+age;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
相关文章推荐
- 黑马程序员--java基础--Object类中的几个方法、包的概念
- 关于Java中Object类的几个方法示例
- Java学习总结(16.07.08)Object类的几个常用方法
- JAVA中Object类中的几个方法
- Object类中的几个重要方法(一)
- Object类的几个方法
- 彻底关闭Excle进程的几个方法
- Windows 7 几个小问题的解决方法(二)
- Java中Object类的公有方法
- 通过valgrind、gdb定位程序问题的几个方法小结
- 几个颇有创意的网站推广方法 转载
- Form开发中组件控制的几个常用方法 .
- 删除数据库中重复数据的几个方法
- 几个论文查重的方法
- Android Matrix几个方法的使用
- GestureDetector方法中的几个参数
- Form开发中组件控制的几个常用方法
- 几个数组去重的方法
- 我遇到的几个VC错误及解决方法
- Python3基础 try-except 几个异常采取同样的处理方法,即except后面跟随多个异常类型