-2

我一直在阅读 Barry Burd 的 Java for Dummies,这是一本 Java 初学者编程书籍,在我进入“创建自己的方法”部分之前,它一直很棒。我不太明白,或者实际上,我根本不明白。我在书中找到了这个例子。你能解释一下这个程序是做什么的,以及源代码中的所有内容吗?我真的很想知道。

(注意:以下几行是实际代码!)


import static java.lang.System.out;

public class Employee {
    private String name;
    private String jobTitle;

    public void setName(String nameIn) {
        name = nameIn;
    }

    public String getName() {
        return name;
    }

    public void setJobTitle(String jobTitleIn) {
        jobTitle = jobTitleIn;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void cutCheck(double amountPaid) {
        out printf("Pay to the order of %s ", name);
        out.printf(""(% ***$", jobTitle);
        out.printf("%,.2f\n", amountPaid);
    }

}

最终结果(成功编译然后运行程序时):


Pay to the order of Barry Bird (CEO) ***$5,000.00
Pay to the order of Harriet Ritter (Captain) ****$7,000.00
Pay to the order of Your Name Here (Honorary Exec of the Day) ***$10,000.00

至少,巴里·伯德假设这会发生,但事实并非如此。我无法在没有错误的情况下编译它。

最好的答案是对上面的源代码进行更正,并添加一些评论,但是,任何回复都将受到高度赞赏,不幸的是,我不经常检查我的 Stack Overflow 帐户,因此可能没有最佳答案。

4

2 回答 2

6

您在这里连续有两个引号导致它无法编译:

out.printf(""(% ***$", jobTitle);

并且您在此处的“out”之后缺少一个点:

out printf

该代码是一个带有 getter 和 setter 的 Java 类。还有一个使用 Java 5 的打印方法。(如果您使用的是非常旧的 Java 版本,这可能是它无法编译的另一个原因。)这是一种指定输出值格式的样式。

如果您仍然遇到问题,请发布实际的编译器错误。和所有的代码。这个类显然是由另一个调用的。

于 2012-12-31T23:41:10.017 回答
1

检查这个:

package by.dev.madhead.demo;

import static java.lang.System.out;

public class Employee {
    private String name;
    private String jobTitle;

    public void setName(String nameIn) {
        name = nameIn;
    }

    public String getName() {
        return name;
    }

    public void setJobTitle(String jobTitleIn) {
        jobTitle = jobTitleIn;
    }

    public String getJobTitle() {
        return jobTitle;
    }

    public void cutCheck(double amountPaid) {
        out.printf("Pay to the order of %s ", name);
        out.printf("(%s)", jobTitle);
        out.printf(" ***$%,.2f\n", amountPaid);
    }

    public static void main(String args[]) {
        Employee e = new Employee();

        e.setName("Drake");
        e.setJobTitle("Programmer");

        e.cutCheck(57005.12);
    }
}
于 2012-12-31T23:46:38.170 回答