面试题:在method方法被调用之后,仅打印出a-100,b=200,请写出method方法的代码

Java面试题:如何在method后输出a-100,b=200
一道有趣的Java面试题要求在method方法执行后,仅打印出a-100和b=200。讨论中提出了两种主要思路,包括重写对象的输出方法。

今天一朋友晒出他去年的在群里讨论的一道面试题,挺有意思的:

 

 

这道题得看出题作者的目的在哪

个人觉得重写输出对象来得比较符合题意,如方法二

就是这么简单的一道题,当时众口云云,但大致有以下两种:

import java.io.PrintStream;

public class TestDemo {

	public static void main(String[] args) {
		int a = 10;
		int b = 10;
		method(a,b);
		//需要在method方法被调用之后,仅打印出a-100,b=200,请谢写出method方法的代码
		System.out.println("a="+a);
		System.out.println("b="+b);
	}

	//代码编写处
	//      方法一:
	//	private static void method(int a, int b) {
	//		// TODO Auto-generated method stub
	//		a*=10;
	//		b*=20;
	//		System.out.println("a="+a);
	//		System.out.println("b="+b);
	//		System.exit(0);
	//	}
	//      方法二:
	private static void method(int a, int b) {
		
	    PrintStream stream = new PrintStream(System.out) {
	        @Override
	        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(stream);
    }
}
//需要在method方法被调用之后,仅打印出a-100,b=200,请谢写出method方法的代码
		System.out.println("a="+a);
		System.out.println("b="+b);
	}

	//代码编写处
	//      方法一:
	//	private static void method(int a, int b) {
	//		// TODO Auto-generated method stub
	//		a*=10;
	//		b*=20;
	//		System.out.println("a="+a);
	//		System.out.println("b="+b);
	//		System.exit(0);
	//	}
	//      方法二:
	private static void method(int a, int b) {
		
	    PrintStream stream = new PrintStream(System.out) {
	        @Override
	        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(stream);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值