首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >System.out in参数

System.out in参数
EN

Stack Overflow用户
提问于 2012-01-04 05:57:26
回答 5查看 3.2K关注 0票数 0

我有一个测试文件,根据它,我需要构建我的程序,测试文件如下所示。然而,我被s1.showDetails( System.out )弄糊涂了;我从来没有在参数中遇到过System.out,任何人都可以帮助我。怎么处理它?当我尝试编写showDetails()时,编译器写错了。我的学生代码在这下面谢谢!

代码语言:javascript
运行
复制
import java.util.*;
public class Q2 {
    public static void main(String [] args)
    {
        // Start on section A
        System.out.println("Question 2");
        System.out.println("Start on part A");
        Student s1 = new Student("John", "Smith", 42);
        s1.showDetails(System.out);
        Course cs = new Course("Computer science");
    }
}

public class Student {
    private String name;
    private String familyName;
    private int moduleMark;
    private int total;
    protected Student(String name, String familyName, int moduleMark)
    {
        this.name = name;
        this.familyName = familyName;
        this.moduleMark = moduleMark;
    }

    public String getName()
    {
        return name;
    }

    public String getFamilyName()
    {
        return familyName;
    }

    public int getModuleMark()
    {
        return moduleMark;
    }

    public String showDetails()
    {
        return (this.name + " " + this.familyName + " " + moduleMark + total);
        //print(name);
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-04 06:05:36

这个错误很好地描述了问题所在。

类型学生中的方法showDetails()不适用于Q2.main(Q2.java:9)中的参数(PrintStream)

该程序尝试使用System.out调用您的方法,而该方法恰好是一个PrintStream。因此,将您的showDetails更改为

代码语言:javascript
运行
复制
public String showDetails(PrintStream out) {
    out.println(this.name + " " + this.familyName + " " + moduleMark + total);
}

这允许测试人员(我假设有一个程序可以测试您的赋值的正确性)给您任何PrintStream,System.out或任何其他PrintStream。

票数 1
EN

Stack Overflow用户

发布于 2012-01-04 06:03:03

与其他变量一样,System.out也是一个变量。

System是一个类

out是类型为PrintStreamSystem中的public static变量。因此,您可以使用System.out访问它

所以System.out.println(..)只是一个对PrintStreamprintln(..)函数的调用

因此,您的函数应该如下所示:

代码语言:javascript
运行
复制
public String showDetails(PrintStream stream) {
 ...
}
票数 6
EN

Stack Overflow用户

发布于 2012-01-04 06:02:00

该错误实质上意味着编译器没有找到带有PrintStream类型参数的名为showDetails的方法。您不需要将System.out传递给showDetails()方法。编写showDetails()的正确方法如下所示。阅读有关System.out的信息。

代码语言:javascript
运行
复制
public void showDetails()
{
   System.out.println(this.name + " " + this.familyName + " " + moduleMark + total);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8719188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档