130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707

Название интерфейса и класса

05.04.2013, 10:27. Показов 8851. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть интерфейс(MyClass1), абстрактный класс(MyClass2) и просто класс(MyClass3)
Суть вот в чем, как назвать классы, если MyClass2 implements MyClass1, а MyClass3 extends MyClass2
В Джава Код Конвеншен ничего подобного не нашел
Для класса MyClass2 добавлять суффикс Impl или написать AbstractMyClass2?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2013, 10:27
Ответы с готовыми решениями:

Компиляция класса и интерфейса
Нужно откомпилировать два файла в разных пакетах, но почему-то выходит ошибка типа: см. картинку. Код интерфейса: package...

Пример интерфейса, абстрактного класса и метода
Приведите, пожалуйста, жизненные примеры интерфейса, абстрактного класса и метода

Наследование в класса от другого класса и интерфейса
Здравствуйте. Есть интерфейс public interface comp { void GetInfo(); } есть класс

11
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
05.04.2013, 13:39
обычно интерфейсы обзывают как нечто, что отражает поведение (типа Clonable, Comparable) или как обычный класс. иногда юзают негласный плюсовый конвеншен и вешают в начале буковку I. но я такого в реальности не встречал
к абстрактному иногда добавляют префикс Abstract. получается что-то вроде AbstracstReality. или опять же как обычный класс.
к обычным классам требований особых нет

ко всему перечисленному относится следующее: из названия класса\интерфейса\абстракции должно быть понятно что оно есть. не более(!) и не менее(!)

суфикс Impl вешается не на абстракции а на реализации интерфейсов или абстракций. можете считать что это маркер заглушек или чего-то такого что есть (и должно быть) в единственном экземпляре
1
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
05.04.2013, 14:18  [ТС]
AckiyBolt, т.е. в данном случае будет уместно назвать так:
IMyClass1
AbstractMyClass2
MyClass3
?
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
05.04.2013, 14:33
если вы осваиваете классы, скорее так:

MyInterface
AbstractMyClass
AbstractMyClassImpl

понятнее будет
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
05.04.2013, 15:17
Цитата Сообщение от AckiyBolt Посмотреть сообщение
если вы осваиваете классы, скорее так:

MyInterface
AbstractMyClass
AbstractMyClassImpl

понятнее будет
скорее так

MyInterface
AbstractMyClass
MyClassImpl
1
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
08.04.2013, 12:04  [ТС]
смотрю исходники на гитхабе, в классах исключений пишут константу serialVersionUID и в каждом классе она разная:
тыц1
тыц2
подскажите, для чего это нужно?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
08.04.2013, 12:11
для сериализации, чтобы не получить облом на разных классах с одинаковыми именами

Дело в том, что сериализация и десериализация времени выполнения происходит с учет версии объекта. Если его не указать, то он будет генерироваться автоматически на основе класса объекта, но в зависимости от конкретной версии компилятора это может происходить по-разному, что приведет к InvalidClassExceptions.

Сам serialVersionUID необходим для динамической проверки возможности десериализации. Если у источника и приемника различные serialVersionUID, то среда выполнения в праве считать, что это разные классы, и поэтому и выбросит InvalidClassExceptions.
1
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
08.04.2013, 12:13  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
для сериализации, чтобы не получить облом на разных классах с одинаковыми именами
а числа брать просто большие рандомные, я так понимаю?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
08.04.2013, 12:15
Цитата Сообщение от blackbanny Посмотреть сообщение
а числа брать просто большие рандомные, я так понимаю?
вобщем то неважно, главное чтобы в разных версиях этого класса они не повторялись
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
08.04.2013, 12:40
Цитата Сообщение от blackbanny Посмотреть сообщение
а числа брать просто большие рандомные, я так понимаю?
Вообще-то эти числа генерируются на основе класса с помощью утилиты serialver из Java SDK.
1
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
08.04.2013, 12:41  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
Вообще-то эти числа генерируются на основе класса с помощью утилиты serialver из Java SDK
можно поподробнее?)
или ссылку на статью, где описано про данные вещи...
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
08.04.2013, 13:01
http://docs.oracle.com/javase/... .html#4100

интересно было бы увидеть хоть разок
unexpected serialVersionUID conflicts during deserialization, causing deserialization to fail.
если я например буду нумеровать сквозняком классы 1,2,3 ...
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.04.2013, 13:01
Помогаю со студенческими работами здесь

Спрятать часть интерфейса класса
Добрый вечер, как предоставить возможность только классу Initer создавать и инициализировать класс A и не иметь в интерфейсе А лишних...

Одновременное наследование от класса и интерфейса
Как я понял в C# нельзя наследовать от нескольких классов, только от нескольких интерфейсов. Но у меня есть класс, который наследует уже...

Отделение интерфейса класса от реализации
Осваиваю раздел одной книги "Отделение интерфейса класса от реализации". То что получилось можно и нужно скачать по адресу...

Отделение интерфейса класса от его реализации
Всем привет! Прочитал все найденные похоже темы, но ответа на свой вопрос я не нашел. Поэтому создаю тему... Хочу отделить интерфейс...

Изменение объекта интерфейса из другого класса
Здравствуйте, назрел вопрос, излазил поисковики и не нашел ответа. Помогите кто чем сможет, пожалуйста. Создаю проэкт WPF...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
Множества в Python
py-thonny 11.06.2025
В Python существует множество структур данных, но иногда я сталкиваюсь с задачами, где ни списки, ни словари не дают оптимального решения. Часто это происходит, когда мне нужно быстро проверять. . .
Работа с ccache/sccache в рамках C++
Loafer 11.06.2025
Утилиты ccache и sccache занимаются тем, что кешируют промежуточные результаты компиляции, таким образом ускоряя последующие компиляции проекта. Это означает, что если проект будет компилироваться. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru