Когда мы рассматриваем java-программу, она может быть определена как совокупность объектов, которые взаимодействуют с помощью вызова методов друг друга. Теперь позвольте нам кратко разобраться в синтаксисе языка Java, что же класс, объект, методы и переменные экземпляра означают.
Объект — объекты имеют состояние и поведение. Например: собака может иметь состояние — цвет, имя, а также и поведение — кивать, бежать, лаить, кушать. Объект является экземпляром класса.
Класс — может быть определен как шаблон, который описывает поведение объекта.
Метод — является в основном поведением. Класс может содержать несколько методов. Именно в методах логически записанные данные манипулируют и выполняют все действия.
Переменные экземпляра — каждый объект имеет свой уникальный набор переменных экземпляра. Состояние объекта создается значениями, присвоенными этим переменным экземпляра.
Первая программа и знакомство с синтаксисом языка
Давайте рассмотрим простой код, в результате которого будут выведены на экран слова «Привет мир!», а за одно и синтаксис Java.
Пишем первое приложение на Java
public class MyFirstJavaProgram < public static void main(String []args) < /* Это первая моя java-программа. В результате выполнения на экран будет выведено ‘Привет мир!’ */ System.out.println(«Привет мир!»); // Вывод сообщения на экран >>
Рассмотрим, как сохранить файл, чтобы скомпилировать и запустить программу. Пожалуйста, следуйте инструкциям ниже:
- Откройте блокнот и добавьте код, указанный выше.
- Сохраните файл как «MyFirstJavaProgram.java». Ниже мы рассмотрим синтаксис Java и узнаем почему именно под таким именем.
- Откройте окно командной строки и перейдите в каталог, где был сохранен файл. Предположим, что это «C:».
- Введите «Javac MyFirstJavaProgram.java» и нажмите ввод, чтобы скомпилировать код. Если нет ошибки в коде, командная строка приведет Вас к следующей строке: (Assumption: The path variable is set).
- Теперь введите «java MyFirstJavaProgram» для запуска программы.
- Теперь Вы увидите «Привет Мир!», напечатанный в окне.
C:> javac MyFirstJavaProgram.java C:> java MyFirstJavaProgram Привет мир!
Основы синтаксиса языка Java
Очень важно знать и помнить следующие моменты в синтаксисе:
- Чувствительность к регистру — Java чувствителен к регистру, то есть идентификатор Hello и hello имеют разный смысл.
- Название классов — для всех первая буква должна быть в верхнем регистре.
- Если несколько слов используются, чтобы сформировать название класса, первая буква каждого внутреннего слова должна быть в верхнем регистре, например, «MyJavaClass».
- Название методов — в синтаксисе Java все имена методов должны начинаться с буквы нижнего регистра.
- Если несколько слов используются, чтобы сформировать имя метода, то первая буква каждого внутреннего слова должна быть в верхнем регистре, например, «public void myMethodName()».
- Название файла программы — наименование файла программы должно точно совпадать с именем класса.
- При сохранении файла, Вы должны сохранить его, используя имя класса (помните о чувствительности к регистру) и добавить «.java» в конце имени (если имена не совпадают, Ваша программа не будет компилироваться), например, «MyJavaProgram» — это название класса, тогда файл должен быть сохранен как «MyJavaProgram.java».
- public static void main(String args[]) — обработка программы начинается с метода main(), который является обязательной частью каждой программы.
Идентификаторы в Java
Идентификаторы — имена, используемые для классов, переменных и методов. Все компоненты Java требуют имена.
Программирование на Java: создание игры Змейка. Часть 1.
Существует несколько правил в синтаксисе языка Java, которые необходимо помнить об идентификаторе. Они следующие:
- Каждый идентификатор должен начинаться с «A» до «Z» или «a» до «z», «$» или «_».
- После первого символа может иметь любую комбинацию символов.
- Ключевое слово не может быть использовано в качестве идентификатора.
- Самое главное — идентификатор в Java чувствителен к регистру.
- Пример правильного написания: age, $salary, _value, __1_value.
- Пример неправильного написания: 123abc, -salary.
Перечисления
Перечисления были введены в Java 5.0. Они ограничивают переменную, чтобы выбрать только одно из нескольких предопределенных значений. Значения в этом перечисляемом списке называются перечисления.
С использованием перечисления в Java можно уменьшить количество ошибок в коде.
Например, если рассматривать заявки на свежий сок в магазине, можно было бы ограничить размер упаковки сока как для малых, средних и больших. Это позволяет с помощью использования в Java перечисления сделать так, чтобы никто не заказал другой любой размер упаковки, кроме как малый, средний или большой.
Пример кода перечисления в Java
class FreshJuice < enum FreshJuiceSize< SMALL, MEDIUM, LARGE >FreshJuiceSize size; > public class FreshJuiceTest < public static void main(String args[])< FreshJuice juice = new FreshJuice(); juice.size = FreshJuice.FreshJuiceSize.MEDIUM; System.out.println(«Размер: » + juice.size); >>
Полученный результат выше приведенного примера:
Размер: MEDIUM
Примечание: в Java перечисления могут быть объявлены как самостоятельно, так и внутри класса. Методы, переменные, конструкторы могут быть определены также внутри перечисления.
Типы переменных
В Java мы увидим следующие существующие типы:
- переменные экземпляра (instance variables);
- переменные класса (class variables);
- локальные переменные (local variables);
- параметры (parameters);
Переменные экземпляра. Пусть у нас есть несколько объектов одного класса Automobile(). Помимо общих параметров у них есть уникальные, скажем, максимальная скорость maxSpeed(). Их можно инициировать в теле программы, а можно хранить в нестатических полях класса (объявленных без добавления слова static). Таким образом, каждый экземпляр будет обладать индивидуальным параметром, не зависящим от скоростей других объектов.
public class Automobile< public String name; private double maxSpeed; public Automobile (String autoName)< name = autoName; >>
Переменная класса, или статическая переменная java, напротив, объявляется исключительно с применением слова static. В данном случае её значение будет одинаковым для всех экземпляров. В случае того же автомобиля, введём параметр gearsNum – число передач. Для всех экземпляров оно будет равно 6.
Необязательный модификатор final позволяет присвоить значение переменной только один раз. За соблюдением этого следит компилятор.
public class Automobile
Локальные переменные и методы в java неизменно связаны. В последних часто фигурируют вспомогательные параметры, которые в дальнейшем коде не нужны. Для объявления локальной переменной нет особой формы инициализации, границы её действия зависят лишь от места объявления. В данном случае — в фигурных скобках внутри метода.
При выходе из него переменная будет уничтожена, поэтому обратиться к ней будет уже нельзя.
Крайний случай локальных переменных — это параметры. В частности, классический пример «Hello, World!»:
class HelloWorld < public static void main(String[] args) < System.out.println(«Hello World!»); >>
Здесь сразу два параметра. Первая — собственно, «Hello, World!», вторая — аргумент строки args в main.
Модификаторы
Модификаторы доступа — это ключевые слова (зарезервированные идентификаторы), которые определяют доступность класса или его членов. В языке Java предусмотрены следующие модификаторы доступа:
- public — общедоступный;
- protected — защищенный;
- private — закрытый;
- default — пакетный.
- Если метод или поле имеют модификатор public, то они доступны любому классу и пакету.
- Если метод или поле имеют модификатор доступа protected, то они, прежде всего, доступны самому классу и его наследникам. Кроме того, доступ к этим членам класса могут получить их собратья по пакету.
- Если метод или поле имеют модификатор доступа private, то они доступны только в рамках класса. Такие члены класса не наследуются, поэтому их невозомжно заместить в подклассах. Помните об этом.
- Если метод или поле имеют модификатор доступа по умолчанию, то они доступны только в рамках пакета.
Для членов класса (полей и методов) разрешено использование всех указанных выше модификаторов.
Элементы помеченные как public имеют наибольшую видимость и доступны другим классам отовсюду
public class MyClass < public String myField; public void myMethod()< >>
Следует отметить, что поля, редко обозначают как общедоступные, чаще как закрытые и доступ к ним осуществляется в этом случае через public-методы
Protected-члены доступны в классе в котором они определены и в подклассах. Так же данные члены доступны другим классам, находящимся в этом же пакете
public class MyClass < protected String myField; protected void myMethod()< >>
Private-члены могут использоваться только тем классом в котором они определены, это наиболее закрытая область видимости
public class MyClass < private String myField; private void myMethod()< >>
Отдельно следует сказать о пакетном уровне доступа (default). Отметим, что ключевое слово default в отличие от остальных модификаторов не пишется. Элемент считается с пакетным уровнем доступа, если не указан ни один из модификаторов доступа
public class MyClass < String myField; void myMethod()< >>
В данном случае элемент доступен классу в котором объявлен и другим классам в том же пакете, но не доступен классам, в том числе и наследникам, находящимся в других пакетах. Таким образом данный уровень видимости является более строгим чем protected.
Для классов и интерфейсов верхнего уровня, т.е. не вложенных (внутренних), применимы только общедоступный (public) и пакетный (default) модификаторы. Если класс объявлен как public, то к нему можно получить доступ отовсюду.
Если же модификатор доступа не указан, то класс имеет пакетную область видимости и доступ к нему имеют только классы из того же пакета
class MyClass
Отметим, что внутренние классы как статические так и нестатические могут иметь любой модификатор доступа (public, protected, private) или не иметь ни одного (пакетный доступ).
Массив
Массив — это конечная последовательность упорядоченных элементов одного типа, доступ к каждому элементу в которой осуществляется по его индексу.
Размер или длина массива — это общее количество элементов в массиве. Размер массива задаётся при создании массива и не может быть изменён в дальнейшем, т. е. нельзя убрать элементы из массива или добавить их туда, но можно в существующие элементы присвоить новые значения.
Индекс начального элемента — 0, следующего за ним — 1 и т. д. Индекс последнего элемента в массиве — на единицу меньше, чем размер массива.
В Java массивы являются объектами. Это значит, что имя, которое даётся каждому массиву, лишь указывает на адрес какого-то фрагмента данных в памяти. Кроме адреса в этой переменной ничего не хранится. Индекс массива, фактически, указывает на то, насколько надо отступить от начального элемента массива в памяти, чтоб добраться до нужного элемента.
Чтобы создать массив надо объявить для него подходящее имя, а затем с этим именем связать нужный фрагмент памяти, где и будут друг за другом храниться значения элементов массива.
Возможные следующие варианты объявления массива:
тип[] имя; тип имя[];
Где тип — это тип элементов массива, а имя — уникальный (незанятый другими переменными или объектами в этой части программы) идентификатор, начинающийся с буквы.
int[] a; double[] ar1; double ar2[];
В примере мы объявили имена для трёх массивов. С первом именем a сможет быть далее связан массив из элементов типа int, а с именами ar1 и ar2 далее смогут быть связаны массивы из вещественных чисел (типа double). Пока мы не создали массивы, а только подготовили имена для них.
Теперь создать (или как ещё говорят инициализировать) массивы можно следующим образом:
a = new int[10]; // массив из 10 элементов типа int int n = 5; ar1 = new double[n]; // Массив из 5 элементов double ar2 = ; // Массив из 6 элементов типа double
Примеры основных операций с массивами
1. Объявление массива String[] aArray = new String[5];
String[] bArray = ; String[] cArray = new String[];
2. Вывод массива в Java int[] intArray = < 1, 2, 3, 4, 5 >;
3. Создание ArrayList из массива String[] stringArray = < «a», «b», «c», «d», «e» >;
ArrayList arrayList = new ArrayList(Arrays.asList(stringArray)); System.out.println(arrayList); // [a, b, c, d, e]
4. Проверка массива на наличие конкретного значения String[] stringArray = < «a», «b», «c», «d», «e» >;
boolean b = Arrays.asList(stringArray).contains(«a»); System.out.println(b); // true
5. Объединение двух массивов int[] intArray = < 1, 2, 3, 4, 5 >;
int[] intArray2 = < 6, 7, 8, 9, 10 >; // Apache Commons Lang library int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);
6. Объявление массива в одной строке method(new String[]);
7. Объединение элементов массива в строку // containing the provided list of elements
// Apache common lang String j = StringUtils.join(new String[] < «a», «b», «c» >, «, «); System.out.println(j); // a, b, c
8. Преобразование ArrayList в массив String[] stringArray = < «a», «b», «c», «d», «e» >;
ArrayList arrayList = new ArrayList(Arrays.asList(stringArray)); String[] stringArr = new String[arrayList.size()]; arrayList.toArray(stringArr); for (String s : stringArr) System.out.println(s);
9. Преобразование массива во множество (Set) Set set = new HashSet(Arrays.asList(stringArray));
System.out.println(set); //[d, e, b, c, a]
10. Возврат массива с элементами в обратном порядке int[] intArray = < 1, 2, 3, 4, 5 >;
ArrayUtils.reverse(intArray); System.out.println(Arrays.toString(intArray)); //[5, 4, 3, 2, 1]
11. Удаление элемента из массива int[] intArray = < 1, 2, 3, 4, 5 >;
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array System.out.println(Arrays.toString(removed));
Язык Java поддерживает однострочные и многострочные комментарии, они очень похожи на используемые в С и С++. Все символы недоступны внутри любых комментариев и игнорируются компилятором.
Пример комментария
public class MyFirstJavaProgram < /* Это первая моя программа. * В результате выполнения на экран будет выведено ‘Привет мир’ * Это многострочный комментарий, пример написания. */ public static void main(String []args)< // Однострочный комментарий. /* Тоже однострочный комментарий. */ System.out.println(«Привет мир»); >>
Ключевые слова в Java
Всего зарезервировано 50 ключевых слов в Java. Ниже в таблице приведен список зарезервированных ключевых слов.
| Список ключевых слов | |||
| abstract | assert | boolean | break |
| byte | case | catch | char |
| class | const | continue | default |
| do | double | else | enum |
| extends | final | finally | float |
| for | goto | if | implements |
| import | instanceof | int | interface |
| long | native | new | package |
| private | protected | public | return |
| short | static | strictfp | super |
| switch | synchronized | this | throw |
| throws | transient | try | void |
| volatile | while | ||
Важно! Ключевое слово не может быть употреблено в качестве константы или переменной, или любых других имен идентификаторов.
Пустая строка
Пустая строка — строки в Java, содержащие только пробелы, возможно с комментарием. Java полностью игнорирует строку имеющую пробелы и комментарии.
Наследование
Наследование — концепция, которая позволяет повторно воспользоваться полями и методами существующего класса без необходимости переписывать заново код. В этом случае существующий класс называется суперкласс, а производный называется подкласс.
Интерфейс
Интерфейс в Java может быть определен как договор между объектами о том, как общаться друг с другом. Он играет жизненно важную роль, когда речь заходит о понятие наследования.
Интерфейс определяет методы, полученного класса (подкласса), и как их следует использовать. Однако осуществление методов полностью зависит от подкласса.
Источник: codexp.ru
gusenov/examples-java
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Источник: github.com
Простая программа на Java

Давайте начнём с простой Java программы, которая показывает в консоли сообщение «Welcome to Java!». (Слово «консоль» – это старый компьютерный термин, который относится к устройству ввода и отображения текста на компьютере. Консольный вход означает получение ввода с клавиатуры, а выход консоли – отображение вывода на мониторе. В NetBeans вывод показывается в специальном окне:

Вне IDE консольные программы (т.е. без графического интерфейса) запускают в командной строке. О командной строке в следующем разделе «Создание, компиляция и выполнения Java программ».
Исходный код программы
public class Welcome < public static void main(String[] args) < // Показать в консоли сообщение Welcome to Java! System.out.println(«Welcome to Java!»); >>
Строка 1 определяет класс. Каждая Java программа должна иметь по крайней мере один класс. Каждый класс имеет имя.
Принято, что имена классов начинаются с заглавной буквы. В этом примере класс назван Welcome.
Строка 2 определяет метод main. Программа начинает выполнение с метода main. Метод main – это точка входа, где программа начинает выполнение.
Метод – это конструкция, которая содержит инструкции. Метод main в этой программе содержит инструкцию System.out.println. Инструкция отображает в консоли строку «Welcome to Java!». Строка (String) – это термин в программировании, означающий последовательность символов. Строка должна быть заключена в двойные кавычки.
Каждая инструкция в Java заканчивается точкой с запятой ( ; ), которая служит разделителем инструкций.
Зарезервированные слова, или как их ещё называют ключевые слова, имеют определённое значение для компилятора, и они не могут использоваться для других целей в программе. Например, когда компилятор видит слово class, он понимает, что слово после class – это имя класса. Другими зарезервированными словами в этой программе являются public, static и void.
Строка 3 – это комментарий, которая документирует действия программы и её устройство. Комментарии помогают программистам общаться и понимать программу. Они не являются программными инструкциями и, таким образом, игнорируются компилятором. В Java комментариям предшествуют два слеша на строке (//), которая так и называется – строка комментария.
Комментарии могут располагаться между /* и */ на одной или нескольких строках, эти строки называются блоком комментариев или параграфом комментариев. Когда компилятор видит //, то он на этой строке игнорирует весь текст после //. Когда видит /*, он сканирует следующий */ и игнорирует любой текст между /* и */.
Несколько примеров комментариев:
// Эта программа показывает Welcome to Java! /* Эта программа показывает Welcome to Java! */ /* Эта программа показывает Welcome to Java! */
Пара фигурных скобок в программе формирует блок, который группирует компоненты программы. В Java каждый блок начинается с открывающей фигурной скобки ( <)и заканчивается закрывающей фигурной скобкой. (>). Каждый класс имеет блок класса, который группирует данные и методы класса. Похожим образом каждый метод имеет блок метода, который группирует инструкции в методе. Блоки могут быть вложенными, это означает, что один блок может быть помещён внутри другого, как показано на следующем коде:

Подсказка: любой открывающей фигурной скобке должна соответствовать закрывающая. Каждый раз, когда вы напечатали открывающую фигурную скобку, сразу печатайте закрывающую, для предотвращения ошибок, вызванных отсутствие скобки. Большинство IDE для языка Java автоматически вставляют закрывающую фигурную скобку для каждой открывающей.
Внимание: исходный код программ Java чувствителен к регистру. Будет неправильным, например, заменить в программе main на Main.
Вы познакомились с несколькими специальными символами в программе (например, , //, ;). Они используются практически в каждой программе. Таблица обобщает их использование:
| <> | Открывающая и закрывающая фигурная скобка | Обозначает блок для окружения инструкций. |
| () | Открывающая и закрывающая круглая скобка | Используется с методами. |
| [] | Открывающая и закрывающая квадратная скобка | Обозначает массив. |
| // | Двойной слэш | Предшествует комментарию. |
| » » | Открывающая и закрывающая кавычки | Окружает строку (т.е. последовательность символов). |
| ; | Точка с запятой | Обозначает конец инструкции. |
Самыми распространёнными ошибками, которые вы будете делать пока учите программировать, это синтаксические ошибки. Как любой язык программирования, Java имеет свой собственный синтаксис, и вам нужно писать код, который удовлетворяет правилам синтаксиса. Если ваша программа нарушает правило, например, если отсутствует точка с запятой, отсутствует фигурная скобка, отсутствует кавычка или неправильно написано слово – компилятор Java сообщит об ошибках синтаксиса.
Примечание: возможно вам интересно, почему метод main так определяется и почему для отображения сообщения в консоли используется System.out.println(…). На данный момент просто примите это как данность. В последующих главах на все ваши вопросы будут даны ответы.
Программа в начале выводит одно сообщение. Теперь, когда вы вникли в программу, легко её распространить для отображения большего числа сообщений. Например, вы можете перезаписать программу для отображения трёх сообщений:
public class WelcomeWithThreeMessages < public static void main(String[] args) < System.out.println(«Программировать весело!»); System.out.println(«Сначала основы»); System.out.println(«Problem Driven»); >>


В дальнейшем вы можете выполнять математические расчёты и отображать результаты в консоли. Пример вычисления
public class ComputeExpression < public static void main(String[] args) < System.out.println((10.5 + 2 * 3) / (45 — 3.5)); >>

Для умножения в Java используется *. Как вы можете увидеть, это простой процесс для преобразования арифметический выражений в Java инструкции. Подробнее это будет рассмотрено в следующей главе.
- Что такое ключевое слово? Перечислите несколько ключевых слов Java.
- Чувствительна ли Java к регистру? Какой регистр ключевых слов Java?
- Что такое комментарий? Игнорируется ли комментарий компилятор? Как обозначить строку комментария и параграф комментариев?
- Какая инструкцияпоказывает строку в консоли?
- Покажите вывод следующего кода:
public class Test < public static void main(String[] args) < System.out.println(«3.5 * 4 / 2 – 2.5 равно «); System.out.println(3.5 * 4 / 2 — 2.5); >>
Источник: java9.ru