java 類是公共的,應在名為.java 的檔案中聲明
關注:162 答案:2 mip版
解決時間 2021-01-16 12:24
提問者關系已逝
2021-01-15 16:19
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
//EmployeeTest.java
public class EmployeeTest{
public static void main(String[] args){
Employee ref;
String output="";
Boss b=new Boss("史","季華",800.00);
CommissionWorker c=new CommissionWorker("張","雪",400.0,3.0,150);
DecimalFormat precision2=new DecimalFormat("0.00");
ref=b; //把父類的引用ref指派為子類經理boss對b的引用
output+=ref.toString()+"工資(元)"+
precision2.format(ref.earnings())+"\n"+
b.toString()+"工資(元)"+
precision2.format(b.earnings())+"\n";
ref=c;
output+=ref.toString()+"工資(元)"+
precision2.format(ref.earnings())+"\n"+
c.toString()+"工資(元)"+
precision2.format(c.earnings())+"\n";
JOptionPane.showMessageDialog(null,output,
"Demonstrating polymorphism",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
//Employee.java
public abstract class Employee{
private String firstName;
private String lastName;
public Employee(String first,String last){
firstName=first;
lastName=last;
}
public String getFirstName(){return firstName;}
public String getLastName(){return lastName;}
public String toString(){return firstName+' '+lastName;}
//Employee抽象方法earnings();
public abstract double earnings();
}
//BOSS.java
public final class Boss extends Employee{
private double weeklySalary;
public Boss(String first,String last,double s){
super(first,last);
setWeeklySalary(s);
}
public void setWeeklySalary(double s){
weeklySalary=(s>0?s:0);}
public double earnings(){return weeklySalary;}
public String toString(){
return "經理:"+super.toString();}
}
//CommissionWorker.java
public final class CommissionWorker extends Employee{
private double salary; //每周的底薪
private double commission; //每周獎金
private double quantity; //銷售額
public CommissionWorker(String first,String last,double s,double c,double q){
super(first,last);
setSalary(s);
setCommission(c);
setQuantity(q);
}
public void setSalary(double s){
salary=(s>0?s:0);
}
public void setCommission(double c){
commission=(c>0?c:0);
}
public void setQuantity(double q){
quantity=(q>0?q:0);
}
public double earnings(){
return salary+commission*quantity;
}
public String toString(){
return "普通員工:"+super.toString();
}
}
錯誤:D:\java>javac EmployeeTest.java
EmployeeTest.java:42: 類 Employee 是公共的,應在名為 Employee.java 的檔案中聲明
public abstract class Employee{
^EmployeeTest.java:63: 類 Boss 是公共的,應在名為 Boss.java 的檔案中聲明
public final class Boss extends Employee{
^EmployeeTest.java:82: 類 CommissionWorker 是公共的,應在名為 CommissionWorker.ja
va 的檔案中聲明
public final class CommissionWorker extends Employee{
^3 錯誤
不好意思,新手程式設計希望能得到大家的幫助!~··謝謝了
不好意思,發表的地方錯了,很抱歉!
最佳答案
二級知識專家選擇重頭再來
2021-01-15 16:31
錯誤說的很清楚。
Java源檔案中pulic類/接口等隻能存在一個,且檔案名必須與其一緻(大小寫敏感),你試着将各個pulic類型的檔案名改成類型名一緻再試下。
另外,你這個提問分類怎麼跑這兒來了
全部回答
1樓幼稚園小班大佬
2021-01-15 17:29
一個 *.java 檔案中,隻能有一個public 的類,而且這個public修飾的這類必需要和這個檔案名相同.
//boss.java
public final class boss extends employee{ }
你把public去掉就可以了.
我要舉報
如以上問答内容為低俗/色情/暴力/不良/侵權的資訊,可以點下面連結進行舉報,我們會做出相應處理,感謝你的支援!
→點此我要舉報以上資訊!←
推薦資訊
大家都在看