当前位置: 首页 > 面试题库 >

在getter和setter中使用扫描仪输入?

漆雕硕
2023-03-14
问题内容

我有两个Java类,一个包含getter和setter,另一个是驱动程序类。我需要来自驱动程序类中扫描程序的用户输入才能属于第一类中的getter。用户输入必须为double,因为它将用作getter中的公式。

//First Class
public class shopping
{
    String orangeSelected;
    public double getOrangeSelected()
    {
        return (user input makes a formula to be returned to the driver class)
    }

    public void setOrangeSelected(String orangeSelected)
    {
        this.orangeSelected = orangeSelected;
    }
}

//Driver Class
import java.util.Scanner
public class shoppingApp
{
    public static void main(String[] args)
    {
        Scanner inputOrangeSelected = new Scanner(System.in)
        System.out.println("Premium Oranges");
        String orangeSelected = inputOrangeSelected.nextLine();
    }
}

问题答案:

真正最好的是将所有内容都放在一个类中,没有理由将一个类分成两个类,只是为了使获取器和设置器与其他类分开,这 没有任何意义
。我确实想知道您是否误解了您的作业。

import java.util.Scanner;
class shoppingApp
{
    //since it's an instance field not local to the class it's declared here instead of main
    static String orangeSelected = "";

    public static void main(String[] args)
    {
        //orange  selected is an odd name for a scanner, just use scan or something similar
        Scanner scan = new Scanner(System.in); //note that you were missing a semicolon
        System.out.println("Premium Oranges\n"); //include a new line or a space before asking for input, for example with \n
        orangeSelected = scan.nextLine();
    }
    //setter
    public static void setOrangeSelected(String str)
    {
        orangeSelected = str;
    }
    //getter
    public static String getOrangeSelected()
    {
        return orangeSelected;
    }

    //Note that all methods and instance fields are static because the main method must be static if you don't understand this yet that's ok.
}

现在,如果出于某种原因您绝对 必须 使用两个类,则它看起来应该像这样,尽管我会注意到,只是在不理解的情况下复制和粘贴我的代码将是 作弊行为

import java.util.Scanner;
class shoppingApp
{
    //normally this shouldn't be public
    public static String orangeSelected = "";

    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in); 
        System.out.println("Premium Oranges\n");
        orangeSelected = scan.nextLine();
    }
}

 class gettersAndSetters
{
    //setter
    public void setOrangeSelected(String str)
    {
        Main.orangeSelected = str;
    }
    //getter
    public String getOrangeSelected()
    {
        return Main.orangeSelected;
    }
}


 类似资料:
  • 我开发了一个字符排序器,我想每次字符串排序后提示用户输入一个新的字符串。我遇到的问题是扫描仪一直在扫描用户的第一个输入。如果我使用scanner.next(),它不会计算输入末尾的空白,这不是解决方案。 这是while循环的开始。一旦代码完成,它将再次从“inputtext”开始。

  • 问题内容: 我正在尝试让扫描仪在循环中进行输入。一旦用户想要完成操作,他就可以退出此循环。我尝试了许多不同的方法来执行此操作,但始终存在一些问题。这是代码: 上面代码的问题(在我尝试的其他方法上也会发生)是,当用户键入 Y时 ,将跳过名字的第一个输入,并跳转到姓氏。如果用户键入 N, 则循环将正确停止。有人可以解释发生这种情况的原因,以及如何克服使用课堂的问题? ps:执行类似的操作,将导致循环终

  • 我正在尝试通过单行输入检索用户输入:例如,使用扫描仪分隔符为Comma5,6,4,8,9。如何使用这种类型的输入检索任意数量的整数?也就是说,不必询问用户希望输入多少个整数。下面是我一直在使用的代码,但是当我想中断时,不能中断while循环。请注意,我保留System.Out以跟踪程序当前运行的位置。令人困惑的是,我可以以这种格式获得用户输入,但程序停止并再次要求用户输入,然后如果输入是一个整数,

  • 我很难想出如何正确使用扫描仪来验证用户输入。例如,程序需要用户输入int,用户只能输入正数,如果用户输入“apple”、“delicious apple”或负数,问题将显示错误消息。我尝试了下面的代码,然后我发现了一个令人不安的问题,“那不是一个数字!”我不知道是什么引起了这些问题。。。。 我在“number=sc.nextInt()”下面加了一行代码,意外地解决了这个问题,现在我的代码变成: 这

  • 从指定范围(0,20)内且为int的用户处获取有效整数的最佳方法是什么。如果他们输入了无效的整数打印输出错误。 我在想这样的事情: 这是正确的还是有更好的方法?

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?