Другое

Что такое объект, экземпляр класса в Java

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

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

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

Когда мы произносим слово «человек», то каждый из нас может его описать какими-то свойствами, например:

  • у него есть руки, 
  • у него есть ноги;
  •  у него есть туловище, к которому крепятся руки, ноги и голова;
  • на голове есть волосы;
  • он стоит на двух ногах;
  • и др.

Таких «описаний человека» может быть очень много. По сути, это описание человека может выступать  в роли класса «Человек» в Java. Потому что данное описание выступает, как «шаблон человека» без описания какого-то конкретного человека. Однако все мы знаем, что люди бывают разные. Например, у людей может отличаться:

  • пол: мужчины и женщины;
  • цвет и длина волос;
  • цвет кожи;
  • цвет и разрез глаз;
  • рост;
  • вес;
  • и много-много других признаков.

Когда мы попытаемся точно описать какого-то человека по его отличительным признакам, то фактически получим объект класса «Человек», который является экземпляром этого класса.

В Java класс «Человек» мог бы выглядеть вот так:

class  human {

}

То есть мы в Java создали класс «Human», а внутри «фигурных скобок» можем поместить поля и методы, которые будут описывать общие характеристики нашего класса. 

 Все характеристики  объектов в Java можно разделить на две большие категории:

  1. Те, которые описывают состояние объекта. Например, у нашего класса «Human» это могут быть: рост, вес, возраст, имя, цвет волос, цвет глаз и др. Описание состояния объекта внутри класса несут в себе поля и переменные класса.

  2. Те, которые описывают поведение объекта. Например, у нашего класса «Human» это могут быть следующие действия человека: спит, стоит, кричит, лежит, говорит, читает, пишет, бежит и др. Описание поведения объекта несут в себе методы класса.

Давайте немного усложним наш класс «Human», описывающий человека. В результате в коде мы получим что-то подобное:

class Human{

   

String firstName;

int humanAge;

void displayInfo(){

    System.out.printf ("firstName: %s \tHumanAge: %d\n", firstName. humanAge);

}

}

Чуть выше мы определили класс «Human», в котором определили:

  • два поля (firstName и humanAge), которые представляют имя и возраст человека;

  • метод «displayInfo» — он будет выводить информацию на экран.

Немного усложненный класс «Human»  у нас есть, теперь давайте на его основе создадим небольшую программу. Например:

public class PublicPerson{

public static void main(String[] args) {

Human dormidont

}

}

 

class Human{

String firstName;

int humanAge;

void displayInfo(){

    System.out.printf ("firstName: %s \tHumanAge: %d\n", firstName. humanAge);

}

}

Нетрудно заметить, что в коде чуть выше у нас появился еще один класс «PublicPerson», то есть у нас уже есть два класса и только один класс у нас доступен с модификатором «public». Также у нас появилась новая переменная «dormidont», представляющая класс «Human». Однако пока эта переменная пустая и имеет значение «null», потому что она не указывает ни на один объект. Поэтому пока мы ее не можем использовать до тех пор, пока не создадим конкретный объект класса «Human».

Объекты в Java: конструкторы

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

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

Например, в нашем примере, класс «Human» не имел ни одного конструктора, поэтому конструктор создается автоматически на основе параметров самого класса. Теперь нам нужно воспользоваться этим конструктором, чтобы создать объект «Human».

Вот что у нас получится в коде:

public class PublicHuman{

      

    public static void main(String[] args) {

         

        Human dormidont = new Human(); // создаем новый объект

        dormidont.displayInfo();

         

        // корректируем имя и возраст объекта

        dormidont.firstName = "Dormidont";

        dormidont.humanAge = 33;

        dormidont.displayInfo();

    }

}

class Human{

     

    String firstName;    

    int humanAge;       

    void displayInfo(){

        System.out.printf("FirstName: %s \tHumanAge: %d\n", firstName, humanAge);

    }

}

Для того чтобы создать объект «Human», мы использовали выражение «new Human()», где оператор «new» выделит память для создания нового объекта «Human». После этого происходит вызов конструктора по умолчанию без всяких параметров. В результате этого выделится немного памяти для сохранения информации об объекте «Human», а переменной «dormidont» мы задали ссылку на этот объект.

После того как мы создали объект, есть возможность обратиться к переменным объекта «Human», используя переменную «dormidont», для того чтобы получить или задать значения объекту, например, как это сделали мы:

dormidont.firstName = "Dormidont";

Заключение 

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

Наша сегодняшняя статья — это начало начал и попытка приоткрыть вам занавес в мир программирования на языке  Java.

Схожие статьи

Embedded systems: что это? Коротко про встраиваемые системы
Другое

Embedded systems: что это? Коротко про встраиваемые системы

Другое

Что такое коммит git? Как вернуться (откатиться) к более раннему коммиту?

Обработка исключений C. Программирование на C и C++ для новичков
Другое

Обработка исключений C. Программирование на C и C++ для новичков

DevTools: определение, виды инструментов и их применение
Другое

DevTools: определение, виды инструментов и их применение