java如何实现a=10.b=10;通过method(a,b)输出a=100,b=200.

这篇博客探讨了如何在Java中实现方法调用后改变主函数中变量a和b的值,而不直接修改主函数。文章通过两种方法展示了如何在不使用System.exit(0)的情况下达到输出a=100, b=200的效果,并介绍了PrintStream类在输出流中的作用和System的相关语法知识点。" 81410029,7544889,Java Scanner 类详解与示例,"['Java基础', '输入输出', 'Scanner类']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  唉,今天看到这个题目,想着“我分分中搞定”,“这么简单”,“我直接把答案念出来”,各种想法在我心里,嘿嘿!
原题是这样的:

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.inpublic static final InputStream in“标准”输入流。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
System.outpublic static final PrintStream out“标准”输出流。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
System.errpublic static final PrintStream err“标准”错误输出流。

  (3)本题可以直接利用System.exit(0)暴力终止,直接输出a=100,b=200。


楠哥-------一心想为IT行业添砖加瓦,却总是面向cv编程的程序员。
  谢谢阅读,无误点赞,有误还望评论区指正。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值