Класс служит образцом для создания одного или нескольких объектов на основе конкретной реализации этого класса.Хорошей аналогией является форма для нарезки сдобного печенья.Атрибуты формы (форма, размер, высота) определяют файлы cookie, которые вы можете вырезать вместе с ним.У вас есть только одна форма (класс), но вы можете создать с ее помощью множество файлов cookie (экземпляров этого класса, т. Е. Объектов).Все куки основаны на этой конкретной форме.Точно так же все объекты, которые являются экземплярами этого класса, идентичны по своим атрибутам.
Classes = data и методы (специальные функции), всеСофистически связаны друг с другом.
Классы определяют, каково их внутреннее содержание (данные) + какие работа (методы) они могут выполнять.Контент основан на переменных, которые содержат различные типы чисел, строки, константы и другие более сложные методы content +, которые представляют собой фрагменты кода, которые (при выполнении) выполняют некоторые вычислительные операции с различными данными.
Все методы , определенные в классе, имеют Определение - которое определяет имя метода + какие (если есть) данные, которые методы принимают для обработки и что (если таковые имеются) данные, которые методы выкладывают для обработки кем-то другим.Все методы, определенные в классе, также имеют Реализацию - фактический код, обеспечивающий обработку - это внутренние методы методов. Внутри есть код, который обрабатывает данные, а также может запрашивать другие методы для подпроцессинга.данные.Таким образом, класс - очень благородный тип в программировании.
Если вы понимаете вышесказанное, вы поймете, что такое протокол.
Протокол - это набор из одного или нескольких объявлений метода иэтот набор имеет имя и представляет протокол.Я говорю объявления, потому что методы, которые вместе определены определенным протоколом, не имеют никакого определенного кода реализации. .Единственное, что существует, это объявленные их имена.Посмотрите выше - в классе вы всегда определяли не только методы, которые имеет класс, но и то, как эта работа будет выполняться.Но методы в протоколе не имеют никакой реализации.
Давайте снова проведем аналогию с реальной жизнью, это помогает.Если вы приедете ко мне домой, чтобы прожить здесь неделю, вам нужно будет придерживаться моего протокола TidyUp.Протокол TidyUp определяет три метода - мыть посуду каждый день, убирать комнату и проветривать свежий воздух.Эти три метода, я их определяю .. вы что-то будете делать.Но мне абсолютно все равно, как должна выглядеть реализация, я просто номинально определяю методы.Вы будете реализовывать их, т.е. вы определяете, как будут выглядеть детали этой работы (эти методы).Я просто говорю: придерживайтесь моего протокола и реализуйте его так, как считаете нужным.
Финал - Вы можете объявить некоторый класс.Вы также можете отдельно объявить протокол.И затем вы можете объявить, что этот класс, в дополнение к его собственным методам, будет принимать или придерживаться этого протокола, т.е.класс реализует методы протокола.