⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objectequalupdate.java

📁 java是一种面向对象程序的语言,我这里介绍了有关java课件的许多事例,它能帮助刚入门的人
💻 JAVA
字号:
//: ObjectEqualUpdate.java

//package g3ds.joop.ch4;

public class ObjectEqualUpdate{
	public static void main(String[] args){
		Integer n1 = new Integer(100);
		Integer n2 = new Integer(100);
		MyIntUpdate m1 = new MyIntUpdate(100);
		MyIntUpdate m2 = new MyIntUpdate(100);
		
		System.out.println("使用关系运算符比较对象");
		System.out.println("n1 == n2 : " + ( n1 == n2 ));
		System.out.println("m1 == m2 : " + ( m1 == m2 ));
		
		System.out.println("使用使用equals()方法比较对象内容");
		System.out.println("n1.equals(n2) : " + n1.equals(n2));
		System.out.println("m1.equals(m2) : " + m1.equals(m1));
	}
} 

// 自定义一个类
class MyIntUpdate {
	//将变量设为私有
  	private int value;
	
	//利用构造方法参数对变量赋值
	MyIntUpdate(int value){
		this.value=value;
	}
	
	MyIntUpdate(){
		this(0);
	}
	
	//利用setValue赋值
	public void setValue(int value){
		this.value=value;
	}
	
	//利用getValue获取值
	public int getValue(){
		return value;
	}

	//直接仿照Integer类中equals方法的设计
	public boolean equals(Object obj){
		if  (obj instanceof MyIntUpdate){
			return this.value==((MyIntUpdate)obj).value;
		}
		return false;
	}

	/*——equals方法的另一个设计版本——
	//(参见机械工业出版社,Steven L. Halter等,Java技术精髓,
	//  书名原文:Enterprise Java Performance)
	//以上方法传递参数的类型为Object,具有最大的普适性,
	//适用于一般情况下的对象比较,避免引发异常,但对于类型相同的对象比较,
	//instanceof检查就是多余的,增加了运算开销。因此这一方法的优化版本如下:
	public boolean equals(Object obj){
		//直接做类型转换,当类型不匹配时将引发转型异常,避免instanceof和转型相邻使用
		try{
			return this.value==((MyIntUpdate)obj).value;
		}
		catch(ClassCastException cce){
			//如果类型不匹配则返回false
			return false;
		}
	}
		
	//而且,在大多数情况下为同类型比较,因此增加以下方法以减少开销
	public boolean equals(MyIntUpdate obj){
		return this.value==obj.value;
	}
	*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -