我正在研究布鲁斯·埃克尔(Bruce Eckel)的书中的一个例子,我想知道为什么输出时初始化值不会粘住?
class InitialValues2 {
boolean t = true;
char c = 'x';
byte b = 47;
short s = 0xff;
int i =999;
long l =1;
float f = 3.14f;
double d =3.14159;
InitialValues reference;
void printInitialValues() {
System.out.println("data type Initial values");
System.out.println("boolean " + t);
System.out.println("char [" + c + "]");
System.out.println("byte " + b);
System.out.println("short " + s);
System.out.println("int " + i);
System.out.println("long " + l);
System.out.println("float " + f);
System.out.println("double " + d);
System.out.println("reference " + reference);
} //end printinitialvalues
public static void main(String args[]) {
InitialValues iv = new InitialValues();
iv.printInitialValues();
//new InitialValues().printInitialValues();
} //end main
}
所有变量输出0和空值。
答案 0 :(得分:9)
我看到一个问题。变量在名为InitialValues2的类中声明,但是您在InitialValues类型的对象上调用printInitialValues()方法。您似乎永远不会调用printInitialValues()方法。
答案 1 :(得分:4)
class InitialValues {
boolean t = true;
char c = 'x';
byte b = 47;
short s = 0xff;
int i =999;
long l =1;
float f = 3.14f;
double d =3.14159;
InitialValues reference;
void printInitialValues() {
System.out.println("data type Initial values");
System.out.println("boolean " + t);
System.out.println("char [" + c + "]");
System.out.println("byte " + b);
System.out.println("short " + s);
System.out.println("int " + i);
System.out.println("long " + l);
System.out.println("float " + f);
System.out.println("double " + d);
System.out.println("reference " + reference);
} //end printinitialvalues
public static void main(String args[]) {
InitialValues iv = new InitialValues();
iv.printInitialValues();
//new InitialValues().printInitialValues();
} //end main
}
你的班叫做InitialValues2你应该把它重命名为InitialValues。
答案 2 :(得分:3)
您的类名是InitialValues2,但您正在创建一个InitialValues对象。将“InitialValues iv = new InitialValues()”替换为“InitialValues2 iv = new InitialValues2()”
答案 3 :(得分:3)
在主要方法中,您要创建新的 InitialValues ,而不是 InitialValues2 (已发布的类)。
答案 4 :(得分:2)
您正在创建一个InitialValues对象并为其调用构造函数。但是你想要的值是在InitialValues2类中。我猜是有一些复制意大利面错误正在发生。
我可能会建议您将主要方法更改为:
public static void main(String args[]) {
InitialValues2 iv = new InitialValues2();
iv.printInitialValues();
}