為什么直接用equals()比較對象course與course2還是false?
我用
Course course = new Course("1" , "高數") ;
Course course2 = new Course(course.id , course.name) ;
System.out.println( course.equals(course2));
為什么輸出還是false?
兩個對象內容相等不是true嗎?而且就算用 == 比較內存地址的話也應該指向相同的字符串地址呀?
謝謝大家~
2016-08-08
用 == 比較內存地址的話是不相同的,每創建一個對象,內存棧就會為其分配一個新的 內存地址,
Course course = new Course("1" , "高數") ; 何以明顯看到course 的兩個參數都是String類型,
而 course.id 與 course.name 應該是 內存地址吧,
2016-07-09
我的理解,equals默認也是比較地址的,重寫之后才比較內容
2016-05-08
因為course和course2是兩個不同的對象,所以不可能相等