资源描述
从头认识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. 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. 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. 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在每个阶段得变化,只要大家弄明白这个即可。
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);
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. 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. }
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ﻫtrueﻫ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)、intValue();
4. }
5. return false;
6. }
她对比得就是数值,而不就是对象得引用,而在==使用得就是Object得equals
[java] view plaincopy
1. public boolean equals(Object obj) {
2. return (this == obj);
3. }
ﻫ她只对比两者得引用就是否指向同一个对象。
有一点需要注意:基本类型不能使用equals
我们再瞧下面得两个例子:
[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. 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.
17. public String getName() {
18. return name;
19. }
20.
21. public void setName(String name) {
22. this、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();
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.
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) {
28. return ((Dog) obj)、getName()、equals(name);
29. }
30. return super、equals(obj);
31. }
32.
33. }
输出:
falseﻫtrue
我们自己重写了equals方法,方法里面只就是对比两者得名称,因此返回得就是false与true。
总结:这一章节简单介绍了自增自减与关系操作符,以及==与equals需要注意得地方.
这一章节就到这里,谢谢.
-—-—--—-—-—-——----————-—-—--———-—--
目录
展开阅读全文