`
- 浏览:
27673 次
- 性别:
- 来自:
北京
-
package helloWorld;

import java.util.Hashtable;


public class Key ...{
private String name;
private int age;

public Key(String name, int age) ...{
this.name = name;
this.age = age;
}

public int getAge() ...{
return age;
}

public void setAge(int age) ...{
this.age = age;
}

public String getName() ...{
return name;
}

public void setName(String name) ...{
this.name = name;
}


/** *//**
* Key key1=new Key("key1",1);
* Key key2=new Key("key2",2);
* Key key3=new Key("key1",1);
* Key key4=key1;
*
* 对象间的比较分两种:
* 一种是通过比较内存地址是否一致比较是否是同一对象,用==来表示。
* 如key1和key3内容虽然相同, 但key3是新new的,和key1地址不一样。以上只有key1==key3.
*
* 另一种是按编程人员的眼光看两个对象是否一致,用equals方法来表示,
* 具体怎么一样是一个属性一样就可以还是需要所有属性都一样这两个对象才equals由
* 开发人员自己实现这个方法来决定。
*/

public boolean equals(Object obj) ...{
if (obj instanceof Key)

...{
Key key=(Key)obj;
if (name.equals(key.getName())&&age==key.getAge())
return true;
else return false;
}
else return false;
}

/** *//**
* 当此类的对象做为HashTable的key时,当两个对象既equals且hashCode相同的情况下视为同一个key。
*
* Hashtable ht=new Hashtable();
* ht.put(new Key("Tom",20),"I'm Tom");
* ht.put(new Key("Tom",20),"I'm Mike");
* ht.put(new Key("Andy",20),"I'm Andy");
*
* ht.get(new Key("Tom",20)结果为 I'm Mike
*
* JAVA规定两个equals的对象其haseCode也要一样,所以一般情况下这两个方法是同时覆盖的。
*
* 一般几个属性在equals中比较,就用这几个属性的hashCode XOR 即^
*/

public int hashCode() ...{
return name.hashCode()^new Integer(age).hashCode();
}


/** *//**
* 以对象做为参数打印时显示的文本
* System.out.println(new Key("Andy",20));
* 如果没覆盖此方法,输出为 helloWorld.Key@1f35b6
* 如此覆盖后,输出为 Andy,20
*/

public String toString() ...{
return name+","+age;
}

}

分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java中的Object类作为所有类的共同祖先,其提供的几个基础方法对于Java对象的操作至关重要。理解这些方法的作用和如何适当地重写它们,对于编写可读性好、易于维护的代码十分重要。学会正确地使用getClass()、...
`Object` 类的重要性体现在以下几个方面: 1. **作为所有类的基础**:Java 中的所有类(除了基本数据类型之外)都是 `Object` 类的子类。 2. **提供通用方法**:`Object` 类定义了一些非常重要的方法,如 `equals()...
Object类提供了几个核心的方法,这些方法在处理对象时非常关键,包括equals()、hashCode()、toString()、clone()、finalize()等。 1. **equals() 方法**: - 默认情况下,equals() 方法比较的是对象的引用,即检查...
要解决`<Object>`标签遮盖`<div>`标签的问题,我们可以尝试以下几种方法: 1. **CSS层级调整**: 使用CSS的`z-index`属性可以控制元素的堆叠顺序。给`<div>`标签设置一个比`<Object>`标签更高的`z-index`值,可以...
主要包含Object类中的getClass()、hashCode()、equals()、toString()方法的使用和作用,还包含一个3D旋转模型,还包含几个常见的面试题的解析,可用作学生每周技术分享或者上台演讲,适用于大学计算机专业相关人士。
在“用C# MapObject编写的一个GIS程序”中,开发者已经实现了以下几个关键功能: 1. **添加Shp文件**:程序能够读取并加载Shp文件,将其中的地理数据渲染到地图上。这涉及到对MapObject库的API调用,如`IMapServer....
那么,我们就来看一看Object类的最常用的两个方法是如何用的。 toString()方法 toString()方法是 Object 类的一个方法,该方法的主要作用是将对象转换为字符串。默认情况下,toString()方法返回的是对象的地址值,...
Object类提供了几个重要的方法,包括equals、hashCode和toString等。 equals方法是用于判断两个对象是否相等的方法。它是Object类中的一个重要方法,用于比较两个对象是否相同。如果两个对象的equals方法返回true,...
PageObject模式有以下几个关键优势: 1. **代码的可读性**:由于测试脚本不再包含具体的元素定位,而是调用PageObject类的方法,使得测试脚本更易于理解。 2. **代码的可维护性**:当网页结构改变时,只需要在一个...
这个方法来自 `org.json.JSONArray` 类,它允许我们将Java对象序列化成JSON格式。然而,为了能够正确地调用 `JSONArray.fromObject()`,你需要引入特定的库,也就是相关的JAR包。 在给定的文件列表中,我们看到以下...
通常,这个包会包含几个关键文件,如`.pas`单元文件,它们包含了SuperObject的核心实现。将这些文件添加到你的工程中,确保编译器能够找到它们。 使用SuperObject解析JSON数据的基本步骤如下: 1. 导入必要的单元...
`<object>` 标签有几个关键属性值得特别关注: 1. **`classid`** - 此属性用于关联一个应用程序,它是执行嵌入内容的应用程序在Windows系统中的唯一标识符。例如,对于Flash,这个值通常是 `clsid:D27CDB6E-AE6D-11...
具体来说,Active Object模式包括以下几个关键组件: 1. **活性对象(Active Object)**:这是核心组件,它封装了一个执行线程和一组异步方法。每个方法调用都会被包装成一个任务(或消息),并放入一个任务队列中...
属性描述符有以下几个主要属性: - **value**:设置属性的初始值。如果设置了这个值,那么通过直接赋值的方式尝试修改属性时,将会调用setter(如果存在)。 - **writable**:布尔值,表示属性值是否可变。默认为...
基于MapObject的GIS程序设计主要涉及以下几个核心知识点: 1. **地图对象模型**:MapObject的核心是地图对象模型,它包含了地图、图层、几何对象、属性表等一系列GIS元素。理解这些对象及其相互关系是构建GIS应用的...
SuperObject库通常包含以下几个关键部分: 1. **解析器(Parser)**:这个组件能够读取JSON格式的字符串,将其转换为Delphi的对象结构,如TSuperObject。解析器通常支持JSON的基本类型,包括字符串、数字、布尔值、...
在了解Matlab面向对象编程之前,我们首先需要明确几个基本概念: 1. **类(Class)**:定义了一组具有相同属性和行为的对象。 2. **对象(Object)**:类的一个实例,拥有类定义的所有属性和方法。 3. **属性...
在这个类中,可以编写用于描述架构和具体实现的两个方法,它们将分别被`DescribeSchema`和`Execute`调用。 ##### 6. 架构描述 在架构中添加Service和ServiceObject的描述代码,指定它们的名称、显示名称等信息,并...
在LDAP中,每个目录条目都有一个或多个对象类(Object Class),这些对象类定义了该条目的属性集。例如,“person”对象类定义了一个人的基本属性,如名字、姓氏等。“organizationalUnit”对象类则定义了一个组织...
在这个Demo中,我们可以看到几个关键的文件和目录: 1. `ClassDiagram1.png` - 这可能是一个类图,展示了Query Objects和其他组件之间的关系。类图可以帮助我们理解不同类的职责以及它们如何协作完成查询。 2. `...