Java частная полевая видимость

В новых версиях matplotlib, если вы не устанавливаете метки тика с кучей значений str, они по умолчанию '' (и когда график рисуется, метки являются просто значениями тиков) , Зная, что для получения желаемого результата потребуется что-то вроде этого:

>>> from pylab import *
>>> axes = figure().add_subplot(111)
>>> a=axes.get_xticks().tolist()
>>> a[1]='change'
>>> axes.set_xticklabels(a)
[<matplotlib.text.Text object at 0x539aa50>, <matplotlib.text.Text object at 0x53a0c90>, 
<matplotlib.text.Text object at 0x53a73d0>, <matplotlib.text.Text object at 0x53a7a50>, 
<matplotlib.text.Text object at 0x53aa110>, <matplotlib.text.Text object at 0x53aa790>]
>>> plt.show()

и результат: enter image description here [/g0]

, и теперь, если вы проверите _xticklabels, они больше не являются связкой ''.

>>> [item.get_text() for item in axes.get_xticklabels()]
['0.0', 'change', '1.0', '1.5', '2.0']

Он работает в версиях от 1.1.1rc1 до текущей версии 2.0.

17
задан pek 26 November 2008 в 15:21
поделиться

5 ответов

Это доступно от различных экземпляров того же класса.

Согласно эта страница (шахта выделения полужирным):

На членском уровне, можно также использовать общедоступный модификатор или никакой модификатор (частный на пакет) так же, как с классами верхнего уровня, и с тем же значением. Для участников существует два дополнительных модификатора доступа: частный и защищенный. частный модификатор указывает, что к участнику можно только получить доступ в его собственном классе.

Для ясности я перепишу эту строку:

if ( t.privateInt == this.privateInt )

Мы можем согласиться, что "this.privateInt" должен быть позволен: Вы получаете доступ к нему из экземпляра класса Тест, которому "равняется" сообщение, был отправлен в.

менее ясно, что "t.privateInt" должен быть видим, потому что t является отдельным экземпляром класса Тест, и мы не выполняемся в, равняется методу. Однако Java позволяет это, так как оба объекта (t и это) имеют тот же класс Тест и видят каждого члены парламента, не занимающие официального поста других.

24
ответ дан 30 November 2019 в 12:01
поделиться

Довольно корректный Mike's; Вы путаете объекты (экземпляры класса) с самим классом. Участники являются частными к класс , не какой-то конкретный экземпляр из класса.

я вспоминаю быть столь же удивленным об этом, когда я был плохо знаком с Java.

4
ответ дан 30 November 2019 в 12:01
поделиться

Вы ссылаетесь на него из того же класса. Таким образом Вы знаете то, что Вы делаете, и не должен быть защищен от себя.

3
ответ дан 30 November 2019 в 12:01
поделиться

К частным переменным другого экземпляра того же класса можно получить доступ. Это вызвано тем, что Вы имеете дело с реализацией класса, непосредственно, который требует, чтобы Вы знали о его внутренних, 'частных' переменных так или иначе.

1
ответ дан 30 November 2019 в 12:01
поделиться

Простой ответ на эту путаницу - помнить, что закрытые поля видны только и только в том классе, в котором они инициализированы (и определены) .... Итак, когда вы создаете объект из class внутри класса, вы всегда можете получить доступ к частному полю этого класса через ссылку на объект. Может быть, вам это сложно, но просто подумайте, что частное поле похоже на общедоступное, когда вы используете его внутри класса, в котором оно определено.

0
ответ дан 30 November 2019 в 12:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: