我一直在阅读Java for Dummies,这是一本由Barry Burd编写的初学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
至少,Barry Burd假设发生这种情况,但事实并非如此。我没有错误地编译它。
最好的答案是更正上面的源代码,添加了一些注释,但仍然,任何响应都会受到高度赞赏,不幸的是,我不经常检查我的Stack Overflow帐户,所以,可能没有热门答案。
答案 0 :(得分:6)
这里连续有两个引号导致它无法编译:
out.printf(""(% ***$", jobTitle);
你在这里“out”后错过了一个点:
out printf
代码是一个带有getter和setter的Java类。还有一个使用Java 5的打印方法。(如果您使用的是旧版本的Java,这可能是它无法编译的另一个原因。)这是一种指定输出值的格式的样式。
如果您仍然遇到问题,请发布实际的编译错误。和所有的代码。这个类显然是被另一个人调用的。
答案 1 :(得分: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);
}
}