Из чего состоит java программа

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

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

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

Модуль 1. Урок 3. Из чего состоит Java.

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

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

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

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

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

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

ВВЕДЕНИЕ В ОБЪЕКТЫ ИЗ ЧЕГО СОСТОИТ ЛЮБАЯ JAVA ПРОГРАММА

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

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

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

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

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

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

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

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

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

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

Синтаксис и семантика языка Java

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

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

Класс Телефон
Метод Включить()
// операции по включению телефона
>
Метод Выключить()
// операции по выключению телефона
>
>

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

Читайте также:
Во сколько программа спокойной ночи малыши

А теперь давайте запишем тот же самый класс только уже на языке Java.

class Telefon
void on()
// тело метода on()
>
void off()
// тело метода off()
>
>

Ключевое слово class в языке Java объявляет класс, далее идет название самого класса. В нашем случае это Telefon. Сразу пару слов касательно регистра записи. Почти во всех языках программирования важно сохранять запись названий в том регистре, в котором она была сделана. Если вы написали Telefon, то уже такое написание как telefon или TELefoN выдаст ошибку при компиляции.

Как написали первоначально, так и надо писать дальше.

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

В теле класса Telefon имеются два метода: on() – включающий телефон и метод off() – выключающий телефон. Оба метода имеют свои тела и в них по идее должен быть какой-то исходный код, описывающий необходимые действия обоих методов. Для нас сейчас неважно, как происходит реализация этих методов, главное – это синтаксис языка Java.

Оба метода имеют круглые скобки on(), внутри которых могут быть записаны параметры, например on(int time) или on(int time, int time1). С помощью параметров происходит своего рода связь методов с внешним миром. Говорят, что метод on(int time) принимает параметр time. Для чего это нужно? Например, вы хотите, чтобы телефон включился в определенное время.

Тогда целочисленное значение в параметре time будет передано в тело метода и на основе полученных данных произойдет включение телефона. Если скобки пусты, то метод не принимает никаких параметров.

Комментарии

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

Комментарии в Java могут быть трех видов, это:

Комментарии, записанные с помощь оператора // должны располагаться в одной строке:

// Одна строка
. Ошибка! На вторую строку переносить нельзя!
// Первая строка
// Вторая строка
// …
// Последняя строка

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

Типы данных Java

Чтобы задать произвольное значение, в Java существуют типы данных. В классе Telefon мы создали два метода. Оба метода не имели параметров, но когда приводился пример метода on(int time) с параметром time, говорилось о передаче значения в метод. Данное значение указывало на время, с помощью которого якобы должен включиться телефон. Спецификатор int как раз и определяет тип значения time.

В Java 2 МЕ шесть типов данных.

• byte – маленькое целочисленное значение от –128 до 128;
• short – короткое целое значение в диапазоне от –32768 до 32767;
• int – содержит любое целочисленное значение от –2147483648 до 2147483647;
• long – очень большое целочисленное значение, от –922337203685475808 до 9223372036854775807;
• char – это символьная константа в формате Unicode. Диапазон данного формата от 0 до 65536, что равно 256 символам. Любой символ этого типа должен записываться в одинарных кавычках, например: ‘G’;
• boolean – логический тип, имеет всего два значения: false – ложь и true – истина. Этот тип часто используется в циклах о которых чуть позже. Смысл очень прост – если у вас в кармане есть деньги, предположительно это true, а если нет то false. Таким образом, если деньги имеются – идем в магазин за хлебом или пивом (нужное подчеркнуть), если нет денег – остаемся дома. То есть это такая логическая величина, которая способствует выбору дальнейших действий вашей программы.

Чтобы объявить какое-то необходимое значение используется запись:

int time;
long BigTime;
char word;

Оператор точка с запятой необходим после записей и ставится в конце строки. Можно совместить несколько одинаковых по типу объявлений через запятую:

mt time, time1, time2;

Теперь давайте, усовершенствуем наш класс Telefon, добавив в него несколько значений. Методы on() и off() нам больше не нужны, добавим новые методы, которые действительно могут решать определенные задачи.

class Telefon
//S – площадь дисплея
//w – ширина дисплея
//h – высота дисплея
int w, h, S;
//метод, вычисляющий площадь дисплея
vord Area()
S = w*h;
>
>

