【问题标题】:How could i encapsulate the integer number and the time it was generated ?我如何封装整数及其生成时间?
【发布时间】:2014-01-21 17:13:46
【问题描述】:

这是随机数生成器。

package mynum;

import java.util.Random;

public class MyNum {

static Random number = new Random();


public static void main(String[] args) {

    for (int i =0; i < 1 ; i++)
    {
        System.out.println( genRandom());
    }

}
public static int genRandom(){
    return number.nextInt(200);
}

}

是时候了

package time;

public class Time {


public static void main(String[] args) {
    System.out.println(System.nanoTime());
}

}

我怎么能把这两个放在我的名为 Node.js 的新类中。在 Node 类中,我想获取随机数和它一起生成的时间。

例如

数字178时间10988393883

163号时间10299383773

【问题讨论】:

  • 只需像生成数字属性一样生成时间戳。

标签: java class random time


【解决方案1】:

首先,您需要创建一种机制,通过该机制可以从Time 类中获取(不仅仅是打印)实际时间值,类似于:

public static long time() {
    return System.nanoTime();
}

那么Node 类应该很简单:

class Node {
    private int num;
    private long time;

    public Node() {
        num = MyNum.genRandom();
        time = Time.time();
    }

    @Override
    public String toString() {
        return "Number " + num + " Time " + time;
    }
}

【讨论】:

【解决方案2】:

很简单。结构简单。

public class Node {

    private static final Random RNG = new Random();

    public static String generateRandom() {
        return "Number " + RNG.nextInt(200) + " Time " + System.nanoTime();
    }
}

如果你想真正面向对象而不是简单地打印:

public class Node {

    private static final Random RNG = new Random();

    private final int number;
    private final long timeGenerated;

    public Node() {
        number = RNG.nextInt(200);
        timeGenerated = System.nanoTime();
    }

    public int getNumber() {
        return number;
    }

    public long getTimeGenerated() {
        return timeGenerated;
    }

    @Override
    public String toString() {
        return "Number " + number + " Time " + timeGenerated;
    }
}

【讨论】:

  • 如何分别获取号码和时间?
  • @dognose 添加到答案中。然而,这不是问题的一部分,而是一起打印。
  • 谢谢你想通了。
猜你喜欢
  • 2016-12-05
  • 1970-01-01
  • 2010-10-20
  • 2015-02-01
  • 2014-09-08
  • 2022-09-26
  • 2017-01-06
  • 2015-06-30
  • 1970-01-01
相关资源
最近更新 更多