Строка как единственное приватное поле для нового класса - PullRequest
2 голосов
/ 31 января 2011

Общий вопрос здесь: если я создаю новый класс, и это только приватное поле - строка, могу ли я сделать что-то вроде this.privateString = argumentIn; в конструкторе, чтобы установить это приватное поле?Я просто устал, потому что я не очень хорош со всей ссылочной частью Java.

Ответы [ 2 ]

4 голосов
/ 31 января 2011

Да , и, следовательно, определение частного поля, доступного только из самого класса.

И в качестве подсказки, без каких-либо средств доступа это может сделать ваши объекты такимикласс в основном бесполезный.

1 голос
/ 31 января 2011

Определенно.Рассмотрим этот пример.Я добавил некоторые базовые методы защитного копирования.

/**
* 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
}

Подумайте о том, чтобы прочитать этот пост Джошуа Блоха по защитному копированию полей .

...