Ответы пользователя по тегу Java
  • Hello World не может найти класс, что делать?

    @ProkletyiPirat
    public class Hello{
    	public static void main(String args[]) {
    		System.out.println("Hello World");
    	}
    }


    вам же по "русски" пишет "не могу найти метод main в классе, пожалуйста определите метод public static void main(String args[]) " (учитесь пользоваться хотя бы гугл переводчиком)

    а вообще берите книгу по java например: автор Кей Хорстман том 1 и том 2 и учите нормально java
    Ответ написан
  • ООП - Как понимать Интерфейсы в java?

    @ProkletyiPirat
    идея
    смотрите, вы создаёте объект "Кнопка" и этот объект может изменять своё состояние (нажата кнопка да\нет это и есть состояние). Другие программисты в других проектах будут использовать ваш объект "Кнопка", и эти программисты хотят что бы при изменение состояния что то происходило. При этом вы не знаете что именно должно происходить во всех этих проектах (это знают только их разработчики).

    как это можно сделать?
    убогая банальщина: вы делаете метод .получитьТекущееСостояние() и другие программисты в каком-то цикле опрашивают вашу кнопку через этот метод, да ещё и хранят предыдущее состояние (надо же с чем то сравнивать). Как видите довольно убого... пользователю-программисту нужно писать кучу кода с проверками и в добавок тратить впустую память и время процессора (то есть программа лагает и жрёт дохрена ресурсов...).

    нормальная реализация: пусть сама кнопка вызывает нужные действия, веть она же знает когда её состояние изменилось. Значит кнопка должна вызывать какую-то функцию но при этом не знать что именно эта функция должна делать. Вот тут и приходят на помощь интерфейсы и паттерны проектирования в данном случае Listeners (aka Observers). Вот как раз OnClickListener это и есть интерфейс. Что касается кнопки то она хранит список объектов которые нужно уведомить при изменении состояния, тип этих объектов "OnClickListener". Таким образом "Кнопке" плевать "что где и как" должно происходить при изменении состояния, но при этом она обеспечивает возможность выполнения этого "что где и как" и при этом гарантирует что не произойдёт ошибки из за отсутствия вызываемого метода.

    ru.wikibooks.org/wiki/Java/Listeners
    citforum.ru/SE/project/pattern
    Ответ написан
    3 комментария
  • Java vs C++. Что полезнее?

    @ProkletyiPirat
    смотря что считать "распространенными задачами" ...

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

    так например на Java в сравнении с C++ проще и быстрее писать кросс платформенные приложения или много поточные приложения и при этом они будут работать быстрее C++, но зато когда дело касается железок или объёмной работы над памятью то на С++ писать быстрее и проще и работать будет быстрее чем Java.

    а весь цимес в том что не надо говорить "Java" или "C++", надо говорить "Java" и "C++", за счёт того что есть JNI вы спокойно можете вынести все нагруженные вычисления в С\С++, а в Java оставить всё остальное, и получить лучшее из двух миров.
    Ответ написан
    Комментировать
  • Как правильно расставлять фигурные скобки?

    @ProkletyiPirat
    как верно тут заметили главное придерживаться единого стиля...

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

    если и условие и решение простое то пишем в одну строчку
    if (view == null) continue;

    если условие простое, а решение сложное то
    if (isFreeze) {
        setPrevEnabledView(null);
        prevBlock = Block.EMPTY;
        isRun = false;
        if (timer != null) {
            timer.cancel();
        }
    }


    если и условие и решение сложные то
    if ((objectEnabled = mapSettings.get(ATTRIBUTE_COLOR_BACKGROUND_ENABLED)) != null
        | (objectDefault = mapSettings.get(ATTRIBUTE_COLOR_BACKGROUND_DEFAULT)) != null)
    {
        //body
    }
    Ответ написан
    Комментировать
  • На каких сайтах искать первую работу/стажировку?

    @ProkletyiPirat
    как правило работу можно найти только в Москва - Питер, исключений очень мало...
    как альтернатива - фриланс, но нужен свой хотя бы один проект.

    p.s. это касается большинства языков программирования, правда тут тоже есть исключение - web.
    Ответ написан