Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 8

Классы внутри интерфейсов из Философии Java

25.03.2019, 19:55. Показов 3755. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. В книге дан пример реализации интерфейса во внутреннем классе:
Java
1
2
3
4
5
6
7
8
9
public interface B{
    void f(); 
    class Test implements B { 
        public void f(){System.out.println("Hello!");}
        public static void main(String[] args){ 
           new Test().f(); 
        }
    }
}
Согласно книги при запуске этого кода должно выводиться сообщение "Hello!".
Но выводится java.lang.NoSuchMethodException: main [class [Ljava.lang.String;]
Что не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2019, 19:55
Ответы с готовыми решениями:

Классы внутри интерфейсов
Здравствуйте. Помогите разобраться, пожалуйста. В настоящее время читаю книгу "Философия Java", где в теме "Вложенные...

Преобразование интерфейсов в абстрактные классы
Здравствуйте, изучали недавно паттерн "Простая фабрика", получили задание преобразовать код с интерфейсами в код с абстрактными классами,...

Можно ли реализовать в Java наследование двух классов (не интерфейсов)?
здравствуйте подскажите пожалуйста можно ли реализовать в джава наследование двух классов(не интерфейсов ) если да то как ищу , но не...

25
29.03.2019, 13:26
Студворк — интернет-сервис помощи студентам

Не по теме:

чото буйных все больше

0
29.03.2019, 15:42

Не по теме:

Цитата Сообщение от xoraxax Посмотреть сообщение
чото буйных все больше
Весеннее обострение жи есть

0
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 8
30.03.2019, 07:31  [ТС]
Всем спасибо за ответы.
Похоже дело действительно в приложении для планшетов, т.к. попробовал этот пример на Intellij IDEA на ноутбуке, всё нормально, пример отработал так, как в книге. Затем в приложении для планшета создал на отдельных файлах интерфейсы и абстрактные классы и везде приложение зачем то ищет метод main и выдает одно и то же - java.lang.NoSuchMethodException: main [class [Ljava.lang.String;]

Добавлено через 24 минуты
Хотел ещё добавить про множественное наследование в Java. Общепринято считать, что в Java нет множественного наследования от классов, возможно множественное наследование только от интерфейсов. Так вот, Эккель пишет, что внутренние классы тем и полезны, что позволяют реализовать множественное наследование от классов и приводит соответствующие примеры.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
30.03.2019, 12:31
Aleks987, тебе вроде сказали уже выбросить эту книгу
0
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 8
30.03.2019, 14:14  [ТС]
xoraxax, если ты или другие советчики предложат мне написанную ими лучшую, чем эта, книгу, то я может быть подумаю над их советом.
0
 Аватар для vvm28
773 / 541 / 67
Регистрация: 22.12.2013
Сообщений: 2,500
Записей в блоге: 26
19.05.2019, 14:19
Цитата Сообщение от Aleks987 Посмотреть сообщение
Согласно книги при запуске этого кода должно выводиться сообщение "Hello!".
Java
1
2
3
4
5
6
7
8
9
10
11
package aleks987;
public interface B {
    void f(); 
    class Test implements B { 
        @Override
        public void f(){System.out.println("Hello!");}
        public static void main(String[] args){ 
           new Test().f(); 
        }
    }
}
У меня выводит: "Hello!".
Вы что-то делаете не правильно.
Очевидно здесь класс Тест сделан только для тестирования интерфейса. Это временный класс,
чтобы при необходимости проверить работоспособность интерфейса. Вот что скорее всего имелось в виду в книге.
Стал искать в книге "Философия Java", Брюс Эккель. Что-то я такого кода не нашел.
Может подскажете на какой странице?

Там нужно смотреть по контексту для чего вы выбираете ту или иную архитектуру вашего класса или интерфейса.
Чтобы читать "Философия Java" у вас уже должно быть некоторое довольно глубокое понимание некоторых вопросов.
С этой книги не стоит начинать изучение Java. Читайте для начала что-то попроще.

Добавлено через 23 минуты
Цитата Сообщение от Aleks987 Посмотреть сообщение
Общепринято считать, что в Java нет множественного наследования от классов, возможно множественное наследование только от интерфейсов.
Вы можете как угодно реализовать множественное наследование в соответствии с правилами документации и правилами OOP.
Важно понимать некоторые проблемы связанные со структурой наследования:

parent
/\
child1 child2
\/
child3



Для начала нужно понять для чего он описывает свой подход, и с какой целью используется его подход.
Сможете ли вы применить такой подход в ваших проектах?
Для чего? Будет ли архитектура вашего проекта от этого лучше?
То есть важна практическая часть применения данного подхода.

Заметьте он в своей книге не нарушает никаких правил, он их просто лучше понимает.

Добавлено через 3 часа 57 минут
PS. Можете еще почитать про ООП публикацию на Хабр.
Там рассказывается об общепринятых понятиях, которые распространены у HR и более точных определениях.
Джо Армстронг об Elixir, Erlang, ФП и ООП >>>
Самое интересное там в комментариях.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.05.2019, 14:19

Java SE - Правильно ли я понимаю применение интерфейсов и абстрактных классов ?
Правильно ли я понимаю применение интерфейсов и абстрактных классов ? Созданы интерфейсы Move, Eat, Voice эти итерфесы extends интерфейс...

Нужна информация о создании графических интерфейсов на java в intellij idea
Добрый день. Уважаемые форумчани. Подскажите пожалуйста, где можно посмотреть и почитать информацию по разработки графических интерфейсов в...

Разработка интерфейсов, использование механизма наследования интерфейсов и применение их в программах
Имеется код, необходимо реализовать, и протестировать эти интерфейсы IComparable (сравнимый), ICloneable (клонируемый). Помогите...

Классы JAVA
Здравствуйте. У меня есть задание подключить к меню игру. Игра состоит из главного класса package igra; import javax.swing.*; ...

Классы Java
Здравствуйте, есть у кого-то класс с методами: Add Show all Search Load Save Delete Edit


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru