java新手程序

原题如下

编写程序,读入double型数并检验该数是否在1~1000.使用Myinput类的MyInput.readDouble()方法获取输入的数 如果在其范围内 则显示用boolean类型显示true 否则显示false
public class Estimate
{
public static void main(String[] args)
{

          A myA=new A(); 

          System.out.println("请输入数字:"); 
          System.out.println(myA.Compare()); 

}

class A
{

double i;
boolean b;

          boolean Compare(boolean b) 
    { 
            i=MyInput.readDouble(); 
              if(i <1000.0&&i>1.0) 
                b=true; 
              else 
                b=false;} 
          System.out.println(b); 
    } 

}

这是我用面向对象的思想又重新编了下 逻辑有点乱 但又不知道怎么改清晰了...

[code="java"]
public class Estimate {
public static void main(String[] args) {
System.out.println("请输入数字:");
double in = MyInput.readDouble(); // 在这里而不是在compare里面,获取与处理要分开.
double upperlimit = 1000d;
double lowerlimit = 0d;
System.out.println(Comparator.Compare(in, upperlimit, lowerlimit));

}

}

class Comparator { // 不要动手就A,A有意义吗?
//定义这样的Compare是为了方便以后范围变化时调用.
static boolean Compare(double value, double upperlimit, double lowerlimit) { // 这种自给自足的工具方法,适合使用static修饰.方便调用

    boolean b = false; // /如果需要,变量尽可能的收起来减少暴露,也就减少被误用的危险.申明变量就初始化,是个好习惯.
    if (value < upperlimit && value > lowerlimit) {
        b = true;
    } else {
        b = false;
    }
    System.out.println(b);
    return b;
}

}
[/code]

简单修改下,希望对LZ有启发!

System.out.println(myA.[color=red]Compare()); [/color]
boolean [color=red]Compare(boolean b) [/color]
方法定义就出错了

减少了变量的定义,静态化了方法
[color=red]public class CheckDouble {

public static boolean check(double val){
    if(val>1&&val<1000){
        return true;
    }else{
        return false;
    }
}

}[/color]