.valueOf 使用另一个 class 的私有变量
.valueOf using another class's private variable
BaseExample Class(我不允许在此示例中保护变量):
public class BaseExample {
private int a;
public BaseExample(int inVal) {
a = inVal;
}
public BaseExample(BaseExample other){
a = other.a;
}
public String toString(){
return String.valueOf(a);
}
}
衍生示例Class:
public class DerivedExample extends BaseExample {
private int b;
public DerivedExample(int inVal1, int inVal2){
super(inVal2);
a = inVal2;
}
}
超级方法奏效了。现在,如果我被问到这个,我会怎么称呼它:
**Returns a reference to a string containing the value stored in the inherited varible a followed by a colon followed by the value stored in b public String toString()**
我试过这个:
public String toString(){
int base = new BaseExample(b);
return String.valueOf(base:this.b);
}
如果我放两个returns,它会给我一个无法访问代码的错误。如果我在 valueOf 中放置一个 super,它就不起作用。这也行不通。这是如何执行的?
我认为您误解了要求,您需要打印位于父级 class 中的 a
,由冒号与当前 class 中的 b 连接而成。
String.valueOf(base:this.b)
这是错误的语法,你想要的是
super.toString() + ":" + this.b;
BaseExample Class(我不允许在此示例中保护变量):
public class BaseExample {
private int a;
public BaseExample(int inVal) {
a = inVal;
}
public BaseExample(BaseExample other){
a = other.a;
}
public String toString(){
return String.valueOf(a);
}
}
衍生示例Class:
public class DerivedExample extends BaseExample {
private int b;
public DerivedExample(int inVal1, int inVal2){
super(inVal2);
a = inVal2;
}
}
超级方法奏效了。现在,如果我被问到这个,我会怎么称呼它:
**Returns a reference to a string containing the value stored in the inherited varible a followed by a colon followed by the value stored in b public String toString()**
我试过这个:
public String toString(){
int base = new BaseExample(b);
return String.valueOf(base:this.b);
}
如果我放两个returns,它会给我一个无法访问代码的错误。如果我在 valueOf 中放置一个 super,它就不起作用。这也行不通。这是如何执行的?
我认为您误解了要求,您需要打印位于父级 class 中的 a
,由冒号与当前 class 中的 b 连接而成。
String.valueOf(base:this.b)
这是错误的语法,你想要的是
super.toString() + ":" + this.b;