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

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

关注:162  答案:2  mip版

解决时间 2021-01-16 12:24

e6cb1a03ad541b3098697807b7bf1798.png

提问者关系已逝

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

不好意思,新手编程希望能得到大家的帮助!~··谢谢了

不好意思,发表的地方错了,很抱歉!

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家选择重头再来

2021-01-15 16:31

错误说的很清楚。

Java源文件中pulic类/接口等只能存在一个,且文件名必须与其一致(大小写敏感),你试着将各个pulic类型的文件名改成类型名一致再试下。

另外,你这个提问分类怎么跑这儿来了

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼幼稚园小班大佬

2021-01-15 17:29

一个 *.java 文件中,只能有一个public 的类,而且这个public修饰的这类必需要和这个文件名相同.

//boss.java

public final class boss extends employee{ }

你把public去掉就可以了.

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值