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表示可能出现,但不一定。

吐槽

有点烦操的一天。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1