РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗goTsTmClL6 120 of 129 menu

Задачи на ООП в Go. Часть 6

Дан следующий код:

type User struct { name, surn string } func (u *User) notEmpty(s string) bool { return len(s) > 0 } func (u *User) SetName(name string) { if u.notEmpty(name) { u.name = name } } func (u *User) GetName() string { return u.name } type Employee struct { User } func (e *Employee) SetSurn(surn string) { if e.notEmpty(surn) { e.surn = surn } } func (e *Employee) GetSurn() string { return e.surn }

Сделайте метод notEmpty неэкспортируемым и доступным только внутри пакета (он уже неэкспортируем — объясните почему).

Сделайте интерфейс Figure с методами Area() и Perimeter(). Реализуйте его для Circle, Rectangle и Square.

Добавьте в User метод IncreaseRevenue через интерфейс. Реализуйте его в Employee и Student (embedding).

Сделайте функцию printFigure(f Figure), выводящую площадь и периметр.

Сделайте struct Num с полями Num1 и Num2. Инициализируйте 2 и 3, выведите сумму.

Сделайте struct Num с неэкспортируемыми полями num1, num2 и геттерами GetNum1(), GetNum2().

Сделайте метод (n Num) Sum() int, возвращающий сумму полей.

Дан следующий код:

type Math struct{} func (m Math) Sum(a, b int) int { return a + b } func (m Math) Product(a, b int) int { return a * b }

Переделайте методы в функции пакета Sum(a, b int) и Product(a, b int).

Дан следующий код:

type ArraySumHelper struct{} func (h ArraySumHelper) GetSum1(arr []int) int { return h.getSum(arr, 1) } func (h ArraySumHelper) getSum(arr []int, power int) int { return 0 }

Сделайте методы Sum1Sum4 и вынесите общую логику в неэкспортируемый метод.

Сделайте счётчик с неэкспортируемым полем count и методом Value() int для чтения значения.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить