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