Итак, мы имеем три переменные S, w и h, отвечающие, соответственно, за площадь, ширину и высоту дисплея в пикселях. Метод Area() вычисляет площадь экрана телефона в пикселях. Операция бесполезная, но очень показательная и простая в понимании. Тело метода Area() обрело себя и имеет вид S = w*h. В этом методе мы просто перемножаем ширину на высоту и присваиваем или как еще говорят, сохраняем результат в переменной S. Эта переменная будет содержать значения площади дисплея данного телефона.

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

Арифметические операторы

Все арифметические операторы очень просты и аналогичны операторам умножения «*», деления «/», сложения «+» и вычитания «–» используемые в математике. Существует оператор деления по модулю «%» и слегка запутанная на первый взгляд ситуация с оператором равно «=». Оператор равно в языках программирования называется оператором присваивания:

Здесь вы переменной х присваиваете значение 3. А оператор «равно» в языках программирования соответствует записи двух подряд операторов «равно»: «==». Рассмотрим на примере, что могут делать различные арифметические операторы.

int x, y, z;
x = 5;
y = 3;
z = 0;
z = x + y;

В данном случае z будет иметь значение уже суммы x и y, то есть 8.

Переменная х имела значение 5, но после такой записи предыдущее значение теряется и записывается произведение z*x (8*5), что равно 40. Теперь, если мы продолжим дальше наш код, то переменные будут иметь такой вид:

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

Операторы декремента «––» и инкремента «++» весьма специфичны, но очень просты. В программировании часто встречаются моменты, когда требуется увеличить или уменьшить значение на единицу. Часто это встречается в циклах. Операция инкремента увеличивает переменную на единицу.

int x = 5;
x++;
// Здесь х уже равен 6

Операция декремента уменьшает переменную на единицу.

int x = 5;
x—;
// х равен 4

Операции инкремента и декремента могут быть пост и префиксными:

int x = 5;
int y = 0;
y = x++;

В последней строке кода сначала значение x присваивается y, это значение 5, и только потом переменная х увеличивается на единицу. Получается что:

Префиксный инкремент имеет вид:

int x = 3;
int y = 0;
y = ++x;

И в этом случае, сначала переменная х увеличивается на один, а потом присваивает уже увеличенное значение y.

Операторы отношения

Операторы отношения позволяют проверить равенство обеих частей выражения. Имеется оператор равенства «==», операторы меньше «», меньше или равно «=», а так же оператор отрицания «!=».
9 == 10;

Это выражение не верно, девять не равно десяти, поэтому его значение этого выражения равно false.

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

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

Существует два логических оператора. Оператор «И», обозначающийся значками «» и оператор «ИЛИ», обозначенный в виде двух прямых слэшей «||». Например, имеется выражение:

В том случае, если только обе части выражения истинны, значение выражения считается истинным. Если одна из частей неверна, то значение всего выражения будет ложным.
В противовес оператору «» имеется оператор «||», не напрасно имеющий название «ИЛИ».

Читайте также:
Как уменьшить время выполнения программы java

Если любая из частей выражения истинна, то и все выражение считается истинным. Оба оператора можно комбинировать в одном выражении, например:

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

Ассоциативность операторов в списке следует слева направо и сверху вниз. То есть все, что находится левее и выше – старше по званию и главнее.

Источник: habr.com

Изучаем Java

Будем считать, что вы успешно инсталлировали средства программирования на языке Java и можете выполнять простые программы, показанные в главе 2. Настало время создавать собственные программы. В этой главе вы узнаете, как в языке Java реализуются основные концепции программирования, например, типы данных, ветви и циклы.

К сожалению, на языке Java нелегко написать программу, использующую графический пользовательский интерфейс, — для этого нужно изучить массу деталей, связанных с окнами, полями ввода, кнопками и т.п. Поскольку описание таких технических
подробностей увело бы нас далеко в сторону от нашей основной цели — анализа основных структур языка, в этой главе мы рассмотрим лишь «игрушечные» программы, иллюстрирующие то или иное понятие. Все эти программы просто выводят на консоль результаты своей работы. (В среде Windows консолью является окно MS DOS.)

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

