โจทย์ Java เรื่องการส่งพารามิเตอร์

ทดสอบความเข้าใจเกี่ยวกับการรับ parameter ทั้งที่เป็น primitive data type และ reference type

public class Final {
    public static void foo(int i) {
        i++;
        System.out.print(i);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        int i = 10;
        foo(i);
        System.out.print(i);
    }
}

ตอบ ………………………………….

public class Final {
    public static void foo(String s) {
        s.toUpperCase();
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        String t = "abc";
        foo(t);
        System.out.print(t);
    }
}

ตอบ ………………………………….

public class Final {
    public static void foo(String s) {
        s = s.toUpperCase();
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        String t = "abc";
        foo(t);
        System.out.print(t);
    }
}

ตอบ ………………………………….

public class Final {
    public static void foo(StringBuilder s) {
        s.append("def");
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        StringBuilder t = "abc";
        foo(t);
        System.out.print(t);
    }
} 

ตอบ ………………………………….

public class Final {
    public static void foo(StringBuilder s) {
        s = s.append("def");
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        StringBuilder t = new StringBuilder("abc");
        foo(t);
        System.out.print(t);
    }
}

ตอบ ………………………………….

public class Final {
    public static void foo(StringBuilder s) {
        s = new StringBuilder("def");
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        StringBuilder t = new StringBuilder("abc");
        foo(t);
        System.out.print(t);
    }
}

ตอบ ………………………………….

public class Final {
    public static void foo(StringBuilder s) {
        StringBuilder t = s;
        s = new StringBuilder("def");
        t.append("def");
        System.out.print(s);
        System.out.print(" ");
    }

    public static void main(String[] args) {
        StringBuilder t = new StringBuilder("abc");
        foo(t);
        System.out.print(t);
    }
}

ตอบ ………………………………….


11 10

abc abc

ABC abc

compile ไม่ผ่าน

abcdef abcdef

abcdef abcdef

def abc

def abcdef


หนังสือ เขียนโปรแกรม Java เบื้องต้น

หากจะนำข้อความไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Java Parameter

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s