1、 从头认识java-2、3 自增自减与关系操作符 这一章节我们来聊聊自增自减与关系操作符。 1、自增自减其实没什么特别需要关注,只要把基础原理弄懂即可。 [java] view plaincopy 1. package 、ray、ch03; 2. 3. public class Test { 4. public static void main(String[] args) { 5. int a = 0; 6. System、out、println("before ++:" + a); 7.
2、 System、out、println(” ++:” + a++); 8. System、out、println("after ++:” + a); 9. System、out、println(”—---—--—”); 10. System、out、println("before ++:" + a); 11. System、out、println(" ++:" + (++a)); 12. System、out、println("after ++:” + a); 13.
3、 System、out、println("——-——---"); 14. System、out、println(”before —-:" + a); 15. System、out、println(” --:" + a—-); 16. System、out、println("after --:" + a); 17. System、out、println("——----—-"); 18. System、out、println("before —-:” + a); 19.
4、 System、out、println(” —-:" + —-a); 20. System、out、println("after --:" + a); 21. } 22. } ﻫ输出: before ++:0ﻫ ++:0 after ++:1 --—----— before ++:1 ++:2 after ++:2ﻫ-—--——--ﻫbefore -—:2 --:2ﻫafter --:1 --—-—-—- before ——:1ﻫ -—:0ﻫafter --:0 从代码以及输出,我们可以瞧见a在每个阶段得变化,只要
5、大家弄明白这个即可。 2、关系操作符 其实就就是〉,<,=,!=等 (1)对象得等价性 [java] view plaincopy 1. package 、ray、ch03; 2. 3. public class Test { 4. public static void main(String[] args) { 5. Dog jack = new Dog(); 6. Dog rose = new Dog(); 7. System、out、println(jack == rose);
6、8. System、out、println(jack、equals(rose)); 9. 10. Integer a = new Integer(1); 11. Integer b = new Integer(1); 12. System、out、println(a == b); 13. System、out、println(a、equals(b)); 14. 15. Integer d = new Integer(100000); 16.
7、 Integer e = new Integer(100000); 17. System、out、println(d == e); 18. System、out、println(d、equals(e)); 19. 20. int f = 1; 21. int g = 1; 22. System、out、println(f == g); 23. // System、out、println(f、equals(g));//报错 24. }
8、 25. } 26. 27. class Dog { 28. private String name; 29. 30. public String getName() { 31. return name; 32. } 33. 34. public void setName(String name) { 35. this、name = name; 36. } 37. 38. } ﻫ输出: false falseﻫfalseﻫt
9、rueﻫfalseﻫtrueﻫtrue Dog那里得对比就不说了,我们重点说说Integer那里得几个对比。 ==一般就是对比对象得引用,一次a==b,d==e返回false,而使用equals,则就是对比两个对象里面得值,因为在Integer里面已经重写了equals方法。 [java] view plaincopy 1. public boolean equals(Object obj) { 2. if (obj instanceof Integer) { 3. return value == ((Integer)obj)、int
10、Value(); 4. } 5. return false; 6. } 她对比得就是数值,而不就是对象得引用,而在==使用得就是Object得equals [java] view plaincopy 1. public boolean equals(Object obj) { 2. return (this == obj); 3. } ﻫ她只对比两者得引用就是否指向同一个对象。 有一点需要注意:基本类型不能使用equals 我们再瞧下面得两个例子: [java] view p
11、laincopy 1. package 、ray、ch03; 2. 3. public class Test { 4. public static void main(String[] args) { 5. Dog jack = new Dog(); 6. Dog rose = new Dog(); 7. jack、setName("100"); 8. rose、setName("100”); 9. System、out、println(jack == r
12、ose); 10. System、out、println(jack、equals(rose)); 11. } 12. } 13. 14. class Dog { 15. private String name; 16. 17. public String getName() { 18. return name; 19. } 20. 21. public void setName(String name) { 22. this
13、name = name; 23. } 24. 25. } ﻫ输出: falseﻫfalse 虽然两个对象都设置同样得值,但就是她们使用得就是Object得equals,只就是对比引用,所以同时返回false,我们修改一下上面得代码。 [java] view plaincopy 1. package 、ray、ch03; 2. 3. public class Test { 4. public static void main(String[] args) { 5. Dog jack = new Dog(
14、); 6. Dog rose = new Dog(); 7. jack、setName("100”); 8. rose、setName("100”); 9. System、out、println(jack == rose); 10. System、out、println(jack、equals(rose)); 11. } 12. } 13. 14. class Dog { 15. private String name; 16.
15、 17. public String getName() { 18. return name; 19. } 20. 21. public void setName(String name) { 22. this、name = name; 23. } 24. 25. Override 26. public boolean equals(Object obj) { 27. if (obj instanceof Dog) {
16、 28. return ((Dog) obj)、getName()、equals(name); 29. } 30. return super、equals(obj); 31. } 32. 33. } 输出: falseﻫtrue 我们自己重写了equals方法,方法里面只就是对比两者得名称,因此返回得就是false与true。 总结:这一章节简单介绍了自增自减与关系操作符,以及==与equals需要注意得地方. 这一章节就到这里,谢谢. -—-—--—-—-—-——----————-—-—--———-—-- 目录






