OCJP!新出两道题解析~~~

public class Test {

    static public void main(String[] args) {         //java Test a b c         //在这里因为输入的:a b c就是生成的数组,以空格为界来分隔各个元素         for (int x = 1; x < args.length; x++) {     //遍历出数组的元素             System.out.print(args[x] + " ");             //输出数组的每个元素,因为i=1,所以是从第二个元素开始输出,所以a是不是输出的             //输出的元素为b和c:b c         }     } } //and the command line invocation (在命令列中如下方式執行) //java Test a b c // //what is the result?(其結果為何?) //A. a b //B. b c //C. a b c //D. Compilation fails //E. An exception is thrown at runtime

上面的题目主要是考察对于主函数的形参数组的了解程度,这里输入的a b c 分别是主函数的第一第二和第三个元素,而在for循环中i初始值为1,所以就没有了第一个元素了。

class Foo {

    private int x;
    //-------------类构造器----------------------
    public Foo(int x) {
        this.x = x;
    }
    //---------------x的getter/setter方法--------
    public void setX(int x) {
        this.x = x;
    }
    public int getX() {
        return x;
    }
   //-------------------------------------------
}

public class Gamma {
    //创建静态方法,返回传入对象的值
    static Foo fooBar(Foo foo) {
        foo = new Foo(100); //把foo对象的值设置为100
        return foo;     //这里返回的foo的值为100
    }
    public static void main(String[] args) {
        Foo foo = new Foo(300); //把foo对象的值设置为300
        System.out.print(foo.getX() + "_");//输出对象,结果为300

        Foo fooFoo = fooBar(foo);   //把foo的值作为参数传给fooBar方法,把方法传回的值赋值给创建的fooFoo对象
        System.out.print(foo.getX() + "_");     //输出的foo的值仍然为:300
        System.out.print(fooFoo.getX() + "_");  //这里的fooFoo的值就为100,因为在fooBar方法中赋值为:100

        foo = fooBar(fooFoo);     //这里是重新给foo赋值,fooBar返回的值为:100,并把它赋值给foo
        System.out.print(foo.getX() + "_");     //所以这里输出的值就为:100
        System.out.print(fooFoo.getX());        //这里输出的值也为:100
        //所以答案应该是:300-300-100-100-100
    }
}
//What is the output of the program shown in the exhibit?
//(以下何者為程式輸出顯示?)
//A. 300-100-100-100-100
//B. 300-300-100-100-100
//C. 300-300-300-100-100
//D. 300-300.300-300-100

上面的题目主要考察的是对于对象和参数的区分,foo和fooFoo的getter方法,拿到的是对象的值,而不是形参的,具体的情况要学会分析,那么就容易做了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值