新手求助,flutter中dart类创建和方法执行。

发布于 1周前 作者 zlyuanteng 来自 Flutter

代码如下

  Test().change();
  Test();
}

class Test { factory Test() => Test.print(); var a = 1; change() { a = 2; print(‘change$a’); }

Test.print() { print(‘print$a’); } }

为什么会出现这样的结果

print1
change2
print1

最好能详细讲解一下,或者给出相关关键词,我自己去查资料


新手求助,flutter中dart类创建和方法执行。

更多关于新手求助,flutter中dart类创建和方法执行。的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

13 回复

没看出什么会让人困惑的点,明显是每次创建 Test 时打印 print1 ,一共两次, 调 change 时打印了 change2 ,

更多关于新手求助,flutter中dart类创建和方法执行。的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


不如楼主你说说你原本希望是啥结果,这样大家就知道你哪里不清楚了。
我和一楼一样,觉得没啥困惑点。

忘记说了,不好意思。就 change 先执行,想着是 a 一局被修改成 2 了,想着 print()打印的应该是 a=2 。

还有个问题,使用了工厂模式,他是会直接调用一次吗?就像第一次打印。我的理解是,main 中 1.change()。2 是 print().只有两个打印。

1:factory Test() => Test.print();
这里换成
<br>factory Test(){<br> Test.print();<br>}<br>
能让你更好理解。


2:
Test().change();
等价于:
<br>var t = Test(); // 就是你定义的 factory<br>t.change();<br>

这么拆解下来,能理解为什么先打印“print1”了吧?

理解,感谢回复。那为什么 a 的值会改不了,第一次是 1 ,因为初始化时是 1 ,然后 change 方法,a 不是应该是 2 吗?



<br>print1<br>change2<br>print1 &lt;------- 你是问这里为什么是 1 ?你认真的?<br>

认真,真的理解不了这个。a 不是类里面的变量吗? change 方法改变了,为什么调用了,还是不行。还是说每次调用,等于 new Test()这样调用?

9 天了,虽然没人回复,但我想楼主应该已经解决了吧,或者已经放弃编程了,
两个 Test()是生成了两个 Test 类的对象, 分别包含不同的 a ,第一个 Test 中的 a 确实改成 2 了, 但第二个 Test 中的 a 还是初始化时给的 1 ,

理解,感觉半懂。感谢

这是成员变量,不是类变量,更不是捕获局部变量。成员变量自然每次创建都会是初始化的值

懂了,谢谢你。

新手你好!关于Flutter中Dart类的创建和方法执行,这里给你一个简单的指南:

在Flutter中,Dart是主要的编程语言,类的创建和方法执行是编程的基础。

  1. 创建Dart类: Dart类使用class关键字定义。一个基本的类结构如下:

    class MyClass {
      // 类属性
      String name;
    
      // 构造函数
      MyClass(this.name);
    
      // 类方法
      void printName() {
        print("Name: $name");
      }
    }
    
  2. 实例化类并调用方法: 要使用上面定义的类,你需要实例化它并调用其方法。例如:

    void main() {
      // 创建MyClass的实例
      MyClass myObject = MyClass("Hello World");
    
      // 调用printName方法
      myObject.printName();
    }
    

    上述代码将输出Name: Hello World

  3. 注意事项

    • 确保类和方法名使用驼峰命名法(camelCase)。
    • 构造函数可以用来初始化类的属性。
    • 方法中可以使用print函数来输出信息到控制台。
  4. 进一步学习: Flutter和Dart有丰富的文档和教程,推荐阅读Flutter官方文档Dart官方文档以获取更多信息。

希望这能帮助你理解Dart类的创建和方法执行。如果还有其他问题,欢迎继续提问!

回到顶部