В заключение заметим, что опытные программисты на языке C/C++ могут просто бегло просмотреть эту главу, обратив особое внимание на замечания о языке C/C++, разбросанные по тексту. Программистам на других языках, например Visual Basic, многие понятия окажутся знакомыми, хотя их синтаксис совершенно другой. Таким читателям мы советуем тщательно изучить эту главу.

Простая программа на языке Java

Рассмотрим поближе простейшую программу, какую только можно себе представить, — она просто выводит сообщение в консольное окно.

public class FirstSample
public static void main(St ring[] args)
System.out.print In(«We will not use ‘Hello, World!'»);
>

Этому примеру стоит посвятить столько времени, сколько потребуется, чтобы привыкнуть к особенностям языка; эти моменты будут встречаться во всех приложениях.
Первый и главный момент — в языке Java строго различаются прописные и строчные буквы. Если вы перепутаете их (например, набрав слово Main вместо main), программа выполняться не

Теперь просмотрим исходный код построчно. Ключевое слово public называется модификатором доступа (access modifier); такие модификаторы управляют доступом к данному коду из других частей программы. Более подробно мы рассмотрим этот вопрос в главе 5.

Ключевое слово class напоминает нам, что все сущности в языке Java находятся внутри классов. Классы будут детально рассматриваться в следующей главе, а пока мы будем считать их некими контейнерами, в которых заключена логика программы, определяющая работу приложения.
Как указывалось в главе 1, классы— это строительные блоки, из которых состоят все приложения и апплеты, написанные на языке Java. Все сущности в программах на языке Java должны находиться внутри классов.

За ключевым словом class следует имя класса. Правила образования имен классов не слишком строги. Имя должно начинаться с буквы, а остальная его часть может быть любой комбинацией букв и цифр. Длина имени практически не ограничена. В качестве имени класса нельзя использовать зарезервированные слова языка Java (например, public или if). (Список зарезервированных слов приведен в приложении.)

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

Файл, содержащий исходный текст, должен называться так же, как и открытый класс, и иметь расширение java. Таким образом, класс мы должны записать в файл
FirstSample . java. (Как и прежде, прописные и строчные буквы различаются — не используйте имя firstsample. java.)

Если вы этого не сделаете, то при попытке выполнить компиляцию получите замечательное по своей ясности сообщение об ошибке («Public class FirstSample must be defined in a file called ‘FirstSample.java»‘ — «Открытый класс FirstSample должен быть определен в файле ‘FirstSample.java'»).

Если вы правильно назвали файл и не сделали опечатки в исходном тексте программы, то, скомпилировав его, получите файл, содержащий байт-коды, соответствующие данному классу. Компилятор языка Java автоматически назовет этот файл FirstSample . class и сохранит его в каталоге, где содержится исходный файл. Осталось выполнить байт-коды с помощью интерпретатора языка Java, набрав команду java FirstSample
(Не забудьте отбросить расширение .class) Выполняясь, программа просто выведет на экран строку «We will not use ‘Hello,World! ‘»

Когда для запуска скомпилированной программы используется команда java ИмяКласса,
интерпретатор языка Java всегда начинает свою работу с выполнения метода main указанного класса. Следовательно, чтобы программа вообще могла выполняться, в классе должен содержаться метод main. Разумеется, в класс можно добавить свои собственные методы и вызывать их с помощью метода main. (Мы покажем, как создавать такие методы в следующей главе.)

В соответствии со спецификацией языка Java метод main должен быть объявлен открытым (public). (Спецификация языка Java (Java Language Specification) является официальным документом. Его можно просмотреть или загрузить с Web-страницы http://java.sun.com/docs/books/jls/ Однако некоторые версии интерпретатора языка Java пытались запускать программы, даже когда метод main не имел модификатора public Эта ошибка была помещена в список замеченных неполадок, представленный на сайте http://developer.java.sun.com/developer/bugParade, под номером 4252539.
Однако она сопровождалась примечанием: «закрыта, исправлению не подлежит».

Разработчики компании Sun выступили с разъяснениями, что спецификация виртуальной машины языка Java (Java Virtual Machine Specification) не требует, чтобы метод main был открытым (см. Web-страницу http://java . sun . com/ docs/books/vmspec), а попытка исправить эту ошибку «может вызвать проблемы». К счастью, здравый смысл в итоге восторжествовал. Интерпретатор языка Java в пакете SDK 1.4 требует, чтобы метод main был открытым.

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

С другой стороны, стоит отметить тот факт, что компания Sun разместила список ошибок и способы их исправления на Web-сайте, открыв его для исследования. Этот «парад ошибок» представляет собой весьма полезный ресурс для программистов. Вы даже можете «проголосовать» за вашу любимую ошибку. Ошибки, набравшие наибольшее число голосов, будут исправлены в следующих выпусках пакета SDK.

Обратите внимание на фигурные скобки в исходном тексте программы. В языке Java так же, как и в языке C/C++, фигурные скобки используются для выделения частей программы (обычно называемых блоками). В языке Java код любого метода должен начинаться с открывающей фигурной скобки < и завершаться закрывающей скобкой >.

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

Пока мы не будем обращать внимание на ключевые слова static void, считая их просто необходимой частью программы на языке Java. В конце главы 4 мы полностью раскроем смысл этих слов. Сейчас важно помнить, что каждое приложение на языке Java должно иметь метод main, заголовок которого приведен ниже.

public class Имя Класса
public static void main (String[] args)
команды программы
>
>

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

Метод main в языке Java всегда является статическим. В заключение, как и в языке C/C++, ключевое слово void означает, что метод не возвращает никакого значения. В отличие от языка C/C++, метод main не передает «код выхода» операционной системе.

Читайте также:
Лучшие программы для скачивания видео с интернета

Если метод main завершает свою работу нормально, код выхода программы на языке Java равен 0, что свидетельствует о ее успешном выполнении. Чтобы прекратить выполнение программы с другим кодом выхода, используйте метод System.exit.

Теперь обратите внимание на следующий фрагмент кода:
System.out.println («We will not use ‘Hello, World!’ » ) ;
>

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

Тело метода main состоит из оператора, который выводит на консоль одну строку текста.
В данном примере мы используем объект System, out и вызываем его метод println. Заметьте, что для вызова метода используется точка. В общем случае вызов метода имеет следующий вид:
объект. метод (параметры)

В нашем примере мы вызываем метод println, передавая ему текстовую строку в качестве параметра. Метод выводит этот текст на консоль, выполняя переход на следующую строку. В языке Java, как и в языке C/C++, для разделения строк используются двойные кавычки. (Далее в этой главе мы рассмотрим работу со строками подробнее.)

Методы в языке Java, как и функции в любом другом языке программирования, могут иметь один или несколько параметров, либо не иметь их вовсе (в некоторых языках они называются аргументами). Даже если метод не имеет параметров, нужно оставлять пустые скобки. Например, есть вариант метода println без параметров, выводящий на экран пустую строку.
Его вызов выглядит так: System.out.println() ;

В объекте System, out есть метод print, который не добавляет к строке символ перехода на новую строку. Например, оператор System.out.print(«Hello») выводит текст «Hello» и оставляет курсор в конце строки. Следующий вывод появится на экране сразу за буквой «о».

Сергей Владимирцев
27.01.2011

Источник: www.java-study.ru

Pro Java

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

Сразу стоит отметить, что Java чувствительна к регистру символов . Поэтому, к примеру, идентификаторы demo, Demo, DEMO и т.п. не являются в Java одним и тем же идентификатором, это все РАЗНЫЕ идентификаторы.

Это надо усвоить сразу, раз и на всегда!

Условно код программы на Java можно условно разделить на три части:

  • Незначащие символы
  • Комментарии
  • Лексемы

Незначащие символы – символы не служащие для генерации какого-либо кода или данных

  • пробелы
  • табуляция
  • ограничители строк (LF – символ новой строки, CR – возврат каретки, CR+LF)

Комментарии – служат для пояснения текста программы или генерации документации, не генерируют ни какой исполняемый код

  • однострочные // текст комментария
  • блочные /* текст комментария */
  • комментарии документации /** документация */

Лексемы – это элементарные конструкции языка, из которых транслятор javac генерирует исполняемый байт-код, который может быть выполнен виртуальной машиной Java.

Незначащие символы и комментарии являются разделителями для лексем, но ни как не влияют на скомпилированный код.

В Java существуют следующие виды лексем:

  • Идентификаторы
  • Ключевые слова
  • Литералы
  • Разделители
  • Операторы

Идентификатором является любое символическое имя какого-либо элемента в Java программе. Идентификатором может выступать имя класса, метода, параметра и переменной. Идентификатор должен начинаться с буквы, символа подчеркивания (_) или с валютного символа Unicode (например, $, £, ¥). За начальным символом может следовать любое количество букв, цифр, символов подчеркивания или валютных символов. Следует помнить, что Java использует множество символов Unicode, куда входит довольно много букв и цифр, не входящих во множество символов ASCII. Ниже представлены разрешенные идентификаторы:

i
engine3
theCurrentTime
the_current_time
θ
переменная

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

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

Еще одно существенное ограничение: в качестве идентификаторов нельзя применять ключевые слова и литералы (такие как true, false и null), являющиеся частью самого языка Java .

На заметку! Начиная с версии JDK 8, сам знак подчеркивания не рекомендуется употреблять в качестве идентификатора.

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

L0001

Кроме ключевых слов, в Java зарезервированы так же слова true, false и null, являющиеся литералами. Они представляют значения, определенные в специикац языка Java. Их, так же нельзя использовать для обозначения имен переменных классов и т.п.

Обратите внимание, что const и goto являются зарезервированными словами, но не представляют собой часть языка Java.

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

  • целый (integer) – по умолчанию имеет тип данных int
    примеры: 55 (десятичное), 555_555 (десятичное 555555, этот формат введен в Java 7),
    7000000000L (десятичное тип long, ASCII символ L в любом регистре)
    07 (восьмеричное начинается с нуля, цифры 8 и 9 запрещены),
    0xFF, 0XFF или 0xff (шестнадцатеричное, ASCII символ X в любом регистре, шестнадцатеричные значения A, B, C, D, Е и F, так же могут записывать в любом регистре),
    0b0101 или 0B0101 (двоичное, ASCII символ B в любом регистре, введен в Java 7)
  • вещественный (floating-point) – по умолчанию имеет тип данных double
    примеры: 5.5 (тип double), 5.5f или 5.5F (тип float, ASCII символ F в любом регистре),
    5. (5.0 тип double), .24f (0.24 тип float), 0.125e4 или 0.125E4 (тип double, ASCII символ Е в любом регистре), 1600e-2 (тип double)
  • логический (boolean) – пример: true или false
  • символьный (charaster) – может содержать один символ из набора Unicode, заключенный в одинарные кавычки, специальную последовательность (управляющие символы) начинающуюся со знака косой черты –
    Управляющие символы:
    b – backspase BS — забой
    t – horizontal tab HT — табуляция
    n – line feed LF – конец строки
    f – form feed FF – конец страницы
    r – carriage return CR – возврат каретки
    ” – двойная кавычка
    ’ – одинарная кавычка
    \ – backslash – обратная косая черта
    uxxxx – символ Unicode, где xxxx цифровой код символа Unicode
    xxx – символ кодовой таблицы Latin-1, где xxxвосьмеричный код символа Latin-1
    примеры: ‘A’, u0950, b, t, 333 и т.п.
  • строковый (string) – всегда имеет тип String и ссылается на экземпляр класса String. Состоит из нуля или большего количества символов, каждый символ может быть предствлен Unicode последовательностью, так же может содержать строковый литерал.
    примеры: “”, “string”, “symbol u0950”, “test t test”
  • null-литерал (null-literal) – это литерал ссылочного типа, причем эта ссылка null ни куда не ссылается.
    пример: null

Логические литералы true и false, а так же null литерал являются зарезервированными словами в Java. Их относят к литералам, поскольку с их помощью задаются значения для переменных или ссылок.

Так же тут были затронуты разные типы данных (int, long, double и float), которые мы рассмотрим чуть позже, в другом разделе.

Разделители – это специальные символы, которые используются в служебных целях языка. В Java существуют следующие 12 разделителей:

L0002

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

L0003

Более подробно мы их рассмотрим чуть позже.

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

L0004

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

Источник: pr0java.blogspot.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru