Что выведет код Junior ООП в C# обновлено
Статическое поле общее для всех объектов
Вопрос
Что выведет программа (.NET 8)? По строке на каждый вывод.
var a = new Counter();
var b = new Counter();
a.Inc(); b.Inc(); b.Inc();
Console.WriteLine(Counter.Total);
Console.WriteLine(a.Mine + " " + b.Mine);
class Counter
{
public static int Total;
public int Mine;
public void Inc() { Total++; Mine++; }
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 3, 1 2. Статическое поле одно на тип, все экземпляры увеличивают одну переменную: 3.
Что выведет
3
1 2
Разбор
Статическое поле одно на тип, все экземпляры увеличивают одну переменную: 3. Поле экземпляра у каждого объекта своё: у a 1, у b 2.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Порядок статических и обычных конструкторов
Следующий вопрос
virtual, override и new в цепочке
Термины по теме
Ещё по теме «ООП в C#»
- Абстрактный класс или интерфейс
- protected internal и private protected
- Методы интерфейса по умолчанию
- Явная реализация интерфейса
- Банковские счета: инкапсуляция и инварианты
- Фигуры: полиморфная площадь
- Чем new отличается от override
- new и override при вызове через базовый тип