如何将此代码更改为不再重复的内容?

时间:2015-07-18 14:07:24

标签: java

所以,我还是Java新手,虽然我一直在练习使用BlueJ,但我在程序中遇到了重复。我需要帮助以最简单的方式理解这一点,如果可能的话,建议如何将这些代码更改为更简单的解释方法:)

import java.util.*;
public class Name //This program has a separate main class
{
    public static String FirstName;
    public static String LastName;
    public static String FullName = FirstName + (" ") + LastName;
    public static String Choice;
    
    static Scanner userInput = new Scanner(System.in);
    public void callName(){ }
    public Name () {
        System.out.print("Enter your first name: ");
        
        if(userInput.hasNextLine()){
            this.setFirstName(userInput.nextLine());}
             
            System.out.print("Enter your last name: ");
            
            if(userInput.hasNextLine()){
                this.setLastName(userInput.nextLine());}
                
                System.out.println("Hello there, " + FirstName + " " + LastName + " :3");
        new Scanner(System.in).nextLine();
            System.out.println("\nWould you like to know your:");
            System.out.println("A. BMI");
            System.out.println("B. Grades for Major Subjects");
            System.out.println("If none, Press X to exit.");
        if(userInput.hasNextLine()){
            this.setChoice(userInput.nextLine());}
            if(userInput.hasNextLine()){
                BMI show = new BMI();
                show.sayBMI();
            }
            }
    public String getFirstName() {
        return FirstName;
    }
    public void setFirstName(String FirstName){
        this.FirstName = FirstName;
    }
    public String getLastName(){
        return LastName;
    }
    public void setLastName(String LastName){
        this.LastName = LastName;
    }
    public String getChoice(){
        return Choice;
    }
    public void setChoice(String Choice){
        this.Choice = Choice;
    }
}

它与另一个名为BMI的类连接起来,我还没有完成它,因为我在意识到它不断重复之后暂停了它;

import java.util.*;
public class BMI extends Name //Again, this program has a separate MAIN class that executes the entire thing
{
    public void sayBMI(){}
    
    private static int Feet;
    private static int Inch;
    public static double Height;
    public static double Weight;
    
    static Scanner userInput = new Scanner(System.in);
    public BMI()
    {
        System.out.println("So you want to know your BMI, " + FullName + "?");
    }

}

当我执行程序时,它运行如下:

“输入您的名字:Franz 输入您的姓氏:Sarmiento 你好,Franz Sarmiento:3

你想知道你的: A. BMI B.主要科目的成绩 如果不是,请按X退出。 甲

输入您的名字:输入您的姓氏: 那你好,:3“

我停在那里因为它是连续的。

提前致谢! :)

1 个答案:

答案 0 :(得分:0)

快速查看您的问题是因为您从BMI扩展名称。

public class BMI extends Name

继承:从另一个类派生的类称为子类,并继承其超类的所有字段和方法。

只需删除扩展名称部分,您的程序就应该停止循环。

public class BMI

我希望这能解决你的问题,祝你好运。