Хотя это экземпляр того же класса, в котором написана testPrivate, но не следует ли ему с ошибкой компилятора в System.out.println (o.count);
blockquote>Нет. Это никогда не вызовет ошибку компиляции.
Это очень похоже на то, что делает простой getter и setter или конструктор копирования. Помните, что мы можем получить доступ к
private
членам, используяthis.
public MyClass { private String propertyOne; private String propertyTwo; // cannot access otherObject private members directly // so we use getters // But MyClass private members are accessible using this. public MyClass(OtherClass otherObject) { this.propertyOne = otherObject.getPropertyOne(); this.propertyTwo = otherObject.calculatePropertyTwo(); } public void setPropertyOne(String propertyOne) { this.propertyOne = propertyOne; } public String getPropertyOne() { return this.propertyOne; } }
. Ваш метод
testPrivate
принимает экземпляр MyClass. ПосколькуtestPrivate
является методом внутриMyClass
, он будет иметь доступ к свойствамprivate
.public void testPrivate(MyClass o) { this.propertyOne = o.propertOne; }
Методы, определенные внутри класса, всегда будут иметь доступ к его членам
private
, черезthis.
и переменной экземпляра.Но если вы определите
testPrivate
внеMyClass
, то у вас не будет доступа к членамprivate
. Там вам придется использовать метод или сеттер или геттер.
I did it :
new_user = User.objects.create_user(username, email, password)
new_user.is_active = False
new_user.first_name = first_name
new_user.last_name = last_name
new_user.save()