Вопрос

Я новичок в Java, но имею некоторый опыт работы с ООП с ActionScript 3, поэтому пытаюсь выполнить переход, полагаясь на то, что знаю.

В ActionScript 3 вы можете создавать геттеры и сеттеры, используя ключевые слова get и set, то есть вы создаете метод в классе и получаете доступ к данным через свойство экземпляра этого класса.Я могу показаться сложным, но это не так.Вот пример:

родовое слово

И я мог бы получить доступ к сгенерированному коду в объекте как:

родовое слово

Как бы это сделать на Java?

Об открытых полях не может быть и речи. Я заметил, что существует соглашение об использовании get и set перед методами, с которым я согласен.

Например,

родовое слово

Есть ли в Java эквивалент средств получения / установки ActionScript 3, как в доступ к частному полю как к полю из экземпляра класса, но есть метод для реализации этого внутри класса?

Это было полезно?

Решение

Нет.Геттеры и сеттеры AS3 - это вещь ECMAScript.В Java вы застряли с функциями стиля getVal () и setVal () - нет никакого синтаксического сахара, чтобы упростить вам задачу.

Я думаю, что Eclipse может помочь в автоматическом создании подобных вещей ...

Другие советы

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

В Java нет ключевых слов get и set , как в вашем примере AS3.Извините, это не может быть лучше того, чем вы уже занимаетесь.

Исправленный код:

родовое слово

К сожалению, нет, в java нет эквивалентной поддержки на уровне языка.

Шаблоны get * и set *, однако, настолько укоренились в культуре Java, что вы найдете для них сильную поддержку IDE (например, eclipse сделает их за вас автоматически), и если вы работаете с чем-то, что используетязык выражений, сначала созданный для jsps (EL), затем вы сможете использовать нотацию свойств для доступа к геттерам и сеттерам.

Я бы подумал об отсутствии геттера или сеттера, поскольку в вашем случае они ничего не делают, кроме усложнения кода.Вот пример без геттеров и сеттеров.

родовое слово

ИМХО, не усложняйте ситуацию больше, чем нужно.Часто бывает, что добавление сложности страдает от You-Aint-Gonna-Need-It

Независимый от IDE способ - использовать Lombok , библиотеку на основе аннотаций, которая генерирует геттеры,установщики и даже equals() и hashcode().Это делается для компилятора, но не в исходном файле, поэтому вам не нужно смотреть на методы, просто используйте их.

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

По соглашению перед изменяемым полем добавляется код get или set.Итак, как и в вашем примере, поле name будет иметь методы getName и setName в качестве соответствующих методов получения и установки соответственно.

Также перед добавлением сеттеров и геттеров было бы неплохо спросить себя, почему вы раскрываете внутренние данные рассматриваемого объекта.
Предлагаю вам прочитать эту статью - http://www.javaworld.com/javaworld/jw-09-2003 / jw-0905-toolbox.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top