Программный язык java. Язык программирования Java: с чего начать изучение. Где применяется Java

Последнее обновление: 26.09.2018

На сегодняшний момент язык Java является одним из самых распространенных и популярных языков программирования. Первая версия языка появилась еще в 1996 году в недрах компании Sun Microsystems, впоследствии поглощенной компанией Oracle. Java задумывался как универсальный язык программирования, который можно применять для различного рода задач. И к настоящему времени язык Java проделал большой путь, было издано множество различных версий. Текущей версией является Java 11, которая вышла в сентябре 2018 года. А Java превратилась из просто универсального языка в целую платформу и экосистему, которая объединяет различные технологии, используемые в целого ряда задач: от создания десктопных приложений до написания крупных веб-порталов и сервисов. Кроме того, язык Java активно применяется для создания программного обеспечения для целого ряда устройств: обычных ПК, планшетов, смартфонов и мобильных телефонов и даже бытовой техники. Достаточно вспомнить популярность мобильной ОС Android, большинство программ для которой пишутся именно на Java.

Особенности Java

Ключевой особенностью языка Java является то, что его код сначала транслируется в специальный байт-код, независимый от платформы. А затем этот байт-код выполняется виртуальной машиной JVM (Java Virtual Machine). В этом плане Java отличается от стандартных интерпретируемых языков как PHP или Perl, код которых сразу же выполняется интерпретатором. В то же время Java не является и чисто компилируемым языком, как С или С++.

Подобная архитектура обеспечивает кроссплатформенность и аппаратную переносимость программ на Java, благодаря чему подобные программы без перекомпиляции могут выполняться на различных платформах - Windows, Linux, Mac OS и т.д. Для каждой из платформ может быть своя реализация виртуальной машины JVM, но каждая из них может выполнять один и тот же код.

Java является языком с Си-подобным синтаксисом и близок в этом отношении к C/C++ и C#. Поэтому, если вы знакомы с одним из этих языков, то овладеть Java будет легче.

Еще одной ключевой особенностью Java является то, что она поддерживает автоматическую сборку мусора. А это значит, что вам не надо освобождать вручную память от ранее использовавшихся объектов, как в С++, так как сборщик мусора это сделает автоматически за вас.

Java является объектно-ориентированным языком. Он поддерживает полиморфизм, наследование, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений.

Установка Java

Для работы программ на языке Java на целевой машине должна быть установлена JRE (Java Runtime Environment). JRE представляет минимальную реализацию виртуальной машины, а также библиотеку классов. Поэтому, если мы хотим запускать программы, то нам надо установить JRE. Для каждой конкретной платформы имеется своя версия JRE.

Однако, так как мы собираемся не только запускать программы, но и разрабатывать их, нам потребуется специальный комплект для разработки JDK (Java Development Kit). JDK уже содержит JRE, а также включает ряд дополнительных программ и утилит, в частности компилятор Java.

Загрузить и установить соответствующую версию JDK можно с с официального сайта Oracle: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Итак, с выше упомянутого адреса загрузим программу установки JDK для последней версии Java.

Затем нас перебросит на страницу, где надо выбрать версию для целевой ОС - Windows, MacOS или Linux:

Для каждой ОС есть два варианта загрузки: в виде установщика, либо в виде архива, который не надо устанавливать. Например, моя ОС - Windows, поэтому я загружаю файл jdk_11_windows-x64_bin.exe, который представляет программу установки.

После загрузки запустим программу установки:

Оставим все опции по умолчанию и нажмем на Next для выполнения установки.

После завершения установки JDK мы увидим вот такое окно:

Итак, после установки JDK создадим первую программу на Java.

Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает,

что исходный текст программ хранится в файлах с расширениями Java. Получаемый в процессе трансляции код для каждого класса записывается в отдельном выходном файле, с именем совпадающем с именем класса, и расширением class.

Прежде всего, в этой главе мы напишем, оттранслируем, и запустим каноническую программу “Hello World”. После этого мы рассмотрим все существенные лексические элементы, воспринимаемые Java-транслятором: пробелы, комментарии, ключевые слова, идентификаторы, литералы, операторы и разделители. К концу главы вы получите достаточно информации для того чтобы самостоятельно ориентироваться в хорошей Java-программе.

Итак, вот ваша первая Java-программа

:

class HelloWorld {

System. out. println ("Hello World");

Для того, чтобы поработать с приведенными в книге примерами вам нужно получить по сети из Sun Microsystems и установить Java Developers Kit - пакет для разработки Java-приложений (

http://java.sun.com/products/jdk ). Полное описание утилит пакета JDK – в Приложении 1 .

Язык Java требует, чтобы весь программный код был заключен внутри поименованных классов. Приведенный выше текст примера надо записать в файл HelloWorld.java. Обязательно проверьте соответствие прописных букв в имени файла тому же в названии содержащегося в нем класса. Для того, чтобы оттранслировать этот пример необходимо запустить транслятор Java - javac, указав в качестве параметра имя файла с исходным текстом:

\> javac HelloWorld.Java

Транслятор создаст файл HelloWorld.class с независимым от процессора байт-кодом нашего примера. Для того, чтобы исполнить полученный код, необходимо иметь среду времени выполнения языка Java (в нашем случае это программа java), в которую надо загрузить новый класс для исполнения. Подчеркнем, что указывается имя класса, а не имя файла, в котором этот класс содержится.

> java HelloWorld

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

Шаг за шагом

HelloWorld - это тривиальный пример. Однако даже такая простая программа новичку в языке Java может показаться пугающе сложной, поскольку она знакомит вас с массой новых понятий и деталей синтаксиса языка Давайте внимательно пройдемся по каждой строке нашего первого примера, анализируя те элементы, из которых состоит Java-программа.

class HelloWorld {

В этой строке использовано зарезервированное слово

class. Оно говорит транслятору, что мы собираемся описать новый класс. Полное описание класса располагается между открывающей фигурной скобкой в первой строке и парной ей закрывающей фигурной скобкой в строке 5. Фигурные скобки в Java используются точно так же, как в языках С и С ++.

public static void main (String args ) {

Такая, на первый взгляд, чрезмерно сложная строка примера является следствием важного требования, заложенного при разработке языка Java. Дело в том, что в

Java отсутствуют глобальные функции. Поскольку подобные строки будут встречаться в большинстве примеров первой части книги, давайте пристальнее рассмотрим каждый элемент второй строки.

Разбивая эту строку на отдельные лексемы, мы сразу сталкиваемся с ключевым словом

public. Это - модификатор доступа, который позволяет программисту управлять видимостью любого метода и любой переменной. В данном случае модификатор доступа public означает, что метод main виден и доступен любому классу. Существуют еще 2 указателя уровня доступа - private и protected, с которыми мы более детально познакомимся в главе 8 .

Следующее ключевое слово -

static. С помощью этого слова объявляются методы и переменные класса, используемые для работы с классом в целом. Методы, в объявлении которых использовано ключевое слово static, могут непосредственно работать только с локальными и статическими переменными.

У вас нередко будет возникать потребность в методах, которые возвращают значение того или иного типа: например,

int для целых значений, float - для вещественных или имя класса для типов данных, определенных программистом. В нашем случае нужно просто вывести на экран строку, а возвращать значение из метода main не требуется. Именно поэтому и был использован модификатор void. Более детально этот вопрос обсуждается в главе 4 .

Наконец, мы добрались до имени метода

main. Здесь нет ничего необычного, просто все существующие реализации Java-интерпретаторов, получив команду интерпретировать класс, начинают свою работу с вызова метода main. Java-транслятор может оттранслировать класс, в котором нет метода main. А вот Java-интерпретатор запускать классы без метода main не умеет.

Все параметры, которые нужно передать методу, указываются внутри пары круглых скобок в виде списка элементов, разделенных символами ";" (точка с запятой). Каждый элемент списка параметров состоит из разделенных пробелом типа и идентификатора. Даже если у метода нет параметров, после его имени все равно нужно поставить пару круглых скобок. В примере, который мы сейчас обсуждаем, у метода

main только один параметр, правда довольно сложного типа. String args объявляет параметр с именем args, который является массивом объектов - представителей класса String. Обратите внимание на квадратные скобки, стоящие после идентификатора args. Они говорят о том, что мы имеем дело с массивом, а не с одиночным элементом указанного типа. Мы вернемся к обсуждению массивов в следующей главе, а пока отметим, что тип String - это класс. Более детально о строках мы поговорим в главе 9 .

System. out. prlntln("Hello World!");

В этой строке выполняется метод

println объекта out. Объект out объявлен в классе OutputStream и статически инициализируется в классе System. В главах 9 и 13 у вас будет шанс познакомиться с нюансами работы классов String и OutputStream.

Закрывающей фигурной скобкой в строке 4 заканчивается объявление метода

main, а такая же скобка в строке 5 завершает объявление класса HelloWorld.

Лексические основы

Теперь, когда мы подробно рассмотрели минимальный Java-класс, давайте вернемся назад и рассмотрим общие аспекты синтаксиса этого языка. Программы на

Java - это набор пробелов, комментариев, ключевых слов, идентификаторов, литеральных констант, операторов и разделителей. язык, который допускает произвольное форматирование текста программ. Для того, чтобы программа работала нормально, нет никакой необходимости выравнивать ее текст специальным образом. Например, класс HelloWorld можно было записать в двух строках или любым другим способом, который придется вам по душе. И он будет работать точно так же при условии, что между отдельными лексемами (между которыми нет операторов или разделителей) имеется по крайней мере по одному пробелу, символу табуляции или символу перевода строки.

Комментарии

Хотя комментарии никак не влияют на исполняемый код программы,

при правильном использовании они оказываются весьма существенной частью исходного текста. Существует три разновидности комментариев: комментарии в одной строке, комментарии в нескольких строках и, наконец, комментарии для документирования. Комментарии, занимающие одну строку, начинаются с символов // и заканчиваются в конце строки. Такой стиль комментирования полезен для размещения кратких пояснений к отдельным строкам кода:

а = 42; // если

42 - ответ, то каков же был вопрос?

Для более подробных пояснений вы можете воспользоваться комментариями, размещенными на нескольких строках, начав текст комментариев символами /* и закончив символами */ При этом весь текст между этими парами символов будет расценен как комментарий и транслятор его проигнорирует.

* Этот код несколько замысловат...

* Попробую объяснить:

Третья, особая форма комментариев, предназначена для сервисной программы

javadoc, которая использует компоненты Java-транслятора для автоматической генерации документации по интерфейсам классов. Соглашение, используемое для комментариев этого вида, таково: для того, чтобы разместить перед объявлением открытого (public) класса, метода или переменной документирующий комментарий , нужно начать его с символов /** (косая черта и две звездочки). Заканчивается такой комментарий точно так же, как и обычный комментарий - символами */. Программа javadoc умеет различать в документирующих комментариях некоторые специальные переменные, имена которых начинаются с символа @. Вот пример такого комментария:

* Этот класс умеет делать замечательные вещи. Советуем всякому, кто

* захочет написать еще более совершенный класс, взять его в качестве

* базового.

* @see Java. applet. Applet

* ©author Patrick Naughton

class CoolApplet extends Applet { /**

* У этого метода два параметра:

key - это имя параметра. - это значение параметра с именем key.

*/ void put (String key, Object value) {

Зарезервированные ключевые слова

Зарезервированные ключевые слова - это специальные идентификаторы, которые в языке

Java используются для того, чтобы идентифицировать встроенные типы, модификаторы и средства управления выполнением программы. На сегодняшний день в языке J ava имеется 59 зарезервированных слов (см. таблицу 2). Эти ключевые слова совместно с синтаксисом операторов и разделителей входят в описание языка Java. Они могут применяться только по назначению, их нельзя использовать в качестве идентификаторов для имен переменных, классов или методов.

Таблица 2

Зарезервированные слова Java

Отметим, что слова

byvalue, cast, const, future, generic, goto, inner, operator, outer, rest, var зарезервированы в Java, но пока не используются Кроме этого, в Java есть зарезервированные имена методов (эти методы наследуются каждым классом, их нельзя использовать, за исключением случаев явного переопределения методов класса Object).

Таблица 3

Зарезервированные имена методов

Java

Идентификаторы

Идентификаторы используются для именования классов, методов и переменных. В качестве идентификатора может использоваться любая последовательность строчных и прописных букв, цифр и символов _ (подчеркивание) и $ (доллар). Идентификаторы не должны начинаться с цифры, чтобы транслятор не перепутал их с числовыми литеральными константами, которые будут описаны ниже.

Java - язык, чувствительный к регистру букв. Это означает, что, к примеру, Value и VALUE - различные идентификаторы.

Литералы

Константы в

Java задаются их литеральным представлением. Целые числа, числа с плавающей точкой, логические значения, символы и строки можно располагать в любом месте исходного кода. Типы будут рассмотрены в главе 4 .

Целые литералы

Целые числа - это тип, используемый в обычных программах наиболее часто. Любое целочисленное значение, например, 1, 2, 3, 42 - это целый литерал. В данном примере приведены десятичные числа, то есть числа с основанием 10 - именно те, которые мы повседневно используем вне мира компьютеров. Кроме десятичных, в качестве целых литералов могут использоваться также числа с основанием 8 и 16 - восьмеричные и шестнадцатиричные. Java распознает восьмеричные числа по стоящему впереди нулю. Нормальные десятичные числа не могут начинаться с нуля, так что использование в программе внешне допустимого числа 09 приведет к сообщению об ошибке при трансляции, поскольку 9 не входит в диапазон 0..

7, допустимый для знаков восьмеричного числа. Шестнадцатиричная константа различается по стоящим впереди символам нуль-х (0х или 0Х). Диапазон значений шестнадцатиричной цифры - 0.. 15, причем в качестве цифр для значений 10.. 15 используются буквы от А до F (или от а до f). С помощью шестнадцатиричных чисел вы можете в краткой и ясной форме представить значения, ориентированные на использование в компьютере, например, написав Oxffff вместо 65535.

Целые литералы являются значениями типа

int, которое в Java хранится в 32-битовом слове. Если вам требуется значение, которое по модулю больше, чем приблизительно 2 миллиарда, необходимо воспользоваться константой типа long. При этом число будет храниться в 64-битовом слове. К числам с любым из названных выше оснований вы можете приписать справа строчную или прописную букву L, указав таким образом, что данное число относится к типу long. Например, Ox7ffffffffffffffL или 9223372036854775807L - это значение, наибольшее для числа типа long.

Литералы с плавающей точкой

Числа с плавающей точкой представляют десятичные значения, у которых есть дробная часть. Их можно записывать либо в обычном, либо экспоненциальном форматах. В обычном формате число состоит из некоторого количества десятичных цифр, стоящей после них десятичной точки, и следующих за ней десятичных цифр дробной части. Например, 2.0, 3.14159 и.6667 - это допустимые значения чисел с плавающей точкой, записанных в стандартном формате. В экспоненциальном формате после перечисленных элементов дополнительно указывается десятичный порядок. Порядок определяется положительным или отрицательным десятичным числом, следующим за символом Е или е. Примеры чисел в экспоненциальном формате: 6.022е23, 314159Е-05, 2е+100. В

Java числа с плавающей точкой по умолчанию рассматриваются, как значения типа double. Если вам требуется константа типа float, справа к литералу надо приписать символ F или f. Если вы любитель избыточных определений - можете добавлять к литералам типа double символ D или d. Значения используемого по умолчанию типа double хранятся в 64-битовом слове, менее точные значения типа float - в 32-битовых.

Логические литералы

У логической переменной может быть лишь два значения -

true (истина) и false (ложь). Логические значения true и false не преобразуются ни в какое числовое представление. Ключевое слово true в Java не равно 1, a false не равно 0. В Java эти значения могут присваиваться только переменным типа boolean либо использоваться в выражениях с логическими операторами.

Символьные литералы

Символы в

Java - это индексы в таблице символов UNICODE. Они представляют собой 16-битовые значения, которые можно преобразовать в целые числа и к которым можно применять операторы целочисленной арифметики, например, операторы сложения и вычитания. Символьные литералы помещаются внутри пары апострофов (" "). Все видимые символы таблицы ASCII можно прямо вставлять внутрь пары апострофов: - "a", "z", "@". Для символов, которые невозможно ввести непосредственно, предусмотрено несколько управляющих последовательностей.

Таблица 3.

2. Управляющие последовательности символов

Управляющая последовательность

Описание

Восьмеричный символ

(ddd)

Шестнадцатиричный символ

UNICODE (xxxx)

Апостроф

Обратная косая черта

Возврат каретки (carriage return)

Перевод строки (line feed, new line)

Перевод страницы

(form feed)

Горизонтальная табуляция

(tab)

Возврат на шаг

(backspace)

Строчные литералы

Строчные литералы в

Java выглядят точно также, как и во многих других языках - это произвольный текст, заключенный в пару двойных кавычек (""). Хотя строчные литералы в Java реализованы весьма своеобразно (Java создает объект для каждой строки), внешне это никак не проявляется. Примеры строчных литералов: “Hello World!”; "две\строки; \ А это в кавычках\"". Все управляющие последовательности и восьмеричные / шестнадцатиричные формы записи, которые определены для символьных литералов, работают точно так же и в строках. Строчные литералы в Java должны начинаться и заканчиваться в одной и той же строке исходного кода. В этом языке, в отличие от многих других, нет управляющей последовательности для продолжения строкового литерала на новой строке.

Операторы

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

главе 5 , их перечень приведен в таблице 3. 3.

Таблица 3.

3. Операторы языка Java

Разделители

Лишь несколько групп символов, которые могут появляться в синтаксически правильной Java-программе, все еще остались неназваннами. Это - простые разделители, которые влияют на внешний вид и функциональность программного кода.

Название

Для чего применяются

круглые скобки

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

фигурные скобки

квадратные скобки

Используются в объявлениях массивов и при доступе к отдельным элементам массива.

точка с запятой

Разделяет операторы.

Разделяет идентификаторы в объявлениях переменных, также используется для связи операторов в заголовке цикла

for.

Отделяет имена пакетов от имен подпакетов и классов, также используется для отделения имени переменной или метода от имени переменной.

Переменные

Переменная - это основной элемент хранения информации в Java-программе. Переменная характеризуется комбинацией идентификатора, типа и области действия. В зависимости от того, где вы объявили переменную, она может быть локальной, например, для кода внутри цикла for, либо это может быть переменная экземпляра класса, доступная всем методам данного класса. Локальные области действия объявляются с помощью фигурных скобок.

Объявление переменной

Основная форма объявления переменной такова:

тип идентификатор [ = значение] [, идентификатор [ = значение

7...];

Тип - это либо один из встроенных типов, то есть,

byte, short, int, long, char, float, double, boolean, либо имя класса или интерфейса. Мы подробно обсудим все эти типы в следующей главе . Ниже приведено несколько примеров объявления переменных различных типов. Обратите внимание на то, что некоторые примеры включают в себя инициализацию начального значения. Переменные, для которых начальные значения не указаны, автоматически инициализируются нулем.

В приведенном ниже примере создаются три переменные, соответствующие сторонам прямоугольного треугольника, а затем

c помощью теоремы Пифагора вычисляется длина гипотенузы, в данном случае числа 5, величины гипотенузы классического прямоугольного треугольника со сторонами 3-4-5.

class Variables {

public static void main (String args ) {

= Math.sqrt (a* a + b* b);

System.out.println ("c = "+ c);

Ваш первый шаг

Мы уже многого достигли: сначала написали небольшую программу на языке

Java и подробно рассмотрели, из чего она состоит (блоки кода, комментарии). Мы познакомились со списком ключевых слов и операторов, чье назначение будет подробно объяснено в дальнейших главах. Теперь вы в состоянии самостоятельно различать основные части любой Java-программы и готовы к тому, чтобы приступить к чтению главы 4 , в которой подробно рассматриваются простые типы данных.

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

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

Вы, наверное, не раз слышали термин «программа написана под Windows или под Linux, Unix». Дело в том, что среды программирования при переводе языка программирования в машинный код могут быть двух видов – это компиляторы и интерпретаторы. Компиляция или интерпретация программы задает способ дальнейшего выполнения программы на устройстве. Программы написанные на языке Java всегда работают на основе интерпретации, тогда как программы написанные на С/С++ – компиляции. В чем разница этих двух способов?

Компилятор после написания исходного кода в момент компиляции читает сразу весь исходный код программы и переводит в машинный код. После чего программа существует, как одно целое и может выполняться только в той операционной системе, в которой она была написана. Поэтому программы, написанные под Windows, не могут функционировать в среде Linux и наоборот. Интерпретатор осуществляет пошаговое или построчное выполнение программы каждый раз, когда она выполняется. Во время интерпретации создается не выполняемый код, а виртуальный, который впоследствии выполняется виртуальной Java машиной. Поэтому на любой платформе – Windows или Linux, Java-программы могут одинаково выполняться при наличии в системе виртуальной Java машины, которая еще носит название Системы времени выполнения.

Объектно-ориентированное программирование

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

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

В объектно-ориентированном программировании все куда проще, вернемся к примеру компьютерной системы. Допустим, вас уже не устраивает семнадцати дюймовый монитор. Вы можете спокойно его обменять на двадцати дюймовый монитор, конечно же, при наличии определенных материальных средств. Сам же процесс обмена не повлечет за собой огромных проблем, разве что драйвер придется сменить, да вытереть пыль из-под старого монитора и все. Примерно на таком принципе работы и строится объектно-ориентированное программирование, где определенная часть кода может представлять класс однородных объектов, которые можно легко модернизировать или заменять.

Объектно-ориентированное программирование очень легко и ясно отражает суть решаемой проблемы и что самое главное, дает возможность без ущерба для всей программы убирать ненужные объекты заменяя эти объекты на более новые. Соответственно общая читабельность исходного кода всей программы становится намного проще. Существенно и то, что один и тот же код можно использовать в абсолютно разных программах.

Классы

Стержнем всех программ Java являются классы, на которых основывается объектно-ориентированное программирование. Вы по сути уже знаете, что такое классы, но пока об этом не догадываетесь. В предыдущем разделе мы говорили об объектах, ставя в пример устройство всего компьютера. Каждый объект, из которых собран компьютер, является представителем своего класса. Например, класс Мониторов объединяет все мониторы вне зависимости от их типов, размеров и возможностей, а один какой-то конкретный монитор, стоящий на вашем столе и есть объект класса мониторов.

Такой подход позволяет очень легко моделировать всевозможные процессы в программировании, облегчая решение поставленных задач. Например, имеется четыре объекта четырех разных классов: монитор, системный блок, клавиатура и колонки. Чтобы воспроизвести звуковой файл необходимо при помощи клавиатуры дать команду системному блоку, само же действие по даче команды вы будете наблюдать визуально на мониторе и, в итоге, колонки воспроизведут звуковой файл. То есть любой объект является частью определенного класса и содержит в себе все имеющиеся у этого класса средства и возможности. Объектов одного класса может быть столько, сколько это необходимо для решения поставленной задачи.

Методы

Когда приводился пример воспроизведения звукового файла, то было упомянуто о даче команды или сообщения, на основе которого и выполнялись определенные действия. Задача по выполнению действий решается с помощью методов, которые имеет каждый объект. Методы – это набор команд, с помощью которых можно производить те или иные действия с объектом.

Каждый объект имеет свое назначение и призван решать определенный круг задач с помощью методов. Какой толк был бы, например, в объекте Клавиатура, если нельзя было нажимать на клавиши, получая при этом возможность отдавать команды? Объект Клавиатура имеет некое количество клавиш, с помощью которых пользователь приобретает контроль над устройством ввода и может отдавать необходимые команды. Обработка таких команд, происходит с помощью методов.

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

Введение

Данная работа посвящена одному из самых перспективных на сегодняшний день языков программирования - языку «Java». Технологию по имени «Java» можно без преувеличения назвать революционной в индустрии разработки программного обеспечения.

Сортировка может быть реализована и на других языках программирования, таких как PHP, C++ и т.д. Просто на языке Java намного выгоднее. Подробности рассматривается ниже. Новизна состоит в том, что ранее не была реализована программа сортировки на данном языке и в данной интерпретации.

Для осуществления задачи был предложен алгоритм написания программы. Далее этот алгоритм был реализован на языке Java.

Описание языка программирования Java

Общие характеристики Java

Для написания программы сортировщика был выбран язык Java. Java - объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Изначально новый язык программирования назывался Oak (James Gosling) и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения.

Язык программирования Java не похож ни на один из существующих ране. Он разработан для того, чтобы облегчить работу на компьютерах в WWW посредством браузеров. В настоящее время на каждом компьютере имеется браузер. В свою очередь, каждый браузер поддерживает Java. Это означает, что вы можете просматривать документы, хранящиеся в разных точках земного шара, и, щелкнув на ссылке, активизировать Java-программу, которая будет передана через сеть и запущена на вашем компьютере.

Одно из главных преимуществ языка Java - его независимость от платформы и типа компьютера, на которой выполняются программы. Таким образом, один и тот же код можно запускать под управлением операционных систем Windows, Linux, FreeBSD, Solaris, Apple Mac и др. Это становится очень важным, когда программы загружаются посредством глобальной сети интернет и используются на различных платформах. Язык программирования Java может работать не только со статичными текстами и графикой, но и различными динамическими объектами.

Другим, не менее важным преимуществом Java, является большая схожесть с языком программирования C++. Поэтому тем программистам, которые знакомы с синтаксисом С и С++ будет просто освоить Java.

Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем С++. Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел.

Важно и то, что разрабатывать на Java программы, которые не содержат ошибок, значительно легче, чем на С++.

Все дело в том, что разработчиками языка Java из компании Sun был проведен фундаментальный анализ программ на языке С++. Анализировались "узкие места" исходного кода, которые и приводят к появлению трудновыявимых ошибок. Поэтому было принято решение проектировать язык Java с учетом возможности создавать программы, в которых были бы скрыты наиболее распространенные ошибки.

Для этого было сделано следующее:

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

К примеру, память в Java освобождается автоматически с помощью механизма сбора мусора. Получается, что программист застрахован от ошибок, которые возникают от неправильного использования памяти.

введение истинных массивов и запрещение указателей.

Теперь программисты не могут стереть данные из памяти по причине неправильного использования указателей.

была исключена возможность перепутать оператор присваивания с оператором сравнения на равенство. Как правило, проблема со знаком "=" очень часто приводит в С и С++ к логическим ошибкам, которые не так просто обнаружить. Особенно в крупных программах.

полностью исключено множественное наследование. Оно было заменено новым понятием - интерфейсом, идея которого была позаимствована из языка Objective C.

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

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

Варианты изучения

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

  1. Специализированные курсы. Их стоимость намного меньше, чем уроки персонального репетитора. Стоит заметить, что множество работодателей положительно реагируют на наличие разнообразных сертификатов о завершении обучения в компьютерных академиях. Обратите внимание на курсы всемирно популярных компаний «Майкрософт» и «Циско».
  2. Удаленные бесплатные курсы. В интернете очень большое количество сервисов, с помощью которых вы сможете просмотреть курсы лекций Оксфорда, Гарварда и других именитых учебных заведений мира. Также существуют специальные платформы для тренировки практических навыков программирования. Более подробно об удаленном обучении и полезных интернет-сервисах читайте далее в статье.
  3. Самообучение. С чего начать изучение программирования с нуля, если вы не планируете записываться на курсы и тратить деньги? В таком случае проще всего заняться самообразованием. Начать изучение следует с прочтения основ, не углубляйтесь в теорию, сразу приступайте к практике, ведь только в процессе создания программы вы будете приобретать необходимые навыки.

После выбора подходящего вам варианта обучения следует определиться с предметной областью, ведь программирование имеет достаточно широкий спектр разных ответвлений.

Как выбрать подходящее направление?

Напрямую зависит от типа ПО, которые вы будете создавать в будущем:

Если наиболее важную роль для вас играет размер заработной платы, обратите свое внимание на рынок вакансий. Сейчас самыми востребованными считаются разработчики, которые специализируются на языках Java, C#, ASP.NET, C++.

Языки низкого и высокого уровней. Разница и области применения

Считается, что все языки программирования делятся на высокоуровневые и низкоуровневые. Код низкого уровня более легко обрабатывать компьютеру, но его написание занимает много времени и требует больше знаний в предметной области. Такие языки (например, ассемблер) используются для написания ПО для цифровых микросхем и микроконтроллеров. Они не очень удобны для того, чтобы изучать программирование с нуля. С чего начать написание первых программ, подскажут приведенные далее в статье полезные сервисы и литература от всемирно известных авторов.

Высокоуровневые языки намного легче в применении, ведь они используют встроенные библиотеки для упрощения и визуализации кода. Большинство современного ПО пишется с помощью языков высокого уровня.

Программирование с нуля: с чего начать приложений?

Процесс создания мобильных программ позволяет программистам работать с новейшими инструментами и, как следствие, заработать приличное количество денег благодаря монетизации. Для начала следует выбрать площадку, на которой вы будете работать:

  1. Google Play. Магазин приложений для пользователей операционной системы "Андроид". Данная ОС имеет наибольшую долю пользователей на рынке. Для разработки приложений и игр используются языки java и C/C++. Наибольшей популярностью пользуются приложения-мессенджеры, клиенты социальных сетей, облачные хранилища, игры.
  2. Windows Mobile Store. Данный магазин стремительно набирает популярность вместе со смартфонами от компании «Майкрософт». В странах СНГ большинство пользователей предпочитают планшеты на платформе Windows Phone. Программирование приложений для такого магазина помогает заработать больше денег на монетизации, ведь, в отличие от "Андроида", практически все программы в магазине Windows распространяются на платной основе.
  3. App Store. Еще одна выгодная площадка для разработки (язык - Objective-C). Процесс создания программ для устройств компании Apple требует предустановленной среды разработки под названием Xcode. Следующим шагом нужно изучить Objective-C программирование с нуля. С чего начать написание кода, подскажет книга Дэвида Марка «Изучение С для Mac. Издание второе».

Язык Java

Большинство профессиональных разработчиков рекомендуют начинать познание программирования с языка Java. Он является простым в изучении и в то же время востребованным на рынке. Воспользуйтесь нижеприведёнными советами, если вы решили изучать программирование с нуля. С чего начать Java-разработку?

Java - объектно-ориентированный язык программирования высокого уровня, который нужен для разработки большинства современных веб-приложений и игр. В процессе компилирования (превращении написанного кода в язык, понятный для устройства) код превращается в последовательность байтов, поэтому программу легко протестировать на любой виртуальной машине Java.

Программирование с нуля. С чего начать Java- и Web-кодинг?

Язык Java широко используется в веб-разработке. Прежде чем начать полноценный процесс программирования, следует изучить Java, PHP, MySQL, HTML, CSS. Более подробная расшифровка этих понятий приведена ниже:

  1. Java - используется в написании утилит для сайтов и прописания логики функционала веб-страниц.
  2. PHP - язык для создания персональных страниц сайтов. Имеет скриптовую структуру. Лидирующий язык в создании популярных сегодня динамических веб-сайтов. PHP нужен, чтобы понять скрипты и программирование с нуля. С чего начать? C прочтения книги Джоша Локхата «PHP: Правильный путь».
  3. MySQL - система для руководства азами данных. Широко применяется в создании веб-сайтов, которые требуют хранения больших объемов сгруппированных данных.
  4. HTML - не является языком программирования. Это язык разметки, использующийся для написания базы веб-страницы (построения блоков, распределение текста и абзацев и так далее).
  5. CSS - каскадная таблица стилей. Используется только совместно с HTML для придания языку разметки стиля и внешнего вида.

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

Web-программирование. Актуальность и особенности

Тема Web-программирования сегодня особенно актуальна. Как было указано выше, для начала разработки веб-элементов нужно иметь довольно большой объем знаний о языках разметки, создании скриптов, логики и стилей.

Сейчас никого не удивишь сайтами, которые созданы только с помощью HTML и CSS, поэтому востребованными стали веб-разработчики, которые способны сделать сайт визуально красивым, а также наполнить его всем необходимым для пользователей функционалом.

Такой вид разработки требует создания двух типов одной и той же программы: серверной и клиентской части. Программист должен понимать принцип работы так называемых сокетов - пакетов данных, которые позволяют передавать нужные потоки информации по сети между сервером и клиентом.

Создание приложений под операционную систему Windows

Для разработки таких программ вам понадобятся познания языка C#. Бесплатный сервис от компании «Майкрософт» под названием Virtual Academy позволит вам выучить все особенности данного языка и попрактиковаться в написании простых приложений.

Согласно новой политике «Майкрософта», все приложения выкладываются в магазин ПО, таким образом можно получить доступ к монетизации своего проекта.

Семейство языков С (С, С++, С#). Особенности

Программирование с нуля - с чего начать выбор языка? Ответ на этот вопрос можно получить, более детально углубившись в разновидности технологий создания приложений. Следует принимать во внимание и актуальность того или иного языка.

Языки С, С++, С# имеют одну общую черту - наличие функции ООП (объектно-ориентированного программирования). Такая технология позволяет значительно упростить процесс написания программного кода. Каждый программный объект описывается в определенном классе и имеет свои параметры, методы и свойства. Таким образом, программист может не прописывать каждый раз огромные куски кода, если один и тот же объект нужно использовать несколько раз.

Полезные интернет-сервисы для изучения основных принципов программирования и структуры кода любого приложения

На первом этапе обучения практически любой веб-сервис предложит вам попробовать свои возможности, используя «Паскаль» - наиболее простой из языков высокого уровня. Он используется в обучающих целях, его преподают в школах и техникумах, дабы студенты смогли понять программирование с нуля. С чего начать «Паскаль»-кодинг? Прежде всего, нужно скачать на ваш ПК среду разработки. Это небольшой исполняемый файл, в котором и предстоит писать программный код. Используйте TurboPascal, ведь это наиболее популярная среда изучения данного языка программирования.

HourOfCode - веб-сервис от компании «Майкрософт». Он предназначен для того, чтобы наглядно показать ученикам, что такое цикл, переменная, класс, условия. Процесс обучения похож на игру.

CodeAcademy - мощный ресурс для изучения практически любой технологии кодинга. Уделяя всего по часу в день, вы и не заметите, как научитесь программировать и создавать свои собственные проекты.

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

Получение начального опыта. Фриланс

После изучения основных принципов выбранного вами языка можете смело приступать к своим первым проектам. Начните заниматься фрилансом, ведь именно таким образом вы наполните свое портфолио и получите опыт общения с заказчиками. Такие навыки пригодятся в будущем, если захотите устроится в компанию на официальную должность разработчика программного обеспечения.

Итог

Программирование с нуля: с чего начать? Для чайников профессора всемирно известных университетов советуют поупражняться с базовыми структурами, которые составляют основу любого языка программирования. Запишитесь на специализированные курсы или займитесь самообучением, прослушивая лекции в режиме онлайн.