В этом материале будет рассмотрено концепция работы с классами и объектами.


Объекты и классы в Java

  • Объект – может иметь состояние и поведения. Например, если представить собаку как объект, то состоянием будет – цвет шерсти, имя, возраст. Поведение – играет, спит, сидит, бежит и т.д.
  • Класс – может быть определен как шаблон, который описывает поведение объекта.

Объекты в Java

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

Если мы представим собаку — то состоянием будет — цвет шерсти, имя, возраст, а поведение — играет, спит, кушает и т.д.

При сравнение программного объекта и объекта из реального мира можно найти много одинаковых характеристик.

Программный объект так же имеет состояние и поведение.Программный объект хранит данные о состоянии полях класса(переменные). Поведение объекта представлено при помощи методов.

Обработка данных объекта и коммуникация между объектами осуществляется при помощи методов.

Классы в Java

Класс в Java является шаблоном, из которого создаются объекты.

Пример класса:

Класс может содержать следующие типы переменных:

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

Класс может иметь любое количество методов. В приведённом ранее примере, barking(), hungry() и sleeping() являются методами.

Далее будут более подробно рассмотрены основные темы, которые необходимо знать для работы с классом.

Конструкторы

У каждого класса имеется конструктор. Даже если конструктор не определён явно, то при компиляции используется конструктор по умолчанию.

Когда создаётся объект класса, то будет вызван как минимум один конструктор. Имя конструктора обязательно должно совпадать с именем класса. Класс может иметь более одного конструктора.

Пример:

Обратите внимание: в классе может быть более одного конструктора. Более подробно конструкторы будут рассмотрены в следующих статьях.

Создание объекта

Как было упомянуто ранее, класс является шаблоном для создания объекта. Таким образом, объект всегда создаётся из класса. В Java для создания новго объекта используется ключевое слово new.

Объект создаётся по следующему принципу:

  1. Объявление (Declaration) — объявляется переменная с именем и типом объекта.
  2. Инстанцирование (Instantiation) — при помощи ключевого слова «new», создаётся новый объект.
  3. Инициализация (Initialization) — ключевое слово «new» вызывает конструктор класса. Этот вызов инициализирует объект.

Приме:


Если мы скомпилируем и запустим программу, то увидим следующий вывод:

Доступ к переменным и методам экземпляра

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

Этот пример объясняет, как получить доступ к переменные экземпляра и методам класса в Java:

Если мы запустим код этой программы, мы увидим следующий результат:

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

В заключающей части этой статье будет рассмотрены правила декларации исходного файла. Это основные правила для работы с классами(classes), импортом(import) и пакетами(package).

  • В исходном файле может содержаться только один класс с модификатором доступа public.
  • В исходном файле можно объявить множество не публичных классов(non-public).
  • Имя публичного(public) класса должно соответствовать имени файла с добавлением расширения «.java«. Например: имя класса public Employee{ }, то тогда имя файла должны быть следующим: Employee.java.
  • Если класс объявлен в пакете(package), то имя пакета должны быть первой строчкой в файле.
  • Если в классе присутствует импорт(import), то записи об импорте должны быть расположены между записью о пакете и объявлением класса. Если запись о пакете отсутствует, то в записи об импорте должны быть в начале файла.
  • Операторы импорта и пакета будут одинаково выполняться для всех классов, присутствующих в исходном файле. В Java не представляется возможным объявить различные операторы импорта и/или пакета к различным классам в одном исходном файле.

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

Помимо указанных выше типов классов, Java также имеет некоторые специальные классы, называемые внутренние (Inner class) и анонимные классы (Anonymous class).

Пакеты(package) в Java

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

Операторы импорт(import)

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

Например, следующая строка будет просить компилятор загрузить все классы, доступные в каталоге «java_installation/java/io»:

Простой пример для усвоение материала

Для примера создадим два класса Employee и EmployeeTest.

Employee.java

Как упоминалось ранее, в Java точкой старта при запуске программы, является статический метод main(). Следовательно объект класса Employee должен быть создан в методе main().


Следующий класс EmployeeTest,создаёт два экземпляра класса Employee и для каждого вызывает конструкторы и методы для присвоение данных переменным.

Скомпилировав и запустив мы увидим следующий результат:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

2 × два =