为了账号安全,请及时绑定邮箱和手机立即绑定

构造函数和未知数组大小;主要方法中的提示(最佳实践)

构造函数和未知数组大小;主要方法中的提示(最佳实践)

白衣非少年 2022-06-23 20:08:24
我的问题最好解决一个全局数组变量,比如int []。数组的大小来自标准输入。现在,我的构造函数需要初始化数组并且需要知道大小。同样在主要方法中,我应该只调用 Service.method(),而不是自己调用 method()。问题变成了,“我不应该在 main() 中单独调用 prompt() 来收集数组大小。此外,在提示用户提供数组大小之前,我无法创建类实例。public class Class    //variable    int[] var;    //constructor    public Class(int size)    {        var = new int[size];    }    public int prompt()    {        Scanner input = new Scanner( System.in );        return input.nextInt();    }    public static void main(String[] args)    {        //should not write         //prompt()        //i don't know the size, can't call constructor    }}在实践中,这可以通过在 main() 中实现 prompt() 来解决,而不是在它自己的方法中。这是好习惯吗?这个问题是否有另一种惯用的解决方案?此外,列表对于这个程序的目的来说真的很不方便,如果可以的话,我想避免使用这些。
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

这可以通过实现prompt()within来完成main(),但另一种解决方案是 make prompt() static,如下所示:


public static int prompt()

{

    Scanner scanner = new Scanner(System.in);

    return scanner.nextInt();

}

这样做是为了让您可以使用Class.prompt()而不需要 的实例来调用它Class,并且它能够成为静态方法,因为它不依赖于 的实例中的任何数据Class。然后它成为整个类的一部分,而不是类的一个实例。实现上述内容,您的用法将如下所示:


    public static void main(String[] args)

    {

        //Ask the size.

        int size = Class.prompt();

        //Create the class with the size asked for above.

        Class instance = new Class(size);

    }

我建议您查看Java 类成员文档。


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号