Автор: Widowmaker1984

Вопрос 27, 28 (классы и объекты)

"Дайте определение понятию «класс»."
"Что такое поле/атрибут класса?"

1. Java является объектно-ориентированным языком, поэтому такие понятия как "класс" и "объект" играют в нем ключевую роль. Любую программу на Java можно представить как набор взаимодействующих между собой объектов.

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

2. Класс представляет новый тип, поэтому мы можем определять переменные, которые представляют данный тип.В Java принято начинать имена класса с большой буквы. Класс определяется с помощью ключевого слова сlass:


class Person{
}

скрытый текст2.1. В данном случае класс называется Person. После названия класса идут фигурные скобки, между которыми помещается тело класса - то есть его поля и методы. Вся функциональность класса представлена его членами: полями (полями или переменными экземпляра называются переменные, определенные внутри класса), которые хранят состояние объекта, и методами, которые определяют поведение объекта. Методы и переменные внутри класса являются членами класса.

2.2. В классе могут быть несколько переменных и методов. Например, класс Person, который представляет человека, мог бы иметь следующее определение:


class Person{
String name; // имя
int age; // возраст
void displayInfo(){
System.out.printf("Name: %s Age: %d", name, age);
}
}

скрытый текст2.3. В классе Person определены два поля: name представляет имя человека, а age - его возраст. И также определен метод displayInfo, который ничего не возвращает и просто выводит эти данные на консоль.

2.3.1. Java автоматически присвоит полям значения по умолчанию. Например, для int это будет значение 0. Но не всегда значения по умолчанию подойдут в вашем классе. Если вы создали переменную для описания количества лап у кота, логично сразу присвоить значение 4. Считается хорошей практикой сразу присваивать нужные значения полям класса, не полагаясь на систему.

3. Новый объект (или экземпляр) создаётся из существующего класса при помощи ключевого слова new:

Cat barsik = new Cat(); // создали кота из класса Cat

3.1. Слово Cat используется дважды, но оно имеет разный смысл. Слева от оператора присваивания определяется имя переменной и его тип Cat. В правой части выражения происходит выделение памяти для нового экземпляра класса Cat и инициализируется экземпляр. Оператор присваивания присваивает переменной ссылку на только что созданный объект. Имена объектов не нужно начинать с большой буквы, как у класса. Если имя экземпляра класса состоит из нескольких слов, то используется "верблюжья" нотация, когда все слова, кроме первого, пишутся с большой буквы — superBlackCat.

3.2. Каждый объект содержит собственные копии переменных экземпляра. Вы можете создать несколько объектов на основе класса и присваивать разные значения их полям. При этом изменения переменных экземпляра одного объекта никак не влияют на переменные экземпляра другого объекта.

Комментарии


Лучшее   Правила сайта   Вход   Регистрация   Восстановление пароля

Материалы сайта предназначены для лиц старше 16 лет (16+)