首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java: ClassProblem。Java新手

Java: ClassProblem。Java新手
EN

Stack Overflow用户
提问于 2013-07-19 02:54:47
回答 1查看 247关注 0票数 0

但我拿不到佣金和工会雇员的价值。代码如下:

代码语言:javascript
复制
import java.util.Scanner;

// Base or Superclass
class Employee
{
    String name;
    String department;
    double pay;
    double hours;
    double money;
    double mission;
    double rate;
    double withheld;
    double moneyc;
    double moneyu;
    double sales;

    public void inputs()
    {
        Scanner in = new Scanner(System.in);

        System.out.println("Enter your name: ");
        name = in.nextLine();

        System.out.println("Enter your department: ");
        department = in.nextLine();

        System.out.println("Enter your pay per hour: ");
        pay = in.nextDouble();

        System.out.println("Enter how many hours you worked: ");
        hours = in.nextDouble();

        System.out.println("Enter your rate of commission(0.00): ");
        rate = in.nextDouble();

        System.out.println("Enter your withheld amount: ");
        withheld = in.nextDouble();

        System.out.println("Enter your sales amount: ");
        sales = in.nextDouble();

        money = pay * hours;
    }

    // Accessor Methods
    public String getName()
    {
        return this.name;
    }

    public String getDepartment()
    {
        return this.department;
    }

    public Double getPay()
    {
        return this.pay;
    }

    public Double getHours()
    {
        return this.hours;
    }

    public Double getMoney()
    {
        return this.money;
    }

    public Double getMission()
    {
        return this.mission;
    }

    public Double getRate()
    {
        return this.rate;
    }

    public Double getWithheld()
    {
        return this.withheld;
    }

    public Double getMoneyc()
    {
        return this.moneyc;
    }

    public Double getMoneyu()
    {
        return this.moneyu;
    }

    public Double getSales()
    {
        return this.sales;
    }

    // Mutator Methods
    public void setName(String n)
    {
        name = n;
    }

    public void setDepartment(String d)
    {
        department = d;
    }

    public void setPay(double p)
    {
        pay = p;
    }

    public void setHours(double h)
    {
        hours = h;
    }

    public void setMoney(double m)
    {
        money = m;
    }

    public void setMission(double mi)
    {
        mission = mi;
    }

    public void setRate(double r)
    {
        rate = r;
    }

    public void setWithheld(double w)
    {
        withheld = w;
    }

    public void setMoneyc(double mc)
    {
        moneyc = mc;
    }

    public void setMoneyu(double mu)
    {
        moneyu = mu;
    }

    public void setSales(double s)
    {
        sales = s;
    }
}

class Last extends Employee
{
    public void dinero()
    {
        Employee one = new Employee();

        one.inputs();

        // Union Employee
        UnionEmployee three = new UnionEmployee();
        three.Syndicate();

        // Commission Employee
        Commissioned two = new Commissioned();
        two.sales();

        System.out.println("\n"+ "Name: "+ one.getName());
        System.out.println( "Department: "+ one.getDepartment());
        System.out.println( "Hours: "+ one.getHours());
        System.out.println( "Pay Rate: "+ one.getPay());
        System.out.println("Your money is: "+ one.getMoney());

        // Commissioned Employee
        System.out.println( "\n"+ "Commissioned Employee");
        System.out.println("Your money is: "+ one.getMoneyc());
        System.out.println( "Your commission is: "+ one.getMission());
        System.out.println("Your rate: "+ one.getRate());

        // Union employee
        System.out.println("\n"+"Union Employee");
        System.out.println("Your money is: "+ one.getMoneyu());
        System.out.println( "Your withheld is: "+ one.getWithheld());
    }
}

// Derived or Subclass
class Commissioned extends Employee
{
    public void sales()
    {
        moneyc = hours * pay;
        // Commission
        mission = sales * rate;
    }
}

// Derived or Subclass
class UnionEmployee extends Employee
{
    public void Syndicate()
    {
        if (hours <= 40) {
            moneyu = (hours * pay) - withheld;
        } else  {
            moneyu = (pay * hours * ((hours - 40) * 1.5)) - withheld;
        }
    }
}

public class WeiTry extends Last
{
    public static void main(String[] args)
    {
        // Output
        Last show = new Last();
        show.dinero();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2013-07-19 03:01:50

我看到Employee字段设置的唯一位置是在一个名为inputs()的方法中

one的值被填充是因为您在one上调用了inputs方法,但是对于像UnionEmployee three这样的其他employee类型,inputs从未调用过,它们的字段也从未被设置过。

如果您想要设置其他员工的值,看起来您必须调用他们的input方法。

代码语言:javascript
复制
UnionEmployee three = new UnionEmployee();
three.inputs();
three.Syndicate();

或者你也可以直接复制过来

代码语言:javascript
复制
three.setName(one.getName());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17731689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档