Вопросы с тегом «oop»

Объектно-ориентированное программирование - это парадигма программирования, использующая «объекты»: структуры данных, состоящие из полей данных и методов вместе с их взаимодействиями.

11
В чем смысл наследования в Python?
Предположим, у вас есть следующая ситуация #include <iostream> class Animal { public: virtual void speak() = 0; }; class Dog : public Animal { void speak() { std::cout << "woff!" <<std::endl; } }; class Cat : public Animal { void speak() { std::cout << "meow!" <<std::endl; } }; void makeSpeak(Animal …

4
Почему PHP Trait не может реализовывать интерфейсы?
Мне интересно, почему PHP Trait (PHP 5.4) не может реализовывать интерфейсы. Обновление от user1460043 answer => ... не может требовать класс, который использует его для реализации определенного интерфейса Я понимаю, что это могло быть очевидным, потому что люди могли подумать, что если a Class Aиспользует a, Trait Tкоторый реализует a …
83 php  oop  interface  traits 

15
Разница между объектом и экземпляром
Я знаю, что такого рода вопросы задавали и раньше , но я все еще чувствую, что ответ слишком неоднозначен для меня (и, соответственно, для некоторых / большинства новичков), чтобы понять. Я пытался научить себя более широким концепциям программирования, чем процедурное и базовое ООП. Я понимаю конкретные концепции ООП (вы создаете …
83 oop 

6
Вызов реализации протокола по умолчанию из обычного метода
Мне интересно, можно ли добиться такого? У меня такая площадка: protocol Foo { func testPrint() } extension Foo { func testPrint() { print("Protocol extension call") } } struct Bar: Foo { func testPrint() { // Calling self or super go call default implementation self.testPrint() print("Call from struct") } } let …
83 swift  oop  protocols  swift2 


7
Точка с запятой после фигурных скобок объявления класса
Почему в классах C ++ стоит точка с запятой после закрывающей фигурной скобки? Я регулярно забываю об этом и получаю ошибки компилятора, а значит, теряю время. Мне это кажется несколько лишним, что вряд ли так. Действительно ли люди делают такие вещи, как: class MyClass { . . . } MyInstance; …
82 c++  class  oop  declaration 

11
Запретить создание новых атрибутов за пределами __init__
Я хочу иметь возможность создать класс (в Python), который после инициализации __init__не принимает новые атрибуты, но принимает модификации существующих атрибутов. Я вижу несколько хитрых способов сделать это, например, используя __setattr__такой метод, как def __setattr__(self, attribute, value): if not attribute in self.__dict__: print "Cannot set %s" % attribute else: self.__dict__[attribute] = …

15
Плохая практика - иметь несколько классов в одном файле?
Раньше у меня был один класс на один файл. Например, car.cs имеет класс car . Но поскольку я программирую больше классов, я хотел бы добавить их в тот же файл. Например car.cs имеет класс автомобиля и дверь класса, и т.д. Мой вопрос подходит для Java, C #, PHP или любого …

7
Примеры практических шаблонов объектно-ориентированного проектирования javascript
Какие шаблоны объектно-ориентированного проектирования вы используете в javascript вашего приложения и почему? Не стесняйтесь размещать код, даже если к нему не прикреплен официальный шаблон дизайна. Я написал много javascript, но не применил много объектно-ориентированных шаблонов к тому, что делаю, и я уверен, что многого не хватает.

12
Можно ли иметь класс только со свойствами для целей рефакторинга?
У меня есть метод, который принимает 30 параметров. Я взял параметры и поместил их в один класс, чтобы я мог просто передать один параметр (класс) в метод. Совершенно нормально в случае рефакторинга передать объект, который инкапсулирует все параметры, даже если это все, что он содержит.
79 c#  oop  refactoring 

12
Почему мы используем интерфейс? Это только для стандартизации? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 2 года назад . Уточните этот вопрос Почему мы используем интерфейс? Это только для стандартизации?
79 oop  interface  ooad 

4
Разница между виртуальным, переопределением, новым и запечатанным переопределением
Я довольно путать между некоторыми понятиями объектно - ориентированного программирования: virtual, override, newи sealed override. Кто-нибудь может объяснить различия? Я совершенно ясно понимаю, что если будет использоваться метод производного класса, можно использовать overrideключевое слово, чтобы метод базового класса был переопределен производным классом. Но я не уверен new, и sealed override.

8
Как следует юнит-тестировать контракт hashCode-equals?
В двух словах, контракт hashCode согласно объекту Java object.hashCode (): Хэш-код не должен меняться, если что-то, влияющее на equals (), не изменится. equals () подразумевает, что хеш-коды == Предположим, что интерес в первую очередь связан с неизменяемыми объектами данных - их информация никогда не меняется после создания, поэтому предполагается, что …
79 java  unit-testing  oop 

4
R: что такое слоты?
Кто-нибудь знает, что такое слот в R? Я не нашел объяснения его значения. Получаю рекурсивное определение: «Функция слота возвращает или устанавливает информацию об отдельных слотах объекта» Помощь будет признательна, спасибо - Аллея
79 oop  r  s4  slot  r-faq 

10
Объектно-ориентированное программирование - как избежать дублирования в процессах, которые немного отличаются в зависимости от переменной
Что-то, что встречается довольно часто в моей текущей работе, заключается в том, что существует обобщенный процесс, который должен произойти, но тогда нечетная часть этого процесса должна происходить немного по-другому в зависимости от значения определенной переменной, и я не Я уверен, что это самый элегантный способ справиться с этим. Я буду …
64 c#  oop 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.