Общий вопрос здесь: если я создаю новый класс, и это только приватное поле - строка, могу ли я сделать что-то вроде this.privateString = argumentIn; в конструкторе, чтобы установить это приватное поле?Я просто устал, потому что я не очень хорош со всей ссылочной частью Java.
this.privateString = argumentIn;
Да , и, следовательно, определение частного поля, доступного только из самого класса.
И в качестве подсказки, без каких-либо средств доступа это может сделать ваши объекты такимикласс в основном бесполезный.
Определенно.Рассмотрим этот пример.Я добавил некоторые базовые методы защитного копирования.
/** * 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 }
Подумайте о том, чтобы прочитать этот пост Джошуа Блоха по защитному копированию полей .