DESKTOP-2IHO1NT_20200904秦文亮
问题
1、重写equals方法
public class Student {
String name;
int age;
public Student(String name,int age) {
this.name =name;
this.age=age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
public static void main(String[] args) {
Student s1=new Student("nana",10);
Student s2=new Student("nana",10);
System.out.println(s1.equals(s2));
}
}
2、throw与throws的区别
throw
可以通过 throw 关键字显式抛出 【异常实例】
throws
throws是方法可能抛出异常的声明。
声明方法时,在方法的参数列表之后 通过 throws 关键字声明该方法可能抛出的【异常类型】
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。
1、throw用在方法体内
throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。
2、throw是具体向外抛异常的,抛出的是一个异常实例
在程序中可以通过throw关键字主动抛出【异常实例】
throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常
3、throw,如果执行了,那么一定是抛出了某种异常了,而throws表示可能出现,但不一定。
吐槽
有点烦操的一天。
近期评论