Что такое "изменчивый класс" в ООП? - PullRequest
4 голосов
/ 24 августа 2010

Стандартный класс ... это изменчивый или нет?

Ответы [ 5 ]

12 голосов
/ 24 августа 2010

Это сильно зависит от языка.Некоторые из них даже не допускают изменяемые объекты.

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

См. Определение (im) изменяемое для получения дополнительной информации:

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

6 голосов
/ 24 августа 2010

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

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

3 голосов
/ 24 августа 2010

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

Number num(4);
num.set(5);

, т. е. изменить внутреннее состояние.1007 * Wikipedia :

В объектно-ориентированном и функциональном программировании неизменный объект - это объект, состояние которого нельзя изменить после его создания.Это отличается от изменяемого объекта , который можно изменить после его создания.Объект может быть либо полностью неизменным, либо некоторые атрибуты объекта могут быть объявлены неизменяемыми;например, используя атрибут данных члена const в языке программирования C ++.

0 голосов
/ 24 августа 2010

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

0 голосов
/ 24 августа 2010

«Обычно» (как в обычных языках) является изменяемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...