Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.02.2015
Сообщений: 31
1

Непонятный код в учебнике

01.04.2015, 20:11. Показов 688. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть такая немного странная книжка "Изучаем C#, 3-издание, Стиллмен, Грин", там пример демонстрирующий virtual-override. Вор взламывает сейф, наследуя методы слесаря.

Строка 27 ставит меня в тупик: public Jewels Open(string combination).
Что это вообще? Как это понимать и где про это почитать?

Это один вопрос. А второй такой. В этом примере намеренно были опущены слова virtual-override. По-идее, ReturnContents грабителя скрывает ReturnContents слесаря. Драгоценности должны уплыть к вору. Но в этом примере получается наоборот! Почему?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Owner owner = new Owner();
            Safe safe = new Safe();
            JewelThief jewelThief = new JewelThief();
            jewelThief.OpenSafe(safe, owner);
            Console.ReadKey();
        }
    }
    class Jewels
    {
        public string Sparkle()
        {
            return "Sparkle, sparkle!";
        }
    }
    class Safe
    {
        private Jewels contents = new Jewels();
        private string safeCombination = "12345";
        public Jewels Open(string combination)
        {
            if (combination == safeCombination)
                return contents;
            else
                return null;
        }
        public void PickLock(Locksmith lockpicker)
        {
            lockpicker.WriteDownCombination(safeCombination);
        }
    }
    class Owner
    {
        private Jewels returnedContents;
 
        public void ReceiveContents(Jewels safeContents)
        {
            returnedContents = safeContents;
            Console.WriteLine("Thank you for returning my jewels! " + safeContents.Sparkle());
        }
    }
    class Locksmith
    {
        public void OpenSafe(Safe safe, Owner owner)
        {
            safe.PickLock(this);
            Jewels safeContents = safe.Open(writtenDownCombination);
            ReturnContents(safeContents, owner);
        }
        private string writtenDownCombination = null;
        public void WriteDownCombination(string combination)
        {
            writtenDownCombination = combination;
        }
        public void ReturnContents(Jewels safeContents, Owner owner)
        {
            owner.ReceiveContents(safeContents);
        }
    }
    class JewelThief : Locksmith
    {
        private Jewels stolenJewels = null;
        public  void ReturnContents(Jewels safeContents, Owner owner)
        {
            stolenJewels = safeContents;
            Console.WriteLine("I'm stealing the contents! " + stolenJewels.Sparkle());
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2015, 20:11
Ответы с готовыми решениями:

Непонятный мне код
Копался в разных сорцах и наткнулся на это xD IPAddress ip = null; ip...

Непонятный код события
Это событие, которое присутствует в нескольких классах проекта. public class...

Непонятный код?
Подскажите, что выполняется в следующем коде и каким образом? int main() { char buf; ...

Непонятный код
Нашел вот в книжке следующий код: type RRGBColor = record Red:byte; Green:byte; ...

2
309 / 317 / 119
Регистрация: 29.10.2011
Сообщений: 1,006
01.04.2015, 20:22 2
Цитата Сообщение от kerg archer Посмотреть сообщение
public Jewels Open(string combination).
public - атрибут доступа
Jewels - возвращаемое значение (это возможно смутило. здесь могло бы быть void или int и т.п.)
Open - имя
1
0 / 0 / 0
Регистрация: 19.02.2015
Сообщений: 31
01.04.2015, 20:35  [ТС] 3
Ага, вот оно что.
А по второму вопросу?
0
01.04.2015, 20:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2015, 20:35
Помогаю со студенческими работами здесь

Непонятный код
Добрый день! Столкнулся с такой проблемой: Есть лэндинг, формы заявки ведут на mailer.php Нужно...

Непонятный код
Вот есть такой кусок require_once"templete/header.tpl"; if(isset($p)):...

Непонятный код
#define HEX__(n) 0x##n##LU #define B8__(x) ((x&0x0000000FLU)?1:0)\ ...

НЕпонятный код
Всем привет опять.Ребят вот мой вопрос.Как можно си код преобразовать таким образом,чтобы там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru