Найти в Дзене
yagdmitrij

Удивительная java

Много лет занимаюсь программированием на java. Мне нравится получать из набора символов продукт (приложение), реализующий все твои фантазии. Я далек до профессионального программиста, поэтому все мои статьи по java будут ориентированы на людей, которые только начинают кодить на данном языке программирования. В планах написать цикл статей понятным и доступным языком, где я буду излагать свою точку зрения, не всегда верную, свои мысли и догадки о удивительном мире кодинга. При этом сам буду совершенствоваться и открывать для себя новые возможности java. Так как java широко используется в разработке приложений под android, возможно затронем и эту тему, а также совсем молодой язык программирования – kotlin. В чем же заключается прелесть java и какие у него отличия от других языков. Одной из главных особенностей является его объективная направленность, унаследованная от такого языка как C++. Таким образом, в java все построено на классах и объектах, или почти все... На начальном этапе изуче

Много лет занимаюсь программированием на java. Мне нравится получать из набора символов продукт (приложение), реализующий все твои фантазии. Я далек до профессионального программиста, поэтому все мои статьи по java будут ориентированы на людей, которые только начинают кодить на данном языке программирования. В планах написать цикл статей понятным и доступным языком, где я буду излагать свою точку зрения, не всегда верную, свои мысли и догадки о удивительном мире кодинга. При этом сам буду совершенствоваться и открывать для себя новые возможности java.

Так как java широко используется в разработке приложений под android, возможно затронем и эту тему, а также совсем молодой язык программирования – kotlin.

В чем же заключается прелесть java и какие у него отличия от других языков. Одной из главных особенностей является его объективная направленность, унаследованная от такого языка как C++. Таким образом, в java все построено на классах и объектах, или почти все...

классы и объекты
классы и объекты

На начальном этапе изучения java сложно понять объектную модель языка. Если представить, что класс - это здание, в котором находится библиотека с книгами, где подробно описываются, как построить определенную инфраструктуру в городе, а объекты – это строители, которые знают, как найти это здание и воспользоваться библиотекой, чтобы построить, например, мост в городе. Причем в здании можно обучить огромное количество строителей-объектов.

Следующая особенность языка -это переносимость. Это означает, что приложение, написанное на java будет работать на любых устройствах. Единственное условие, чтобы на устройствах была установлена JVM (виртуальная машина). Как это работает. Вначале машина преобразует программу в байт-код, и только после в машинный код, понятный устройству. Есть еще много достоинств языка программирования на java, перечислять которые было бы скучной темой, тем более, что на просторах интернета эту информацию можно легко найти. Мы же остановимся на таких важных аспектах как инкапсуляция, наследование и полиморфизм.

инкапсуляция
инкапсуляция

Инкапсуляция - это способность программы защищать свой код. Раз уж мы представили, что класс- это дом, а объекты - строители, то можем представить условно: книги - методы, а материалы будут переменными членами. Тогда инкапсуляцию можно представить, как комната, в которой могут находиться материалы и книги. Комната может быть открытой, и тогда любой строитель из других домов может свободно воспользоваться книгами или материалами, попросту украсть их. Или закрытой, тогда доступ в эту комнату будут иметь только обитатели этого дома. Права доступа разберем немного позже. Если говорить научным языком, инкапсуляция – это некий защитный механизм управления данными. Еще хотелось бы отменить и то, что закрыть можно не только книги и материалы, но и сам дом-класс.

наследование
наследование

Наследование. Само название говорит за себя – кто-то что-то наследует. Применительно к нашим домикам. Есть дом, условно назовем его дом-родитель, обитатели которого отвечают за строительство моста в целом: его внешний облик, эксплуатационные параметры, назначение, финансовые расчеты. Другой дом, обитатели которого отвечают за строительство определенной части моста, например, опоры. Все необходимые книги и материалы у них для этого есть. Назовем это дом-наследник. Если дом-наследнику нужны будут книги о совокупном проекте моста, или общие материалы, он непременно будет запрашивать у дома-родителя. Проще говоря, он будут наследовать все, что находится в доме-родителя к своему уже имеющемуся имуществу. Можно создать еще несколько домиков. Один будет заниматься строительством подводной части опоры, а второй – надводной части. И все они будут наследовать все, что находится в доме, который занимается строительством опоры в целом.

Полиморфизм- это когда «один интерфейс, а методов множество». Допустим, в домашней библиотеке имеется полка с общим тематическим названием, например, заливка бетона. На этой полке находятся книги (методы) такие как: «заливка бетона вручную», «заливка бетона с помощью электроинструмента», «ускоренная заливка» и т. д. Фишка в том, что книги эти с пустыми страницами, поэтому каждый строитель решает и пишет книгу сам, как он будет «заливать бетон вручную» или как будет делать «ускоренную заливку». В полной мере полиморфизм проявляет себя, когда ваша программа занимает огромные размеры памяти, где множество методов по своему функционалу близко похожи. Так зачем создавать каждый раз новый метод, если можно один метод реализовать множество раз и так, как нам нужно. Все эти понятия: инкапсуляция, наследование и полиморфизм составляют важную часть объектно-ориентированного программирования (ООП).