码迷,mamicode.com
首页 > 编程语言 > 详细

Java 第二天

时间:2016-08-09 13:37:58      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:


 

 

/*/------------------------

 

  开始第二天,心情不爽// 继续打代码

  自动递增和递减  **

 先贴上代码

 

 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!

    先到这里 去做做南阳理工题//

  

Java 第二天

标签:

原文地址:http://www.cnblogs.com/ywffoo/p/5752795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!