Урок 1. Основные ключевые слова Java
На первом уроке из серии уроков по основам Java я собираюсь познакомить вас с пятнадцатью ключевыми словами / понятиями Java, которые являются центральными для Java. Чтобы сделать концепции более конкретными, я проиллюстрирую их, используя аналогию автомобилей в гараже. Я постараюсь не использовать какой-либо термин, прежде чем официально представлю его. Я намеренно сначала буду обьяснять все простыми словами, но позже, если это необходимо, добавлю академически правильное объяснение.
Пакет (Package)
Хорошо, давайте начнем с нашего первого ключевого слова: пакет (package). Пакет похож на структуру папок на вашем компьютере. Он организует различные файлы вашей программы. Имя пакета должно быть уникальным, поскольку существуют миллионы других программ, и вы не хотите иметь то же имя файла программы, что и кто-то другой. Поскольку Java-код широко используется, пакеты используются для предотвращения конфликтов имен. Если два разных файла кода в одной программе имеют одинаковое имя, включая имя пакета, то будет загружен только один из них, а другой файл кода будет полностью проигнорирован, что обычно приводит к ошибкам.
Чтобы гарантировать уникальность пакета, достаточно включить в него свое доменное имя. Обычно верхняя или корневая папка структуры пакета является доменным именем организации в обратном порядке. Использование имени пакета никогда не требуется, но это настоятельно рекомендуется, даже в самых простых программах. При объявлении пакета необходимо объявить его в первой строке программы. Строчные и единственные существительные обычно используются для каждой части имени пакета. В моем примере я начинаю имя пакета с моего домена верхнего уровня ru, за которым следует мое доменное имя upread, а затем javacourse, поскольку это проект, над которым мы работаем. Как я уже говорил ранее, пример кода в этой статье связан с гаражом, поэтому мы закончим имя пакета с "garage". Таким образом, наше полное имя пакета будет:
package ru.upread.javacourse.lesson1.garageТам, где это возможно, используйте термины, которые клиент может понять и которые относятся к бизнесу (гараж в моем случае), а не технические термины, такие как "frontend" или "backend".
import
Для упрощения программ и уменьшения избыточности многие программные файлы повторно используют существующий код. Для этого можно использовать полное имя файла кода, включая полное имя пакета. Однако, чтобы сделать ваш код более читаемым, вы обычно добавляете файл в список импорта, что позволит вам обращаться к коду по его простому имени файла, не имея необходимости постоянно ссылаться на него по его полному расположению пакета.
Оператор импорта, или операторы, пишется непосредственно после объявления пакета. При импорте кода необходимо указать имя пакета файла. Вы можете импортировать определенные файлы из пакета или всего пакета, используя символ звезды.
Давайте начнем наш код с импорта первой машины в наш гараж, Bmw.
package ru.upread.lesson1.garage import ru.upread.lesson1.car.BmwКласс (Class)
Программы могут легко состоять из тысяч, если не десятков тысяч строк кода. Когда у вас так много текста в одном месте, легко заблудиться. Чтобы сделать код более понятным, Java-программисты классифицируют свой код на различные единицы, называемые классами.
Как программист, вы можете называть свои пакеты и классы как угодно, но ваша цель всегда должна быть ясной. Когда вы работаете с бизнес-клиентом, клиент определяет, чего он хочет; это ваша работа, чтобы знать, как выразить это. Если вы можете создать общий язык, чтобы преодолеть разрыв между ними, вашему клиенту будет легче понять код без особых знаний о кодировании. По этой причине программисты обычно называют свои классы существительным, которое описывает класс, начиная с заглавной буквы.
Например, мы могли бы создать класс Car, который позже будет содержать весь код, связанный с автомобилем. В начале класса есть открывающая фигурная скобка, а в конце нашего кода есть закрывающая фигурная скобка, которая показывает конец класса.
Занятия должны быть сосредоточены только на одной теме, и вы должны стараться сделать их как можно меньше ради удобства чтения и обслуживания.
class Car { }Метод
Класс будет состоять из одного или нескольких методов. Метод определяет, как определенная задача будет выполнена с помощью кода. Например, метод timesTwo может удвоить количество заданных входных данных. Методы также иногда называют функциями. Хотя этот термин не совсем академически корректен, вы можете его использовать. По соглашению, метод обычно называется после глагола, который описывает, какие действия он выполняет. Методы могут работать с чем угодно: числами, цветами, звуками.
timesTwo(2) => 4 add("ab", "c") => "abc" print("Hello") => will print "Hello"Представьте свой код в виде книги. Книга состоит из глав (пакетов), абзацев (классов) и предложений (методов). Методы могут также вызывать другие методы, создавая цепочку методов. Как программист, вы хотите структурировать свой код, думая о текущем уровне абстракции, точно так же, как пишете книгу. Ваш код должен в конечном итоге быть читаемым, как книга!
Примером метода, вызывающего другие методы, может быть метод prepareDinner(), вызывающий метод prepareAppetizer(), за которым следует метод prepareMainCourse(), а затем метод prepareDessert().
Если наш метод prepareAppetizer() должен вызвать еще три метода: "washLettuce()", "addTomatoes ()" и" tossSalad ()", то мы создали понятную и понятную иерархию в нашем коде. Конечно, мы могли бы напрямую вызвать prepareDinner () вместо prepareAppetizer (), но это загромождало бы наш код и затруднило бы его чтение.
Важно придумать чистую структуру и сделать ваш код "говорящим". Чем сложнее понять, что делает ваша программа, тем легче будет допустить ошибку. Как правило, старайтесь, чтобы ваши методы были короче, чем двадцать строк. Лично я стремлюсь к методу длиной всего 1-3 строки.
Методы определяются аналогично классам. Сначала вы определяете имя метода, обычно глагол, начинающийся со строчной буквы. Методы обычно являются глаголами, потому что они что-то делают. Классы обычно являются существительными, потому что они являются объектами, на которые действуют методы. За именем метода следует пара скобок. Внутри этих круглых скобок можно определить от нуля до неограниченного количества входных полей.
При вызове метода необходимо отправить определенные значения, называемые аргументами, в определенные поля, называемые параметрами метода. Аргументы - это фактические значения, которые вы отправляете в метод. В контексте метода общие значения, которые он получит, называются параметрами метода.
Я рекомендую абсолютный максимум от трех до пяти параметров метода, потому что больше, чем это вредит читабельности. Чем меньше параметров, тем лучше. После параметров вы начинаете определение метода с открывающей фигурной скобки и заканчиваете его закрывающей фигурной скобкой. Между ними вы помещаете код для своего метода. Давайте еще раз взглянем на наш класс автомобилей:
package ru.upread.javacourse.garage; import ru.upread.javacourse.car.Bmw; class Car { drive(speed) { } }Объект
Как я уже говорил, класс используется для структурирования кода в Java в виде единиц кода. Однако это только часть истории. Класс - это как чертеж того, что вы хотите сделать, когда программа запущена. Класс Car определяет, как будет вести себя автомобиль. Однако во время выполнения (когда программа запущена), будет несколько автомобилей, каждый со своим набором значений.
Таким образом, класс действует только как шаблон для объектов, которые создаются в вашей программе. Каждый объект имеет тот же набор поведений, как определено классом, но он также существует как свой собственный набор значений в программе, которые могут изменяться по мере выполнения программы. Например, у вас может быть два объекта класса Car, которые оба управляют, но они могут иметь разные значения для своих соответствующих скоростей.
Переменная
Переменная, как следует из названия, изменяется по значению. Это заполнитель для значения, которое можно назвать и задать. Переменные могут использоваться в качестве входных и выходных данных для методов. Переменные могут быть различными типами данных. Существует две категории типов данных: примитивные типы данных и типы объектов.
Примитивные типы данных, такие как int, char и boolean, хранят такие вещи, как числа и одиночные символы. Типы объектов используются для хранения объектов и ссылаются на них ссылочными переменными объектов. Примером возможного ссылочного имени переменной для объекта типа Car может быть myCar, myPorsche или momsCar.
Точка
В Java "." не используется для обозначения конца предложения. Вместо этого "." используется переменной для выполнения или вызова метода. Например, у нас может быть переменная car, вызывающая метод drive().
Точка с запятой
С тех пор "." используется для указания вызываемого метода,"; " используется для указания конца команды, инструкции или объявления.
car.drive()Объявление переменной
Прежде чем мы сможем использовать переменную, мы должны определить ее. Вы объявляете переменную, записывая тип переменной, а затем ее имя, а затем";".
Car myPorsche;Инициализация объекта
Объявив переменную, вы можете присвоить ее определенному объекту. Вы также можете сделать обе эти вещи в одной строке. Во-первых, вы можете создать переменную типа Car, называемую myPorsche, а затем, используя знак равенства, присвоить ее новому объекту Car с первым значением 1 и вторым значением 320.
Car myPorsche = new Car(1, 320);После того, как мы объявим переменную и присвоим ее объекту, всякий раз, когда мы используем myPorsche, мы ссылаемся на этот объект, созданный в памяти. Вы также можете заметить, что мы поместили два значения в конструктор Car, но без фактического просмотра конструктора Car мы не знали бы, каковы их значения. Это одна из причин, почему в методах и конструкторах должно быть как можно меньше полей.
Public
Public - это модификатор доступа, который определяет, что класс или метод, помеченный как public, может использоваться любым другим классом из любого другого пакета. Помимо public, существуют также другие модификаторы доступа, такие как private, default и protected, которые я рассмотрю более подробно позже.
Void
Для каждого метода требуется, чтобы вы возвращали значение, даже если вы этого не хотите. Однако тег void определяет, что метод не будет возвращать значение. Если метод не является void, он может возвращать любой тип данных. Чистый способ разработать свои методы- заставить каждый метод выполнять одну из двух ролей. Метод запроса возвращает значение, но не изменяет состояние класса. Командный метод изменяет состояние класса, но не возвращает значения. привод (скорость) - это командный метод. Он выполняет действие ("вождение"), но не возвращает значение (и поэтому мы определяем его как void).
package ru.upread.java8course.garage; import ru.upread.java8course.car.Bmw; public class Car { public void drive(speed) { } }@Test
Символ @ обозначает аннотацию. Аннотации - это способ, с помощью которого программист передает компилятору некоторую базовую информацию о методе или классе, не являющуюся непосредственно частью кода. Сейчас я хочу выделить одну важную аннотацию. Просто знайте, что любой метод с аннотацией @Test указывает на то, что метод является тестом.
camelCase
Если класс, переменная или метод состоит более чем из одного слова, то для обозначения нового слова используется заглавная буква. Это называется camelCase, потому что "горбы" из прописных букв делают слова похожими на верблюжьи горбы. В некоторых других языках программирования имена нескольких слов разделяются подчеркиванием, но в Java вместо этого используется "camelCase".
Объектно-ориентированный язык
Каждый язык программирования имеет в виду дизайн для своей структуры. Java - это объектно-ориентированный язык. То есть все в Java сосредоточено вокруг объектов. Умный Java-программист работает над тем, чтобы полностью понять проблему и перевести свою теоретическую модель в объекты и классы, которые помогают ему достичь своих целей.
Основная цель при написании программы - решить проблему максимально простым способом. Чем лучше работает программист, тем легче будет поддерживать код, тем быстрее программа будет работать и тем меньше ошибок будет иметь программа.
Сила Java исходит из идеи, что модель берет имена и понятия из реального мира, позволяя программистам легко общаться с менее подкованными в коде клиентами. В то время как вы можете думать о коде вашего класса автомобилей, ваш клиент может думать о реальном автомобиле, но вы оба поймете друг друга.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.