您能否帮助我理解为什么我们可以用这种方式处理变量消息-e.message?这样做是为了使chyb.getInfoMessage(2)返回Chyb类型的新对象,并且需要将此结果分配给相同Chyb类型的varialbe。当e为Chyb类型时,由于构造函数填充了数据,我们可以解决Chyb类中的所有变量吗?
程序在这里:
class Chyb{
String message;
int importance;
Chyb(String m, int i){
message= m;
importance = i;
}
}
class InfoChyb {
String message[] = {
"Input error",
"output error",
"disk is full",
"Index is out of range"
};
int howBad[] = { 3, 3, 2, 4 };
Chyb getInfoMessage(int i) {
if(i >=0 & i < message.length)
return new Chyb(message[i], howBad[i]);
else
return new Chyb("Not valid code" , 0);
}
}
class InfoChyb {
public static void main(String args[]){
InfoChyby chyb = new InfoChyby();
Chyb e;
e = chyb.getInfoMessage(2);
System.out.println("Importance of message " + e.message+ ":" +
e.importance);
e = chyb.getInfoMessage(19);
System.out.println("Importance of message " + e.message+ ":" +
e.importance);
}
}
答案 0 :(得分:1)
我会尽力回答这个问题,但是在每一点上都有很多肯定,所以请在这里忍受。
- 类Chyb只是具有两个变量String和int以及一个构造函数的普通类。
正确
- InfoChyby类具有两个类型为String和int的变量(字段)
这些变量是数组String[]
和int[]
。
- 方法zjistiInfoChyby属于Chyb类型,属于类,之所以如此,是因为它需要返回两个不同类型的String和int值。 [...]
方法zjistiInfoChyby
的返回类型为Chyb
- [...]然后,该方法返回类型为Chyb的新对象,这意味着它调用类Chyb的构造函数并将值传递到方括号中,对吧?
您实例化一个Chyb
来保存值。如果参数中提供的索引正确,则可以从数组zpravy[]
,jakzle[]
中获得索引,或者返回具有“默认值” return new Chyb("Neplatny kod chyby" , 0);
- InfoChyb类具有main方法并运行程序。 [...]
是的,main
方法可以在任何类中。
- [...]我们定义了Chyb类型的变量e,这是因为此值将具有返回的方法zjistiInfoChyby的内部链接,该方法包含两个String和int类型的变量。
声明Chyb
来保存方法调用的结果。