类是公共的 应该在 java中声明_java 类是公共的,应在名为.java 的文件中声明

//源代码保存为EmployeeTest.javaimportjavax.swing.JOptionPane;importjava.text.DecimalFormat;//EmployeeTest.javapublicclassEmployeeTest{publicstaticvoidmain(String[]args){E...

//源代码保存为EmployeeTest.java

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 错误

不好意思,新手编程希望能得到大家的帮助!~,怎么解决好呢,是把几个public类分写到另外的文件中?还是有其他办法呢··谢谢了

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值