我初始化一个Password对象,我在将字符串作为字符串用于以后的目的时遇到了麻烦,比如计算字符串中的字母数量。我知道我只使用方法 String.valueOf 和 .toString 获取对象的文本表示。我该怎么做我的对象传递并获得"你好"字符串我用?
初始化它public class Password {
public Password (String text) {
}
public String getText(){
String string = String.valueOf(this);
return string;
}
public static void main (String[] args) {
Password pass = new Password ("hello");
System.out.println(pass.toString());
}
}
答案 0 :(得分:0)
使用字段。
public class Password {
private String text; // This is a member (field) It belongs to each
// Password instance you create.
public Password(String value) {
this.text = value; // Copy the reference to the text to the field
// 'text'
}
}
String.valueOf(this)
this
实例Password
的问题在于valueOf()
方法完全不知道如何转换Password
实例到上述示例中的字段. You named it "Password", but it could also be
MyText or
MySecret . So you need to tell how a
密码instance can be displayed as text. In your case, you'll need to just use the
text`字段。
你一定要阅读docs about classes。我想你错过了一些基本的东西。
注意:由于安全隐患,您也不应该将密码存储到字符串中,但这是另一个故事,超出了您的问题范围。
答案 1 :(得分:0)
您的实际getText()
方法没有意义:
public String getText(){
String string = String.valueOf(this);
return string;
}
您尝试从String
实例的toString()
方法重新创建Password
。
它实际上没有必要(无用的计算)并且它是笨拙的,因为toString()
不是为了提供功能数据而设计的。
为达到目标,这是非常基本的。
将文本存储在Password
实例的字段中:
public Password (String text) {
this.text = text;
}
并提供text
字段的视图。
您可以这样替换getText()
:
public String getText(){
return text;
}