Являются ли ключевые слова видимости в Java на самом деле методами, как в Ruby? - PullRequest
3 голосов
/ 29 марта 2012

Как видно из названия, в Ruby «ключевые слова», такие как private, public и т. Д., На самом деле являются «методами, которые работают с классом, динамически изменяя видимость методов» (http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Classes) - это то же самое в Java?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 29 марта 2012

Нет.В Java это сопоставляется с чем-то в байт-коде, который JVM понимает (и обеспечивает).Компилятор также использует его сам.

Не существует "динамической компиляции / манипулирования классами", которая происходит при загрузке класса, как вы можете сделать в Ruby или Perl.

1 голос
/ 29 марта 2012

Нет, это не так.Java - это скомпилированный язык, и эти ключевые слова понимаются компилятором с особым значением, когда он анализирует ваш код.

Ruby не компилируется заранее, поэтому определение класса в Ruby - это действительно исполняемый оператор, которыйопределяет класс во время выполнения.Вот почему модификаторы доступа на самом деле являются методами выполнения в Ruby.Загрузка классов в Java совершенно другая.

1 голос
/ 29 марта 2012

Нет, в Java это "настоящие" ключевые слова: модификаторы заканчиваются сгенерированным байт-кодом.Они не методы.

...