唉,今天看到这个题目,想着“我分分中搞定”,“这么简单”,“我直接把答案念出来”,各种想法在我心里,嘿嘿!
原题是这样的:
public class test {
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);
}
//代码编写处:
}
注意:主函数中不能做任何修改
仔细一想,妈的,method方法调用之后不就销毁了吗?都是输出10,10啊?老子不会!请拿走,本来感觉简单,这信心直接跌落千丈。连这么简单的东西还要费脑子!!
给出方法:
第一种方法:
import java.io.PrintStream;
public class test {
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 printStream = 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(printStream);
};
}
第二种方法:
public class test {
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) {
a = 100;
b = 200;
System.out.println("a=" + a);
System.out.println("b=" + b);
System.exit(0);
}
}
两种方法的输出结果都是:
总结:
(1)PrintStream是打印输出流,它继承于FilterOutputStream。PrintStream 是用来装饰其它输出流。它能为其他输出流添加功能,使它们能够方便地打印各种数据值表示形式。利用PrintStream重写了输出对象。
(2)System有关的语法点
语法 | 解释 |
---|---|
System.in | public static final InputStream in“标准”输入流。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。 |
System.out | public static final PrintStream out“标准”输出流。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 |
System.err | public static final PrintStream err“标准”错误输出流。 |
(3)本题可以直接利用System.exit(0)暴力终止,直接输出a=100,b=200。
楠哥-------一心想为IT行业添砖加瓦,却总是面向cv编程的程序员。
谢谢阅读,无误点赞,有误还望评论区指正。