Java 字符串作为新类的唯一私有字段
这里的一般问题是:如果我在创建一个新类,并且它唯一的私有字段是字符串,我可以这样做吗;在构造函数中设置该私有字段?我只是厌倦了,因为我不擅长java的整个引用部分。是的,因此只能从类本身访问私有字段的定义Java 字符串作为新类的唯一私有字段,java,string,constructor,immutability,private,Java,String,Constructor,Immutability,Private,这里的一般问题是:如果我在创建一个新类,并且它唯一的私有字段是字符串,我可以这样做吗;在构造函数中设置该私有字段?我只是厌倦了,因为我不擅长java的整个引用部分。是的,因此只能从类本身访问私有字段的定义 作为提示,如果没有任何访问器,这可能会使此类对象变得毫无用处。当然。考虑这个例子。我添加了一些基本的防御性抄袭练习 /** * MyClass is an immutable class, since there is no way to change * its state after co
作为提示,如果没有任何访问器,这可能会使此类对象变得毫无用处。当然。考虑这个例子。我添加了一些基本的防御性抄袭练习
/**
* MyClass is an immutable class, since there is no way to change
* its state after construction.
*/
public final class MyClass{
private final String myString;
public MyClass(String myString){
this.myString = myString;
}
/**
* Returns an immutable object. String is immutable.
*
*/
public String getMyString(){
return myString;
}
//no need to provide a setter to keep myString as immutable after initial state
}
请考虑阅读Joshua Bloch的这篇文章。我计划使用.charAt来挑选字符串的不同部分。感谢您的快速回复:如果您的私人字段也是最终字段,您甚至可以这样做。事实上,如果您不打算更改该字段,出于风格和技术原因,将其声明为最终字段是一个好主意。后者很难在注释中解释,但当类的实例可能被不同的线程创建和使用时,它会有所帮助。当您尝试它时发生了什么?编译,但在真正的测试可行之前,我不得不添加一些方法,但结果证明它是正确的>。因此,如果它被编译,您可以这样做。这个测试比在论坛上发帖要快得多-关键是,您可以引用本地对象,但一旦它超出范围,您就不再引用该对象了。我只是想确定我没有在事故中那样做。