Java 将信息从一个类拉入另一个类

Java 将信息从一个类拉入另一个类,java,class,Java,Class,我对Java非常陌生。对于课堂作业,我需要输入销售人员的姓名和年销售额,然后根据他们50000美元的固定年薪显示他们的总工资。它必须包括两个类 我让销售人员班正常工作。Annualwages类运行,但显示“hello null”和“您的总年薪为50000美元”(这只是固定年薪,没有增加销售额) 运行年度工资时,我不知道如何从销售人员中提取信息 package annualwages; import java.util.Scanner; /** @author Rachael */ clas

我对Java非常陌生。对于课堂作业,我需要输入销售人员的姓名和年销售额,然后根据他们50000美元的固定年薪显示他们的总工资。它必须包括两个类

我让
销售人员
班正常工作。
Annualwages
类运行,但显示“hello null”和“您的总年薪为50000美元”(这只是固定年薪,没有增加销售额)

运行
年度工资
时,我不知道如何从
销售人员
中提取信息

package annualwages;

import java.util.Scanner;

/** @author Rachael  */
class salesperson { //begins salesperson class
    int annualSales;
    String name;

    public static void main(String[] args) {
        int annualSales;
        String name;
        // Create a Scanner object to read input.
        Scanner keyboard = new Scanner(System. in );

        //Get the user's name.
        System.out.print("What is your name? ");
        name = keyboard.nextLine();

        //Get the amount of annual Sales
        System.out.print("How much in sales did you make in the last year? ");
        annualSales = keyboard.nextInt();
    }

} //ends salesperson class

包年工资;
/**
*
*@author笔记本电脑
*/
公营年薪{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){//开始main方法
/**声明声明*/
最终双佣金=0.15;
//为赚取的佣金设置固定变量
最终双薪=50000;
//设置工资收入的固定变量
最终双倍销售目标=120000;
//设置销售目标的固定变量
双倍总销售额、总工资、实际佣金,加速系数=1.25;
/** 
*初始化年销售额、总销售额、总工资、,
*实际佣金和加速系数为双倍。
*将加速度系数设置为增加1.25*/
salesperson sp=新销售人员();
//销售奖励最低起价为96000美元。
//如果少于,则不赚取佣金
if(sp.annualSales 96000)和&(sp.annualSales
在您的
salesperson
类中,我会将
main
函数中的所有代码移动到构造函数中。就像我在下面所做的。这样可以设置非静态字段,以便正确设置
名称
年度销售

import java.util.Scanner;

public class salesperson {

    int annualSales;
    String name;

    public salesperson(){
        // Create a Scanner object to read input.
        Scanner keyboard = new Scanner(System.in);

        //Get the user's name.
        System.out.print("What is your name? ");
        name=keyboard.nextLine();

        //Get the amount of annual Sales
        System.out.print("How much in sales did you make in the last year? ");
        annualSales=keyboard.nextInt();
    }
}
注意,我从方法中删除了声明
name
annualSales
。 在这之后,
年度工资
类中的其余代码应该可以正常工作

这两个字段

 int annualSales;
 String name;
应使其成为“公开静态”。此外,不应在main方法中再次定义它们


最后,您似乎没有使用IDE。下载“EclipseIDE”以用Java编写代码。这会让你的生活更轻松

你必须这样做:

 import java.util.Scanner;
 class salesperson {
 protected int annualSales;
 protected String name;

 public void saleInformation() {
    Scanner keyboard = new Scanner(System.in);
    System.out.print("What is your name? ");
    name = keyboard.nextLine();
    System.out.print("How much in sales did you make in the last year? ");
    annualSales = keyboard.nextInt();
}
}

public class Annualwages extends salesperson {

public static void main(String[] args) {
    salesperson s = new salesperson();
    s.saleInformation();

    final double COMMISSION = 0.15;
    final double SALARY = 50000;
    final double SALESTARGET = 120000;
    double totalSales, totalWages, actualCommission, accelFactor = 1.25;
    if (s.annualSales <= 96000) {
        actualCommission = 0;
    } else if ((s.annualSales > 96000) && (s.annualSales < SALESTARGET)) {
        actualCommission = COMMISSION;
    } else {
        actualCommission = COMMISSION * accelFactor;
    }
    totalSales = s.annualSales * actualCommission;
    totalWages = SALARY + totalSales;
    System.out.println("Hello " + s.name);
    System.out.println("Your total annual compensation is $" + totalWages);
}
}
import java.util.Scanner;
班级销售员{
受保护的国际年度销售;
受保护的字符串名称;
公共信息(){
扫描仪键盘=新扫描仪(System.in);
系统输出打印(“你叫什么名字?”);
name=keyboard.nextLine();
System.out.print(“你去年的销售额是多少?”);
annualSales=keyboard.nextInt();
}
}
公共类销售人员年工资{
公共静态void main(字符串[]args){
销售人员=新销售人员();
s、 销售信息();
最终双佣金=0.15;
最终双薪=50000;
最终双倍销售目标=120000;
双倍总销售额、总工资、实际佣金,加速系数=1.25;
if(s.annualSales 96000)和&(s.annualSales
尝试在它们周围放置一个封装类。然后他们可以共享。另外,您的类存在一些编译问题。在运行代码之前,请按照我们必须使用NetBeans的类说明更正此问题。这就是我用来写这段代码的地方。谢谢你的帮助,非常感谢。这帮了大忙!
 import java.util.Scanner;
 class salesperson {
 protected int annualSales;
 protected String name;

 public void saleInformation() {
    Scanner keyboard = new Scanner(System.in);
    System.out.print("What is your name? ");
    name = keyboard.nextLine();
    System.out.print("How much in sales did you make in the last year? ");
    annualSales = keyboard.nextInt();
}
}

public class Annualwages extends salesperson {

public static void main(String[] args) {
    salesperson s = new salesperson();
    s.saleInformation();

    final double COMMISSION = 0.15;
    final double SALARY = 50000;
    final double SALESTARGET = 120000;
    double totalSales, totalWages, actualCommission, accelFactor = 1.25;
    if (s.annualSales <= 96000) {
        actualCommission = 0;
    } else if ((s.annualSales > 96000) && (s.annualSales < SALESTARGET)) {
        actualCommission = COMMISSION;
    } else {
        actualCommission = COMMISSION * accelFactor;
    }
    totalSales = s.annualSales * actualCommission;
    totalWages = SALARY + totalSales;
    System.out.println("Hello " + s.name);
    System.out.println("Your total annual compensation is $" + totalWages);
}
}