• С чего начинать чтение чужого кода?

    @aol-nnov
    начинай читать, внезапно, с точки входа в приложение.
    проекты с открытым исходным кодом, еще более внезапно, находятся, например, на гитхабе!
    Ответ написан
    Комментировать
  • Знания для программирования?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    понял, что не хватает знаний в других областях

    Что посоветуете изучить

    Ту область, в которой не хватает знаний. Логично же.
    Ответ написан
    Комментировать
  • Использование интерфейсов в Java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Автору. Вы взяли какой то очень невнятный пример себе. Образно говоря интерфейс это абстракция.
    К примеру у вас есть некая игра. В игре есть транспорт. Вы задаетесь вопросом а какбы сделать так что бы не знать о том что именно это за транспорт но при этом уверенно использовать его.
    1) Вы смотрите все свои классы: легковая машина, автобус, самолет, катер, велосипед.
    2) У всех классов транспорта можно выделить общие черты. Они могут ехать вперед\назад, рулить влево\вправо, подать сигнал и т.д.
    3) Описываете интерфейс с этими выделенными общими методами. Например
    interface Transport{
       void gazuem();
       void tormozim();
       void signalim();
    ...
    }

    4) Теперь настало время реализовать этот интерфейс. Пример:
    public class Avtobus implements Transport{    
        public void gazuem() {
            //реализация особенности как едет автобус
        }
        public void signalim() {
            //тут просто школьный Фа-Фа
        }
    }
    //Велосипед
    public class Velosiped implements Transport{    
        public void gazuem() {
            //реализация особенности как будете крутить педали
        }
        public void signalim() {
            //тут колокольчиком Дзинь-Дзинь
        }
    }
    //Остальные реализации

    5) Абстрагируемся в коде от реализаций конкретных видов транспорта, т.е. работаем с ними как с черной коробкой. Например:

    Transport velik = new Velosiped();
    Transport avtobus = new Avtobus();
    ...
    Transport samolet = new Samolet();
    
    ...
    И гдето , например, все виды транспорта попали в коллапс и надо резко посигналить.
    velik.signalim(); //Дзинь дзинь
    avtobus.signalim(); // Фа-Фа
    samolet.signalim();// А тут звуков не будет но вам до лампочки и никаких ошибок не будет
    ...
    //Дальше, например, у игрока есть метод использовать.
    //Вам не нужно знать какой именно тип транспорта перед ним, вы просто делаете следующее:
    class Player{
    ...
    public void use(Object someObject){
              if(someObject instanceof Transport){
                    //Сюда попадет абсолютно любой тип транспорта
                    ((Transport)someObject).sadimsya(); //Что там внутри и как оно работает вас уже не интересует
              }
    }
    ...
    }

    Вот в целом как то так это выглядит.
    Ответ написан