课后作业3,验证代码并分析

1、package haha;

 

class haha

{

    public String Information="";

    public void main(String args)

    {

    System.out.println(args);

    }

private int value;

public int getValue()

    {

    return value;

    }

public void setValue(int value)

    {

    this.value=value;

    }

}

 

 

public class tiaoshi

{

    public static void main(String args[])

    {

        haha obj=new haha();

        obj.main("hello");

        obj.setValue(100);

        System.out.println(obj.getValue());

        obj.Information="Information";

        System.out.println(obj.Information);

    }

}

执行结果为:

hello

100

Information

原因:

main(“hallo”)执行的为main函数,在main函数中,接受的为字符串,赋给args,直接输出。

SetValue函数接收value的值,getvalue函数返回value。

第三个输出直接调用haha类中的Information直接赋值。

 

 

2、package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    int value;

    System.out.println(value);

    }

}

无法执行,输出value的时候要求初始化value变量。

package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    int value=100;

    System.out.println(value);

    }

}

可以执行,输出100。

 

3、package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    int value1=100;

    int value2=100;

    System.out.println(value1==value2);

    }

}

执行结果为true。

  package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    Foo h1=new Foo();

        Foo h2=new Foo();

        System.out.println(h1==h2);

    }

}

  class Foo

  {

      int value=100;

  }

执行结果为false

此时比较的不是两个对象中的数据,而是两个对象的地址是否一直。

package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    Foo h1=new Foo();

        Foo h2=new Foo();

        System.out.println(h1==h2);

        System.out.println(h1.equals(h2));

    }

}

  class Foo

  {

      public boolean equals(Object obj)

      {

          return value==this.value;

      }

      int value=100;

  }

执行结果为:

False

True

此时在foo类中定义了boolean函数比较的不是两个对象,而是对象中的数据。

 

4、package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

    Foo h1=new Foo();

    }

}

  class Foo

  {

      int value;

      public Foo(int intvalue)

      {

          value=intvalue;

      }

  }

无法执行,由于当你不定义Foo方法的时候,电脑会执行自身的默认的方法,但是如果定义了之后,就会执行你写的方法。

5、package haha;

 

class haha

{

    {

        field=200;

    }  

    public int field=100;

    public haha(int value)

    {

        this.field=value;

    }

    public haha()

    {

       

    }

}

public class tiaoshi

{

    public static void main(String args[])

    {

        haha obj=new haha();

        System.out.println(obj.field);

       

        obj=new haha(300);

        System.out.println(obj.field);

    }

}

执行结果为:

100

300

当创建的对象为haha()和haha(300)时,由于类型并不一样,电脑会匹配与之对应的方法。所以使用的方法并不一样。

 

6、package haha;

 

public class tiaoshi

{

    public static void main(String args[])

    {

        Integer i1=100;

        Integer j1=100;

        System.out.println(i1==j1);

       

        Integer i2=129;

        Integer j2=129;

        System.out.println(i2==j2);

    }

}

执行结果为:

True

False

原因是integer类型的取值范围是-128到+127之间的,当超出这个范围就无法正常比较了。

  

转载于:https://www.cnblogs.com/CHAHA123/p/7691632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值