另闢他境筆試題

public static void main(String[] args) {

    int a= 10;
    int b=10;
    method(a,b);
    System.out.println(a);//輸出100
    System.out.println(b);//輸出200
}

public static void method(int a,int b){
    //在不改變原本題目的前提下,如何寫這個函數才能在main函數中輸出a=100,b=200?

}

答案

基本數據類型確實無法改動成員變量的值,但是上面並沒有說是在main方法裏面輸出的內容所以這樣搞:

public static void method(int a,int b){
        /**方法1:**/
        System.out.println("a="+a*a+",b="+2*b*b);
        System.exit(0);
        /*** 方法2:*/
        PrintStream Sys = new PrintStream(System.out){
            @Override
            public void println(String x) {
                if(x !=null){
                    if(x.startsWith("a")){
                        super.println(x+0);
                    }if(x.startsWith("b")){
                        super.println("b="+200);
                    }
                }else{
                    throw new NullPointerException();
                }
            }
        };
        System.setOut(Sys);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章