我正在编写一个模拟简单银行账户活动的程序,我想知道如何做到这一点,如果我创建一个没有任何参数的新账户,它会收到随机的7digit标识号,显示为String。我的方式,我只在输出中收到java.util.Random@2a0364ef。 期待对此问题的任何帮助和其他评论,因为这是我在本网站上发布的第一个。
import java.util.Random;
class Account {
String id;
double stan;
int num;
static int counter;
public Account() {
**id = randomId().toString();**
stan = 0;
num = ++counter;
}
public Account(String id) {
this.id = id;
stan = 0;
num = ++counter;
}
public Account(String id, double mon) {
stan = 0;
this.id = id;
this.stan = mon;
num = ++counter;
}
**static String randomId() {
Random rand = new Random(7);
return String.valueOf(rand);**
}
String getId() {
return id;
}
double getStan() {
return stan;
}
int getNum() {
return num;
}
@Override
public String toString() {
return "Account's id " + getId() + " and balance " + getStan();
}
}
public class Exc7 {
public static void main(String[] args) {
Account account = new Account("0000001"),
acount0 = new Account("0000002", 1000),
acount1 = new Account();
System.out.println(account + "\n" + account0 + "\n" + account1);
}
}
答案 0 :(得分:2)
更改return String.valueOf(rand);
到
return String.valueOf(rand.nextInt());
<强>原因强>:
您正在将随机对象传递给valueOf
方法,而不是您需要的值。在其上调用nextInt()
方法以获得所需的随机值。
答案 1 :(得分:0)
使用
return String.valueOf(rand.nextInt());
否则您将获得Random
对象的字符串表示形式,而不是它可以生成的随机int
。
答案 2 :(得分:0)
使用此代码:
Random rand = new Random(7);
return String.valueOf(Math.abs(rand.nextInt()));
现在您正在代表Random
实例。
而是打印随机的下一个String
的数学绝对值的int
表示法就可以了。
Math.abs
部分很重要,否则您可能会有负数。