java中Object.equals()简单用法

/*
equals()方法默认的比较两个对象的引用!
*/
class Child {
    int num;
    public Child(int x){
        num = x;
    }
     
    //人文的抛出运行时异常的好处是:可以自定义错误信息!
     
    /*public boolean equals(Object o) throws ClassCastException{
         if(!(o instanceof Child)) throw new ClassCastException("中文提示:类型错误");
         Child ch = (Child) o;
         return num == ch.num ;
    }*/
     
    /*
        Exception in thread "main" java.lang.ClassCastException: 中文提示:类型错误
        at Child.equals(PC.java:8)
        at PC.main(PC.java:17)
    */
     
    public boolean equals(Object o){
         Child ch = (Child) o;
         return num == ch.num ;
    }
     
    /*
        Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot
        be cast to Child
        at Child.equals(PC.java:14)
        at PC.main(PC.java:22)
    */
}
 
public class PC{
     public static void main(String[] args){
        Child p1 = new Child(11);
        if(p1.equals(new Integer(11)))
           System.out.println("true");
            
        System.out.println("这句话是否执行?");// 如果异常得到了处理, 那么这句话就会执行,否则就不会被执行!
     }
}
时间: 2024-12-25 22:57:57

java中Object.equals()简单用法的相关文章

java object用法-Java中object类的用法

问题描述 Java中object类的用法 class Student { String name; int age; public boolean equals (Object obj) { Student st = null; if(obj instanceof Student) st =(Student)obj; else return false; if(st.name==this.name&&st.age==this.age) return true; else return fa

java集合——Java中的equals和hashCode方法详解_java

Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用. equals()和hashCode()方法是用来在同一类中做比较用的,尤其是在容器里如set存放同一类对象时用来判断放入的对象是否重复. 这里我们首先要明白一个问题: equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等.换

Java中的MessageFormat.format用法实例

  这篇文章主要介绍了Java中的MessageFormat.format用法实例,本文先是讲解了MessageFormat的语法,然后给出了多个操作实例,需要的朋友可以参考下 MessageFormat本身与语言环境无关,而与用户提供给MessageFormat的模式和用于已插入参数的子格式模式有关,以生成适用于不同语言环境的消息. MessageFormat模式(主要部分): 代码如下: FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { Arg

JAVA中的final关键字用法实例详解_java

本文实例讲述了JAVA中的final关键字用法.分享给大家供大家参考,具体如下: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是"这是无法改变的."不想改变的理由有两种:一种是效率,另一种是设计.由于两个原因相差很远,所以关键子final可能被误用. 接下来介绍一下使用到final的三中情况:数据,方法,类 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的.有时数据的恒定不变是很有用的,例如: 1. 一个编译时恒定不变的常量 2.

详解Java中Iterator迭代器的用法_java

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承

java中的equals()和toString()方法实例详解_java

java中的equals()和toString()方法 , 这里写个小例子帮助大家学习理解此部分知识. /* 所有对象的父类Object Object中的方法: equals() 对象是否相同的比较方法 toString()对象的字符串表现形式 */ class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } } class ObjectDemo {

java this 传递-Java中this传递的用法

问题描述 Java中this传递的用法 假设有一个容器类和一个部件类,在容器类的某个方法中要创建部件类的实例对象,而部件类的构造方法要接收一个代表其所在容器的参数,那代码怎么写啊 解决方案 没有继承关系的类,不能用构造函数传值.你可以让部件类的构造函数包含一个容器的参数,在其中初始化: class Part { pbulci Part(Container c) { ... } } class Container { public Container() { Part p = new Part(t

对象-java中重写equals方法为什么不直接在里面比较hashcode()?

问题描述 java中重写equals方法为什么不直接在里面比较hashcode()? 看书上说只要重写在一个类中重写equals方法,那就一定要重写hashcode方法,因为两个对象只要equals返回值为true,那么他俩的hashcode就一定相同. 那为什么不可以提前先写好hashcode函数,然后在equals函数里面直接来一行if(this.hashcode() == otherObject.hashcode()) return true;else return false;就行了?

java中的static的用法

问题描述 java中的static的用法 为什么我不在class Book前面加static 这个代码会报错list.add(new Book(123, "java编程思想")); 加上之后就不会报错了 解决方案 BOOk只是内部类,静态方法在类加载时加载,其他的在实例化类时加载, 也就是main加载在book之前,不能调用不存在的东西吧 解决方案二: Java之static用法(详解)java中static的用法(一)静态成员变量Java Static 用法总结 解决方案三: 鼠标放