Вы можете попробовать это:
Text x = Text('123123');
Text y = Text(x.data);
print(y.data);
String val = Text('xxxx').data;
print(val);
Однако, если значение для виджета Text
связано с переменной состояния, вы можете просто инициализировать его уже.
Text newWidgetText = Text(_stateValue);
, Если Вы не делаете конструктора, , пустой конструктор по умолчанию автоматически создается .
, Если какой-либо конструктор явно не называет супер или этого конструктора как его первый оператор, , вызов к супер () автоматически добавляется .
Всегда.
Если Вы не используете супер (...) вызовы конструктора пустой конструктор его родителя.Примечание: Это делает это на всем Вы классы, даже те, которые расширяют Объект.
Это не наследовалось, подклассы не получают тех же конструкторов с теми же аргументами. Однако можно добавить конструкторов, которые вызывают одного из конструкторов суперкласса.
Конструкторы не наследованы.
кроме того, инициализация полей сделана виртуальной машиной, не конструктором по умолчанию. Конструктор по умолчанию просто вызывает конструктора по умолчанию суперкласса, и конструктор по умолчанию Объекта пуст. Положительная сторона этого дизайна - то, что нет никакого пути к никогда неинициализированным полям доступа.
При обеспечении конструктора затем, Java не генерирует Вас пустой конструктор по умолчанию. Таким образом, Ваш производный класс только сможет вызвать Вашего конструктора.
конструктор по умолчанию не инициализирует Ваши частные переменные к значениям по умолчанию. Доказательство - то, что возможно записать класс, который не имеет конструктора по умолчанию и инициализировал его членов парламента, не занимающих официального поста к значениям по умолчанию. Вот пример:
public class Test {
public String s;
public int i;
public Test(String s, int i) {
this.s = s;
this.i = i;
}
public Test(boolean b) {
// Empty on purpose!
}
public String toString() {
return "Test (s = " + this.s + ", i = " + this.i + ")";
}
public static void main (String [] args) {
Test test_empty = new Test(true);
Test test_full = new Test("string", 42);
System.out.println("Test empty:" + test_empty);
System.out.println("Test full:" + test_full);
}
}