Пакеты классы объекты java

Классы и объекты в Java 8

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

Объявление классов

Классы в Java объявляются с помощью ключевого слова class . Пример самого простого объявления класса:

Здесь мы объявляем новый класс с именем Goblin .

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

Перед ключевым словом class может стоять модификатор public , который делает класс доступным из всех пакетов. Если модификатора public нет, как в нашем случае, то класс доступен только в том пакете, в котором он объявлен.

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

В этом примере мы объявили четыре поля:

  • поле money с типом int ;
  • поле health с типом double ;
  • поле diamonds с типом int ;
  • поле name с типом String .

Каждый экземпляр класса Goblin будет иметь своё значение полей money , health , diamonds и name .

В самом начале объявления поля указывается модификатор доступа к полю ( private , protected или public ), либо не указывается, и тогда используется доступ по умолчанию package-private. Затем указывается, если нужно, ключевое слово static (будет объяснено позже), а также, если нужно, ключевое слово final (будет объяснено позже). Затем тип поля и имя. Затем поле может сразу инициализироваться начальным значением, например как поле diamonds инициализируется числом 10 в нашем примере.

Читайте также:  $PAGE_TITLE

Модификатор доступа, static и final могут располагаться в любом порядке, но согласно соглашению о кодировании принят именно такой порядок, который описан в статье.

Поле money объявлено с модификатором доступа private , и оно будет доступно только внутри этого класса.

Поле health объявлено без модификаторов доступа, и для него будет использоваться уровень доступа package-private (поле будет доступно только внутри своего пакета).

Поле diamonds объявлено с модификатором доступа protected , и оно будет доступно в этом пакете, этом классе и классах наследниках от этого класса (как объявлять наследников будет объяснено позже).

Поле name объявлено с модификатором доступа public , и оно будет доступно во всех классах всех пакетов.

Уровни доступа

Модификатор Класс Пакет Дочерний класс Все классы
public Есть Есть Есть Есть
protected Есть Есть Есть Нет
без модификатора Есть Есть Нет Нет
private Есть Нет Нет Нет

Имя поля следует давать в соответствии с соглашениями.

Обращаться к полю внутри класса, которому оно принадлежит можно просто по имени поля:

Источник

Язык JAVA просто

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

В простейшем случае программа состоит из файла, в котором содержится исходный код единственного класса и один метод main.
(Минимальная программа состоит из одного класса)

(Если планируется, что программу не будут запускать на выполнение, а описанный класс будет лишь использоваться в других программах, то наличие в тексте метода main не обязательно)

Обязательным условием корректности такой программы является совпадение имени файла (без расширения) с именем единственного класса размещённого в этом файле.
Например, класс Tea должен храниться в файле с именем Tea.java.

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

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

Пример простейшей программы:

Когда файлов с классами много, то их, как правило, группируют (помещают) в специальные контейнеры — пакеты, создавая тем самым иерархическую систему (как аналог папок (директорий) в файловой системе (на компьютере)).

На диске пакет является каталогом (папкой) и все исходные файлы и файлы классов, принадлежащих одному и тому же пакету, находятся в одном каталоге.

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

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

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

— Организация классов в виде пакетов позволяет избежать конфликта имен между классами (когда разработчики называют свои классы одинаковыми именами).

Каждый пакет имеет свое пространство имен, что позволяет создавать одноименные классы в различных пакетах.

Класс представляет собой контейнер, содержащий программный код.
Код внутри класса представляет собой набор элементов — описание полей, констант, методов, интерфейсов и других классов.
Класс — по сути является шаблоном (описанием) для объекта: он определяет, как объект будет выглядеть и какими функциями обладать.
Класс представляется в исходном коде так:

(Объект — сущность в адресном пространстве вычислительной систем, появляющаяся при создании экземпляра класса.)

Класс — по сути является шаблоном (описанием) для объекта: он определяет, как объект будет выглядеть и какими функциями обладать.

Рецепт (шаблон) выпечки пирожков можно назвать классом. Реально же существующий экземпляр данного класса (шаблона) — пирожок является объектом этого класса.
Любой объект может обладать двумя основными характеристиками:
— состояние (некоторые данные, которые хранит объект)
Для хранения состояния объекта в классе применяются поля или переменные класса.
— поведение (действия, которые может совершать объект)
Для определения поведения объекта в классе применяются методы.

Метод (функция) — это набор инструкций (команд), выполняемых программой, которому присвоили имя (имя метода).

Код (тело) метода – это набор выражений (команд) (инструкций). Инструкции для метода должны быть размещены между его фигурными скобками — в «теле метода».

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

Примеры команд:
System.out.print — команда, отвечающая за вывод сообщения на экран. Следующая команда после этой выведет сообщение на эту же строку.
System.out.println — команда, отвечающая за вывод сообщения на экран с новой строки. Т.е. сначала выводит заданный текст, а потом делает перевод на новую строку. Следующая команда после этой выведет сообщение на новую строку.

Пример записи команды в коде:
System.out.println(10); Результат: выводит на экран число 10
System.out.println(«строка»); Результат: выводит на экран слово строка

Интерфейс – это скелет (заготовка) класса с перечислением необходимых методов, но без их кода.

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

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

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

В тексте класса, который реализует (имплементирует) интерфейс, должны быть написаны тексты всех методов, декларированных в этом интерфейсе.

Класс может реализовывать сразу несколько интерфейсов. В этом случае они указываются через запятую после слова implements.

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

Источник

Оцените статью