如何在java中赋值?

如何在java中赋值?,java,Java,我想构建我自己的类,类似于字符串类,我可以这样使用 MyClass mc=“testvalue” 我很困惑如何做到这一点,“testvalue”将被分配到哪里 谢谢 MyClass mc="testvalue"; 无论MyClass是什么,这都是不可能的。 “testvalue”是字符串文本,字符串是最终类(不能扩展)。因此,上述构造无法在Java中编译 MyClass mc="testvalue"; 这里的值是“testvalue”,它是一个字符串,您试图将其分配给一个引用变量。这是不允许

我想构建我自己的类,类似于字符串类,我可以这样使用

MyClass mc=“testvalue”

我很困惑如何做到这一点,“testvalue”将被分配到哪里

谢谢

MyClass mc="testvalue";
无论MyClass是什么,这都是不可能的。
“testvalue”
是字符串文本,字符串是最终类(不能扩展)。因此,上述构造无法在Java中编译

MyClass mc="testvalue";
这里的值是
“testvalue”
,它是一个字符串,您试图将其分配给一个引用变量。这是不允许的,
mc
假定包含对
MyClass
的对象(或其子类型)的引用

例如,您可以将其分配给
字符串的引用

String  str ="testValue";

在Java中,在类中存储值的常用方法是使用成员变量创建一个类,并使用get/set方法对其进行读/写操作:

class YourClass{
  private String value;

  public YourClass(String value){
    // Constructor
    this.value = value;
  }

  public String getValue(){
    return value;
  }

  public void setValue(String new_value){
    this.value = new_value;
  }

}
所以你可以这样做:

YourClass yc = new YourClass("Your Value");
yc.getValue(); // Returns your Value
vc.setValue("A new Value"); // Sets your Value

由于Java既不支持隐式转换,也不支持运算符重载,因此需要实现构造函数或接受字符串的静态工厂方法


您也可以采用预处理器的方式来创建语言变体,但这完全是另一回事。

问题还不清楚。您必须更好地定义您要做的事情,更不用说Java中没有运算符重载。虽然字符串确实是最终的,但这只关系到确切的oposite字符串str=new MyClass();将永远不会工作,因为字符串是最终的。MyClass mc=“testvalue”;将永远不会工作,因为字符串不会从MyClass继承。它适用于对象obj=“testvalue”;好的,所以我忘了说“所以我的类不能扩展字符串”。起诉我,但我以为那是真的obvious@Sean:这不是重点。关键是您的答案给出了“为什么我不能使用字符串变量存储MyClass对象”的解决方案,而不是“为什么我不能使用MyClass变量存储字符串对象?”毕竟,您可以使用:object obj=“asdf”;虽然字符串是最终的。“这与此无关。”阿米特叹了口气。我知道。关键是,我们都知道字符串没有任何超类,除了ObjectI,我想你指的是成员变量,而不是全局变量。