车牌厂

时间:2012-12-15 17:49:30

标签: java

我在使用Java类中的程序时遇到问题,它应该相对简单,但我发现它很难。

“编写一个生成许可证的类LicensePlateFactory 板。提供返回唯一的方法getNextPlate 车牌号码(一个int)。全部使用序号 LicencePlateFactory创建的牌照,从 100001。

编写一个创建LicensePlateFactory的程序 从中获取并显示十几个连续牌照。“

我的代码(看起来很糟糕,在盯着这个问题很长一段时间后不知道该怎么做): 工厂:

public class LicensePlateFactory 
{
    private int k = 100001;
    private int count;

    public LicensePlateFactory(int x)
    {
          this.count++;
    }

    public static void main(String[] args)
    {
    getnextPlate();
    }

    public int getnextPlate()
    {   
    return k + count;

    }
}

创建工厂的程序:

public class LicensePlateFactoryRunner 
{

    private LicensePlateFactory fac;
    public LicensePlateFactoryRunner()
    {
        for (int x = 1; x < 13; x++)
        {
        LicensePlateFactory fac = new LicensePlateFactory();
                    System.out.println(LicensePlateFactory.getnextPlate());
        }
    }
}

也许我忘记了一些基本的java概念?

2 个答案:

答案 0 :(得分:0)

您的代码将显示相同的牌照12次。原因是因为你为循环的每次迭代创建了一个新的LicensePlateFactory。你应该做的是将工厂的创建移到循环之外。

此外,这是一个小狡辩,但通常循环从0开始,除非你有充分的理由不这样做。

答案 1 :(得分:0)

以下是一些提示:

  1. 使用一个字段创建PlateFactory类:最后使用的板号和一个方法:getNextPlate()返回Plate
  2. 引入一个带有一个字段的Plate对象:板号,因为在不使用工厂的情况下无法实例化(假设)此对象,它应该没有公共构造函数。我们还可以假设板号不能更改(最终字段,没有设置器)。
  3. 为您的App方法创建一个main()类,并在此方法中创建PlateFactory实例,然后使用此实例12次创建12 Plate(编号为100001) ,100002,...但工厂处理那个)。
  4. 一些阅读: