我想编写一个不接受任何参数的构造函数,那么如果我没有实例变量,我将如何做到这一点,我习惯于在我有实例变量的情况下创建一个构造函数,我知道如果我没有,java会创建一个默认构造函数但有人告诉我这是一种糟糕的编程习惯???(课程新手)
public class Validator {
public Validator() {
}
public String getString(Scanner sc, String prompt) {
System.out.print(prompt);
String s = sc.next(); // read user entry
sc.nextLine(); // discard any other data entered on the line
return s;
}
public int getInt(Scanner sc, String prompt) {
int i = 0;
boolean isValid = false;
while (isValid == false) {
System.out.print(prompt);
if (sc.hasNextInt()) {
i = sc.nextInt();
isValid = true;
} else {
System.out.println("Error! Invalid integer value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return i;
}
public int getInt(Scanner sc, String prompt, int min, int max) {
int i = 0;
boolean isValid = false;
while (isValid == false) {
i = getInt(sc, prompt);
if (i <= min)
System.out.println("Error! Number must be greater than " + min
+ ".");
else if (i >= max)
System.out.println("Error! Number must be less than " + max
+ ".");
else
isValid = true;
}
return i;
}
public double getDouble(Scanner sc, String prompt) {
double d = 0;
boolean isValid = false;
while (isValid == false) {
System.out.print(prompt);
if (sc.hasNextDouble()) {
d = sc.nextDouble();
isValid = true;
} else {
System.out.println("Error! Invalid decimal value. Try again.");
}
sc.nextLine(); // discard any other data entered on the line
}
return d;
}
public double getDouble(Scanner sc, String prompt, double min, double max) {
double d = 0;
boolean isValid = false;
while (isValid == false) {
d = getDouble(sc, prompt);
if (d <= min)
System.out.println("Error! Number must be greater than " + min
+ ".");
else if (d >= max)
System.out.println("Error! Number must be less than " + max
+ ".");
else
isValid = true;
}
return d;
}
}