undefined

Классные классы

Java Syntax
5 уровень , 1 лекция
Открыта

— Привет, Амиго!

— Привет, Элли!

— Сегодня я подробно расскажу тебе, что такое классы.

Объяснение номер 1. Начну с аналогии. Все вещи в физическом мире состоят из атомов. Атомы могут быть разных типов: водород, кислород, железо, уран, … Комбинируя такие атомы можно создавать различные молекулы, вещества и предметы.

— Атомы в свою очередь тоже имеют некоторую внутреннюю структуру. Внутри них содержатся электроны и ядро: протоны и нейтроны.

— Да, я имею общее представление об устройстве атомов. Я же робот.

— Так вот, в мире Java все очень похоже. Программы состоят из объектов, которые бывают разных типов (классов). Различные классы в свою очередь имеют различные внутренние структуры: переменные и методы.

— Если рассмотреть программу в целом, то объекты – это блоки, из которых состоит программа. А классы – это типы этих блоков. Блоки разных типов являются объектами разных классов.

— Вроде ясно.

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

— Что-то как-то уж слишком размыто это звучит. Вроде и понятно, но ничего конкретного.

— С точки зрения внутренней структуры, класс состоит из методов класса, которые что-то делают и переменных класса, в которых эти методы хранят различные данные.

— Т.е. если очень просто, то класс – это набор методов?

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

— Ага. И чтобы создать новый класс нам нужно написать эти методы…

— Да. А также решить, какие общие переменные есть у различных методов, и вынести эти переменные из метода в класс: сделать переменные метода переменными класса.

— Создание класса происходит примерно по такой схеме:

1. Программист решает, какие еще объекты ему нужны.

2. Программист разбивает эти объекты на различные типы в зависимости от того, что они должны делать.

3. Для каждого типа программист пишет свой отдельный класс.

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

5. В каждом методе пишутся команды, чтобы метод делал то, что хочет от него программист.

6. Класс готов, можно создавать его объекты.

— Круто! Интересная схема. Надо будет запомнить

— Запоминай – пригодится. Подход к программированию, при котором программа разбивается на объекты, называется «Объектно-Ориентированное Программирование (ООП)».

— Java – это классический пример ООП подхода: в Java объектами является всё.

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

— Понятно.

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

— Для того, чтобы создать объект класса, в коде надо написать «new имя_класса()». Примеры:

Примеры:
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

— У объекта класса есть две интересные особенности:

Первая. Каждый объект класса хранит свою собственную копию переменных класса. Т.е. если в классе объявлены переменные «x,y» и создано 10 объектов такого класса, то в каждом объекте будут свои переменные. Изменение переменных одного объекта не влияет на переменные другого объекта.

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

— Немного понятно. А что ты говорила про переменные класса?

— У каждого объекта есть его копия данных – переменных класса.

Код на Java Вывод на экран:
Cat cat1 = new Cat();
cat1.name = "Vaska";

Cat cat2 = new Cat();
cat2.name = "Mashka";

System.out.println(cat1.name);
System.out.println(cat2.name);
Vaska
Mashka
Комментарии (214)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Кирилл 7 уровень, Миасс
24 января 2021
Вот лекция по Объектам в Java, может кому пригодиться: https://javarush.ru/quests/lectures/questsyntaxpro.level07.lecture03
Бабочка Алушка 17 уровень, Новокузнецк
2 ноября 2020
Создаем класс, пишем в нем методы. - это как чертёж. далее когда создаем новый объект созданного класса( чертежа). то объект создается по заданному чертежу, только параметры класса можно задвать разные. Тк основа одна и та же только параметры разные ( это как все люди имеют схожее строение тела, только все различаются по признакам (рост, цвет волос и глаз)
Тони 10 уровень, Москва
20 октября 2020
не совсем понятно, где здесь объект а где класс?: InputStream is = new FileInputStream(path);
Arslan 6 уровень, Черкесск
16 октября 2020
То что я понял из изученного: Основной сущностью в ООП являются объекты и классы(объектов). А написание программы по сути сводится к реализации следующих пунктов: 1. Построение шаблонов, называемых классами, для всех однотипных объектов путем описания всех данных(характеристик объекта определяющих его состояние) и всех обработчиков этих данных называемых методами(функционал объекта меняющий его состояние). 2. Создание объектов определенных типов по соответствующим шаблонам(классам). 3. Реализация логики взаимодействия созданных объектов между собой и с пользователем(человеком).
Wladi4 6 уровень
15 октября 2020
было бы неплохо если бы в лекциях диаграммы UML давали, с переменными и методами объектов. Чтобы сразу читать их учиться. Или это по программе впереди?
SolomonVP 31 уровень, Томск-Москва-Краснодар
16 сентября 2020
Для закрепления материала просто оставлю маленький конспект для себя: Классы - это как планеты, много-много планет и звЁзд.. Переменные класса - это формы и состав планет, круглые, квадратные, овальные, в виде котиков. Методы класса - это то чем занимаются и что делают объекты, летают, взрываются, превращаются в сверхновые, врезаются, уничтожают человечество извержениями вулканов из котиков. Исправляйте, если найдете ошибку.
Игорь Жуган 11 уровень
2 сентября 2020
По-моему, в статье неточная информация.. экземпляр и объект это не одно и то же. Экземпляр эта ссылка на объект, хранящая адрес первого байта объекта. Объект это выделенная область памяти, содержащая статические переменные и методы класса. Экземпляр в свою очередь содержит нестатические переменные.
Evgeny Strokov 23 уровень
22 августа 2020
Кто не совсем понял взаимосвязь классов и объектов - попробую пояснить. Класс - это некий шаблон, описывающий конректно что-либо. Объект - это то, что было построено согласно этому шаблону. Представим, что у нас имеется класс - человек (хоть это и является абстрактным классом, но привел пример только для лучшего понимания). Этот класс может содержать определенные методы и поля (переменные), которые будут описывать этот класс. Например, мы можем в класс вписать ИМЯ и ВОЗРАСТ. Тем самым, создавая объект данного класса, мы получаем экземпляры этого класса. Human human1 = new Human("Евгений", 19); То есть, human1 - это объект класса Human. То, что описано в классе Human, может быть применимо на объекте. Иными словами, класс - это модель, которую необходимо описать, чтобы получить то, что хотим видеть в объекте.
IvanV 8 уровень, Запорожье
21 августа 2020
Впервые вижу кошачье имя "Машка".
Oleg 15 уровень, Москва
11 августа 2020
Мне больше нравится сравнивать написание программы со строительством дома.