现有如下需求
- 无参构造方法,默认产生1-10
- 1个参数构造方法,默认产生0-a之间的随机数字
- 2个参数构造方法,产生a-b之间的随机数字
random类的全称是java.util.Random
关键语句为
(super.nextInt(b-a)/(b-a))+a
或者
Math.abs(super.nextInt()%(b+1))+a
这里仅重写nextInt()方法为例。
package com.janborn.www;
import java.util.Random;
public class MyRandom extends Random {
public int a;
public int b;
@Override
public String toString() {
return "MyRandom [a=" + a + ", b=" + b + "]";
}
public MyRandom() {
// TODO Auto-generated constructor stub
a=1;
b=10;
}
public MyRandom(int x) {
// TODO Auto-generated constructor stub
a=0;
b=x;
}
public MyRandom(int x,int y) {
// TODO Auto-generated constructor stub
a=x;
b=y;
}
public MyRandom(long seed) {
super(seed);
// TODO Auto-generated constructor stub
}
public int mynextInt() {
return (super.nextInt(b-a)/(b-a))+a;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyRandom r1 =new MyRandom();
MyRandom r2 =new MyRandom(10);
MyRandom r3 =new MyRandom(2,100);
System.out.println(r1.mynextInt());
System.out.println(r2.mynextInt());
System.out.println(r3.mynextInt());
}
}