oop- все статьи тега


Java: когда использовать атрибуты, когда использовать параметры метода?

Я попытался погуглить и поискать этот вопрос, но почему-то не смог найти ничего относящегося к нему. Мне интересно, есть ли руководство bbest-practice о том, когда использовать атрибуты в классе, а когда нет, а вместо этого использовать параметры для отдельных методов. Многие случаи мне понятны, например public class Dog { private name; public setName(...) {....} } Но иногда мне не совсем понятно, что лучше использовать. Например, следующее, либо использовать: public class calculation ...

Наследование C++ и включает в себя

Я не новичок в C++, однако я также определенно не эксперт... и все же:) Я пытаюсь понять, как работает наследование. У меня есть класс, производный от базового класса: class Base {} И #include "Base.h" class Derived : public Base {} В моем базовом классе я пытаюсь создать статический метод, который возвращает указатель на производный объект класса: #include "Derived.h" class Base { static Derived* getDerived(); } Теперь я думал, что, поскольку это был статический член, я мог б ...

Как вызвать метод enum basis, по какому типу он передается?

У меня есть ниже перечисление, как показано ниже, из которого мне нужно вызвать его соответствующий метод, основанный на том, какой тип события это. public enum EventType { EventA { // cannot call this method public Map<String, Map<String, String>> execute(String eventMapHolder) { final Map<String, String> holder = parseStringToMap(eventMapHolder); if (holder.isEmpty() || Strings.isNullOrEmpty(holder.get("m_itemId"))) { return ImmutableMap.of(); ...

Как печатать атрибуты класса без создания экземпляра объекта в Python?

Согласно этому сообщению, я могу перечислить переменную экземпляра, обратившись к str(self.__dict__), но я не могу понять, как это сделать с переменными класса. Вот чего я хочу избежать: # I would like to print out class attributes by overriding `__str__` for that class. class circle(object): radius = 3 def __str__(self): # I want to avoid instantiation like this. return str(circle.radius) print(circle()) # I want to avoid instantiation. why can't I just print(circle) ...

Ruby-как проверить наличие нулевой или пустой строки из консоли (stdin)

Я очень новичок в Руби, поэтому, пожалуйста, потерпите меня... В тексте на Ruby есть пример кода, который делает это: str = gets exit if str.nil? || str.empty? str.chomp! temp, scale = str.split(" ") Мои запросы следующие: Учитывая, что gets будет возвращаться только до и включая cr зачем тестировать пустую строку? Если вы проверяете следующее: puts nil.to_s.empty? puts "".to_s.empty? puts "".length #the empty string : equates to 0 puts nil.to_s.length #the 'to stri ...

Может ли Алмазная проблема быть действительно решена?

Типичной проблемой в ОО-программировании является Алмазная задача. У меня есть родительский класс A с двумя подклассами B и C. A имеет абстрактный метод, B и C реализуют его. Теперь у меня есть подкласс D, который наследует B и C. проблема алмаза теперь заключается в том, какую реализацию должен использовать D, одну из B или одну из C? Люди утверждают, что Java не знает проблемы алмазов. У меня может быть только множественное наследование с интерфейсами, и поскольку они не имеют реализации, у ...

Следует ли вообще помещать константы в интерфейс?

Я знаю, что размещение констант в интерфейсе обычно считается плохой практикой, но... Я использую шаблон наблюдателя для трансляции событий от объекта к слушателю. interface DownloadListener { public void sendEvent(int eventId); } Вещатель использует постоянные ints, чтобы сообщить слушателю, какое событие произошло. class DownloadTask { public static final int EVENT_DOWNLOAD_STARTED = 1; public static final int EVENT_DOWNLOAD_COMPLETED = 2; //should these go here? Do ...

Свойства по умолчанию в VB.NET?

В первые дни .NET, я полагаю, что был атрибут, которым можно было украсить класс, чтобы указать свойство по умолчанию. Согласно некоторым статьям, которые я нашел, это, кажется, было вырвано из рамок в какой-то момент, потому что это было немного запутано, и я могу видеть, как это происходит. И все же, есть ли другой способ получить функциональность, которую он предоставляет? Это выглядело примерно так: <DefaultProperty("Value")> _ Public Class GenericStat ... Public Prope ...

Как реализовать абстрактный класс в laravel 5.3

Я следовал курсу Laracasts Api, и в какой-то момент я получаю эту ошибку Whoops, looks like something went wrong. ReflectionException in Container.php line 809: Class AppAcmeTransformersLessonTransformer does not exist Я создал абстрактный класс в приложении Acme TransformersTransformer.php <?php namespace AppAcmeTransformers; abstract class Transformer { //transformCollection the lessons data and return only requried fields public function transformCollection($items ...

Как включить макросы в Python?

Это похожий вопрос, но моя цель-не производительность, а читаемость. Предположим, у меня есть разные Behaviours, и они разделяют повторяющуюся функцию f1(). from abc import ABCMeta, abstractmethod class Behavior: __metaclass__ = ABCMeta @abstractmethod def run(self): pass class Behavior1(Behavior): def __init__(self, data): self.data = data def run(self): def f1(): print(self.data*localVar) localVar = 1. f1() clas ...

позволяет ли VB6 ссылаться на экземпляр формы как на синглет, просто называя его тип данных? или что происходит?

Я вижу код типа "Unload frmMain", где из того, что я могу сказать frmMain-это имя типа/модуля, и я не думаю, что это также может быть одновременно имя переменной типа" ObjFrmMain". Тем не менее, эта команда успешно побуждает рассматриваемую форму к выгрузке. Так используется ли тип данных в качестве псевдонима для его единственного существующего экземпляра? Или, может быть, для всех его экземпляров? Делает ли VB6 аналогичные вещи с типами данных, отличными от производных от Форма? ...

В чем разница между методом и функцией?

Может ли кто-нибудь дать простое объяснение методов против функций в контексте ООП? ...

PHP class extends не работает почему и это как правильно расширить класс?

Привет, я пытаюсь понять, как inherteince работает в PHP с использованием объектно-ориентированного программирования. Основной класс-компьютер, наследующий класс-мышь. Я расширяю компьютерный класс с помощью класса мыши. Я использую __construct в каждом классе, когда я создаю класс, я использую тип pc сначала и если у него есть мышь после. По какой причине компьютер возвращает null? почему это так? class Computer { protected $type = 'null'; public function __construct($type) { ...

переопределенный метод вызывается дважды

У меня есть фрагмент кода <?php abstract class Testing{ public abstract function tester(); public function testing(){ $this->tester(); } } class Test extends Testing{ public function tester(){ echo 'test'; } } $t = new Test(); $t->testing(); Предполагается, что у меня есть выход test, но выход, который я получаю, - это testtest? Почему tester() вызывается дважды? Ссылка ссылка на ideon ...

Сериализация / десериализация вложенных объектов в JSON с типом в PHP

У меня есть классы, которые расширяют абстрактный класс. Мне нужно создать экземпляры этих классов через строку-предпочтительно JSON. Многие объекты являются вложенными, а многие свойства являются частными. Мне нужен способ: Создайте строку JSON полного объекта (с частными свойствами и вложенными объектами - с их частными свойствами). Создайте новый объект из строки JSON с правильным типом и всеми вложенными объектами. Я думаю, что это нужно быть рекурсивным. Я использую пространства имен, ...

Передача данных между контроллерами

Я новичок в iOS и Objective-C и всей парадигме MVC, и я застрял со следующим: у меня есть представление, которое действует как форма ввода данных, и я хочу дать пользователю возможность выбрать несколько продуктов. Продукты перечислены на другом представлении с UITableViewController и я включил несколько вариантов. мой вопрос в том, как я могу передавать данные из одного представления в другое? Я буду держать выбор на UITableView в массиве, но как мне тогда передайте это обратно в предыдущее п ...

Интерфейс против абстрактного класса (общий OO)

недавно у меня было два телефонных интервью, где меня спросили о различиях между интерфейсом и абстрактным классом. Я объяснил им все, что мог придумать, но, похоже, они ждут, чтобы я упомянул что-то конкретное, и я не знаю, что это такое. из моего опыта, я думаю, справедливо следующее. Если я упускаю важный момент, пожалуйста, дайте мне знать. интерфейс: каждый способ объявленный в интерфейсе должен быть реализован в подклассе. В интерфейсе могут существовать только события, делегаты, свойст ...

Какова цель самости?

какова цель self слово в Python? Я понимаю, что это относится к конкретному объекту, созданному из этого класса, но я не могу понять, почему он явно должен быть добавлен к каждой функции в качестве параметра. К примеру, в Ruby я могу сделать это: class myClass def myFunc(name) @name = name end end который я понимаю, довольно легко. Однако в Python мне нужно добавить self: class myClass: def myFunc(self, name): self.name = name кто-нибудь может мне помочь? Это не ...

В чем разница между старым стилем и новым стилем классы в Python?

в чем разница между старым стилем и новыми классами стилей в Python? Есть ли когда-нибудь причина использовать классы старого стиля в эти дни? ...

Когда следует использовать класс против структуры в C++?

в каких ситуациях лучше использовать struct против class в C++? ...