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) { ...