从头认识java-2.3,自增自减与关系操作符
时间:2020-09-17 13:26:27 来源:雅意学习网 本文已影响 人
从头认识 java-2、3 自增自减与关系操作符 这一章节我们来聊聊自增自减与关系操作符。
1、自增自减其实没什么特别需要关注,只要把基础原理弄懂即可。
[ java ] view plaincopy 1. pack age 、ray、ch03;
2.
3. public cl ass Test {
4.
pu bl ic static void main(String[] args)
{
5.
in t 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ﻫ--——--—- 2:—- erofebﻫ
--:2 1:-- retfaﻫ--—-—-—- before ——:1ﻫ0:—-
0:-- retfaﻫ从代码以及输出,我们可以瞧见a在每个阶段得变化,只要大家弄明白这个即可。
2、关系操作符 其实就就是〉,<,=,!=等 (1)对象得等价性 [j ava] view plaincopy 1. p ac kage 、ray、ch03;
2.
3. pu blic cl ass Test {
4.
pub lic st atic v oid main(String[] args)
{
5.
Dog jack = ne w Dog();
6.
Dog rose = n ew 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 = n ew 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.
priva te String name;
29.
30.
p ub lic String getName()
{
31.
retu rn name;
32.
}
33.
34.
pu blic void setName(String name) {
35.
this、name = name;
36.
}
37.
38. }
:出输ﻫfalse false eurtﻫeurtﻫeslafﻫeurtﻫeslafﻫDog那里得对比就不说了,我们重点说说 Integer 那里得几个对比。
==一般就是对比对象得引用,一次 a==b,d==e返回 false,而使用 equals,则就是对比两个对象里面得值,因为在 Integer 里面已经重写了 equals 方法。
[j ava ] view plaincopy 1. public boole an equals(Object obj)
{
2.
if (obj in sta nceof Integer)
{
3.
return value == ((Integer)obj)、intValue();
4.
}
5.
return f alse;
6.
}
她对比得就是数值,而不就是对象得引用,而在==使用得就是Object 得 equals [j ava ] view plaincopy 1. p ub lic b oolean equals(Object obj)
{
2.
r et urn ( this == obj);
3.
}
。象对个一同向指否是就用引得者两比对只她ﻫ有一点需要注意:基本类型不能使用 equals 我们再瞧下面得两个例子:
[java ] view plaincopy 1. pa cka ge 、ray、ch03;
2.
3. publi c cla ss 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.
pri vate String name;
16.
17.
publ ic String getName()
{
18.
retu rn name;
19.
}
20.
21.
pu bli c void setName(String name)
{
22.
this、name = name;
23.
}
24.
25. }
:出输ﻫfalse eslafﻫ虽然两个对象都设置同样得值,但就是她们使用得就是 Object得 equals,只就是对比引用,所以同时返回false,我们修改一下上面得代码。
[jav a] view plaincopy 1. pack ag e 、ray、ch03;
2.
3. pub lic class Test {
4.
public static voi d 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.
privat e String name;
16.
17.
p ubli c String getName() {
18.
re turn name;
19.
}
20.
21.
p ublic vo id setName(String name)
{
22.
this、name = name;
23.
}
24.
25.
Override
26.
public bo ole an equals(Object obj) {
27.
if (obj insta nceof Dog)
{
28.
retur n ((Dog) obj)、getName()、equals(name);
29.
}
30.
return sup er、equals(obj);
31.
}
32.
33. }
输出:
false eurtﻫ我们自己重写了equals方法,方法里面只就是对比两者得名称,因此返回得就是false与true。
总结:这一章节简单介绍了自增自减与关系操作符,以及==与 equals 需要注意得地方. 这一章节就到这里,谢谢. -—-—--—-—-—-——----————-—-—--———-—-- 目录