为了账号安全,请及时绑定邮箱和手机立即绑定

我的答案是赋值相同的情况下phone1跟phone2是不同的,有错吗?

package PHONE;

public class test {

	public static void main(String[] args) {
		Phone phone=new Phone();
		 Phone phone2=new Phone();
		 phone.cpu=2;
		 phone.ram=3;
		 phone.screen=4;
		 phone2.cpu=2;
		 phone2.ram=3;
		 phone2.screen=4;
		 if(phone.equals(phone2)){
			 System.out.println("phone等于phone2");
		 }
		 else{
			 System.out.println("phone不等于phone2");
		 }
			 
		 }
	}

输入结果是不同的。这是老师想要的正确答案吗?

正在回答

3 回答

先创建一个类Telephone1

package com.equals;


public class Telephone1 {

public float screen;

public float cpu;

public float mem;

public void Prime(float newScreen,float newCpu,float newMem ){

screen=newScreen;

cpu=newCpu;

mem=newMem;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Telephone1 other = (Telephone1) obj;

if (Float.floatToIntBits(cpu) != Float.floatToIntBits(other.cpu))

return false;

if (Float.floatToIntBits(mem) != Float.floatToIntBits(other.mem))

return false;

if (Float.floatToIntBits(screen) != Float.floatToIntBits(other.screen))

return false;

return true;

}

}


在创建一个测试类Initail

public class Initail {


public static void main(String[] args) {

// TODO Auto-generated method stub

Telephone1 a=new Telephone1();

Telephone1 b=new Telephone1();

a.Prime(5.0f, 1.4f, 2.0f);

b.Prime(5.0f, 1.4f, 2.0f);

if(a.equals(b)){

System.out.println("两者值是相同的");

}else{

System.out.println("两者值是不同的");

}

}

}


最后得出结果    两者值是相同的     这是重写equals方法的操作,  目的是对 对象 属性的 数值 的比较  

0 回复 有任何疑惑可以回复我~

理解还是有偏差,两个对象是否相等,要看这个对象的equal方法。

0 回复 有任何疑惑可以回复我~

看一下这里,希望会有帮助。http://codeweb.imooc.com/3361/25NG/index.py

0 回复 有任何疑惑可以回复我~
#1

lorenzt 提问者

地址打不开哦
2015-05-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我的答案是赋值相同的情况下phone1跟phone2是不同的,有错吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信