首先,是的,这是家庭作业(但我自己做的工作)。我一直在努力,但我无法理解我做错了什么。
该作业要求销售人员基本工资和佣金两个班级。
我相信你以前见过这个,但我找不到其他帖子。
我的基本工资等级。
package salescommission;
public class SalesBaseSalary {
public SalesBaseSalary() {
int baseSalary = 75000;
}
}
和我的销售佣金课程
package salescommission;
//Adding Scanner Utility
import java.util.Scanner;
public class SalesCommission extends SalesBaseSalary {
public static void main(String[] args) {
//Scanner input
Scanner input = new Scanner( System.in );
int totalSales;
int salesPlusSalary;
//input commissions
System.out.print( "Enter Annual Commissions" );
totalSales = input.nextInt();
salesPlusSalary = (int) (totalSales * .05 + SalesBaseSalary);
System.out.printf( "Sales commission plus Salary is %d\n", salesPlusSalary );
}
}
现在如果我把它作为一个班级,它完美地工作......但我必须有两个。这是单一课程。
package salescompensation;
//Adding Scanner Utility
import java.util.Scanner;
//Main Class representing the employees base salary
public class SalesCompensation {
public static void main(String[] args) {
//Scanner input
Scanner input = new Scanner( System.in );
int totalSales;
int salesPlusSalary;
//base salary
double baseSalary = 75000;
//input commissions
System.out.print( "Enter Annual Commissions" );
totalSales = input.nextInt();
salesPlusSalary = (int) (totalSales * .05 + baseSalary);
System.out.printf( "Sales commission plus Salary is %d\n", salesPlusSalary );
}
}
我正在试图弄清楚我做错了什么以及为什么我可以学习。
答案 0 :(得分:1)
salesPlusSalary = (int) (totalSales * .05 + SalesBaseSalary);
这一行是主要问题。
您正在尝试将类(SalesBaseSalary)添加到double。该类不是其中的一个字段,您必须访问它(通过例如new SalesBaseSalary().baseSalary
或getter)。
为了使它工作,你还必须在构造函数之外声明该字段,否则它不存在于构造函数范围之外:
public class SalesBaseSalary {
int baseSalary;
public SalesBaseSalary()
{
baseSalary = 75000;
}
(编辑:刚看到SalesBaseSalary是SalesCommission的超类,所以在这种情况下,您将能够直接访问其非私有字段,但它们仍然必须存在于构造函数之外。)
答案 1 :(得分:1)
要扩展sheltem的答案,你应该从SalesCommission
类的实例获取字段(假设它不是类常量)。
public static void main(String[] args)
{
// Create an instance of the SalesCommission class (an object)
SalesCommission salesCommission = new SalesCommission();
//Scanner input
Scanner input = new Scanner( System.in );
int totalSales;
int salesPlusSalary;
//input commissions
System.out.print( "Enter Annual Commissions" );
totalSales = input.nextInt();
salesPlusSalary = (int) (totalSales * .05 + SalesCommission.baseSalary);
System.out.printf( "Sales commission plus Salary is %d\n", salesPlusSalary );
}
此外,由于您刚刚掌握了Java,OOP和课程等,我建议您使用The Java Tutorials或其他类似资源,并检查您的设计以及如何使其更好。通过努力提高你将学习OOP和良好的设计/实践。