易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA重写equals方法


VA问题的引出:今天编写贪吃蛇程序的时候遇到这样一个问题
public class Coordinate {
 public int headX, headY;
 Coordinate(int headX, int headY) {
  this.headX = headX;
  this.headY = headY;
 }
  
 public boolean equals(Coordinate c) {
   if(this.headX == c.headX && this.headY == c.headY) {
      return true;
   } else {
      return false;
   }
}
说明:Coordinate 是一个坐标类,重写equals方法的原因是要比较蛇身是否到达了记录下来的蛇头的转弯点,于是自己重写了equals方法,但是发现没有效果,即使x,y的值一样,返回的也是false。
为了进一步熟悉equals方法,于是自己又先写了下面一个验证的程序:
public class TestEquals {
 public static void main(String[] args) {
  Dog d1 = new Dog(1);
  Dog d2 = new Dog(1);
  System.out.println(d1 == d2);
  System.out.println(d1.equals(d2));
 }
}
class Dog {
 int weight;
 
 Dog(int weight) {
  this.weight = weight;
 }
  public boolean equals(Dog d) {
    if(this.weight == d.weight) {
       return true;
    } else {
       return false;
    }
  }
}
当然结果是一样的,为了进一步验证,于是就进一步重写了hashCode()方法:
public int hashCode() {
   return 0;
}
因为有时候优先比较的是hashCode码。但是结果还是不行。我只好找回原来看过的马士兵老师的视频教程,才发现自己对这个重写很不熟悉,正确的写法应该是:
public class Coordinate {
 public int headX, headY;
 Coordinate(int headX, int headY) {
  this.headX = headX;
  this.headY = headY;
 }
 
 public int hashCode() {
  return 0;
 }
 
 public boolean equals(Object obj) {
  if(obj == null) {
   return false;
 &n


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

java美化界面包

导入配置jar包 substance.jar
然后在frame的主函数 加入如下代码
 JFrame.setDefaultLookAndFeelDecorated(true);
   JDialog.setDefaultLookAndFeelDecorated(true);
   try {
   UIManager.setLookAndFeel(new org.jvnet.substance.skin.SubstanceModerateLookAndFeel()) ; ......

20个非常有用的Java程序片段 [Java]

下面是20个非常有用的Java程序片段,希望能对你有用。
1. 字符串有整型的相互转换
1
   
2
String a = String.valueOf(2);   //integer to numeric string  
3
int i = Integer.parseInt(a); //numeric string to an int 
2. 向文件末尾添加内容
01
    ......

Java解释Excel数据(jxl.jar包的使用)

基本操作
一、创建文件
拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:
/*
* Created on Dec 30, 2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Cod ......

Hibernate,java,sql类型的对应关系


Java数据类型
Hibernate数据类型
标准SQL数据类型
byte
byte
TINYINT
short
short
SMALLINT
int
integer
INGEGER
long
long
BIGINT
float
float
FLOAT
double
double
DOUBLE
java.math.BigDecimal
big_decimal
NUMERIC
char, java.lang.Character
character
CHAR(1)
boolean, java.lang.Boole ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号