#dart
#dart
Вопрос:
У меня довольно простой вопрос. Как я могу использовать переменные из разных классов в dart?
class ContainsVariable {
var variable = 1;
}
class DoesNotContainVariable {
var useVariable = variable 1; // This gives me an error saying:
// Undefined name 'variable'
}
Ответ №1:
Наличие собственной области видимости является очень фундаментальной особенностью классов в объектно-ориентированном программировании, соответствующей принципам ООП.
Также обратите внимание, что из вашего кода кажется, что вы неправильно поняли идею создания экземпляра в объектно-ориентированном программировании, поскольку вы пытаетесь установить переменную экземпляра без создания экземпляра класса. Я настоятельно рекомендую изучить эту тему, чтобы получить больше понимания.
При этом, безусловно, существует множество способов достичь того, чего вы хотите. Поскольку ваш пример кода очень общий, я не совсем уверен, что вы пытаетесь сделать, поэтому я приведу 2 примера, которые могут быть полезны:
Вариант 1 — статическая переменная-член
Вы можете создать статический элемент (уровня класса), который будет одинаковым для всех объектов.
class ContainsVariable {
static var variable = 1;
}
class DoesNotContainVariable {
var useVariable = ContainsVariable.variable 1; // here, you are using a
// static (class) variable,
// not an instance variable.
// That is why you are using
// the class name.
}
Вариант 2 — создание экземпляра
Вы можете создать экземпляр класса — создав объект этого класса — и получить доступ к члену этого объекта. Обратите внимание, что здесь нет статического оператора.
class ContainsVariable {
var variable = 1;
}
class DoesNotContainVariable {
var instanceOfContainsVariable;
var useVariable;
DoesNotContainVariable(){ // this is a constructor function
var instanceOfContainsVariable = new ContainsVariable();
useVariable = instanceOfContainsVariable.variable 1;
}
}