/*/------------------------
开始第二天,心情不爽// 继续打代码
自动递增和递减 **
先贴上代码
1 package study.Demo; 2 /** 3 * ++i 4 * 5 * @author Administrator 6 * 7 */ 8 public class AutoInc { 9 10 public static void main(String[] args) { 11 int i = 1; 12 System.out.println(i); 13 System.out.println(++i); //先加一后运算 14 System.out.println(i++); //先运算后加一 15 System.out.println(i); 16 System.out.println(--i); 17 System.out.println(i--); 18 System.out.println(i); 19 20 } 21 22 }
再贴上 运行结果, 对比理解下--
1 1 2 2 3 2 4 3 5 2 6 2 7 1
++a 相当于 a = a +1. --a 相反.
前面代码注释有,不过再说一遍 ++或--在前 是指先执行运算,再生成值, 对于++或者--在后 其次当然相反, 是先生成值,然后再执行运算//
/*/------------------------
关系操作符 这点不用多说、
测试对象的等价性
代码如下。 主要是 == 和 != ,这两个容易迷迷惑。
1 package study.Demo; 2 3 public class Equivalence { 4 public static void main(String[] args) { 5 Integer n1 = new Integer(47); 6 Integer n2 = new Integer(47); 7 System.out.println(n1 == n2); 8 System.out.println(n1 != n2); 9 10 } 11 }
/*/ Output
1 false 2 true
相信很是疑惑吧, ==才应该是 true的 ,!= 是false -- 这理解错了,Integer对象确实相同,尽管对象内容相同,但是对象的引用确实不同的。 ==和 != 是对对象的引用,所以才是以上输出结果// 多看看理解下。
那么我们就有想法了,如果是比较对象的内容呢。
当然我们可以用 equals() 这个是所有对象都适用的特殊方法 ,但这个然而并不适用‘基本类型’基本类型直接使用 ==和!= 即可了。
贴个equals()的代码。
1 package study.Demo; 2 3 public class EqualsMethod { 4 public static void main(String[] args) { 5 Integer n1 = new Integer(47); 6 Integer n2 = new Integer(47); 7 System.out.println(n1.equals(n2)); 8 } 9 }
/*/ Output
1 true
我们总是活在想象的世界,醒来却发现并不是那么简单。
比如以下代码。
1 package study.Demo; 2 3 class Value{ 4 int i; 5 } 6 7 public class EqualsMethod2 { 8 public static void main(String[] args) { 9 Value v1 = new Value(); 10 Value v2 = new Value(); 11 v1.i = v2.i = 100; 12 System.out.println(v1.equals(v2)); 13 } 14 }
终于醒来了 却发现并不是 true ,然是 false
/*/ Output
1 false
这是由于equals()的默认行为是比较引用。所以除非在自己的新类中覆盖equals()方法,否则不可能表现出我们希望的行为。
大多数Java类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的引用。
/*/------------------------
看完,做个练习、
要求 :创建一个名为Dog的类,它包含两个String域: name和says。在main()方法中,创建两个Dog对象,一个名为spot(它的叫声为“Ruff!”),另一个名为scruffy(它的叫声为“Wurf!”)。然后显示它们的名字和叫声。
代码贴上。
1 package study.Demo; 2 3 class Dog{ 4 String name; 5 String says; 6 } 7 8 public class DogDemo { 9 public static void main(String[] args) { 10 Dog spot = new Dog(); 11 Dog scruffy = new Dog(); 12 spot.name = "Ruff!"; 13 scruffy.says = "Wurf!"; 14 System.out.println("name: " + spot.name + "\nsays: "+ scruffy.says); 15 } 16 }
/*/ Output
1 name: Ruff! 2 says: Wurf!
先到这里 去做做南阳理工题//