问题:
public static void main(String[] args) { int a = 10; int b = 10; method(a,b); System.out.println("a = "+ a); System.out.println("b = "+b); }
编写method函数,使最后输出a = 100,b=200;
思路:
a,b为基本数据类型,作为参数传入函数中不改变a b的真实值,方法一在method输出值后直接调用System.exit(0)直接退出程序;方法二改变System.out.println输出流。
实现:
public class gl { public static void main(String[] args) { int a = 10; int b = 10; method(a,b); System.out.println("a = "+ a); System.out.println("b = "+b); } public static void method(int a,int b){ PrintStream ps = new PrintStream(System.out){ public void println(String x){ if("a = 10".equals(x)) { x = "a = 100"; }else if("b = 10".equals(x)) { x = "b = 200"; } super.println(x); } }; System.setOut(ps); }