Dart + Flutter创建新对象

问题描述 投票:0回答:1

在dart中,我可以通过两种方式创建对象并调用方法:

[第一个:

ClassA a = new ClassA();
a.methodA();

第二个:

new classA().methodA();

继续执行此操作是否有负面影响?假设我想在另一个类中从ClassA调用4-5个方法,它将产生任何负面影响f.x。第二种方式来提高性能?

flutter dart
1个回答
0
投票

这仍然是完全相同的对象创建过程,只是一个简单的构造函数调用。唯一的区别是,在一种情况下,您给结果命名(a),在另一种情况下则没有。

这不像是通过不将对象保存到变量来节省内存。在这两种情况下,对新ClassA对象的引用都必须存在somewhere(无论是否明确命名),否则methodA将如何知道要对哪个对象进行操作?

但是,两者之间有区别:

ClassA a = new ClassA()
a.methodA()
a.methodB()
a.methodC()
a.methodD()
a.methodE()

new ClassA().methodA()
new ClassA().methodB()
new ClassA().methodC()
new ClassA().methodD()
new ClassA().methodE()

在第一种情况下,您正在重用同一对象a(来自单个构造函数调用)作为所有5个实例方法调用的目标。在后一种情况下,您有5个不同的对象(来自5个独立的构造函数调用),每个对象都是一个方法调用的目标。这些显然可以具有非常不同的语义。

© www.soinside.com 2019 - 2024. All rights reserved.