Dart 中的一些术语对包括我在内的新手来说有点困惑。
这是我的理解,但不知道对不对。
- 成员:类中的变量,包括实例变量、静态变量、构造函数、静态方法和实例方法。
- 属性:类和实例中成员之间的实例变量。
- 字段:类中除方法外的成员。
- 变量:表示已初始化实例的名称,或尚未初始化但类定义包含动态的实例。
- 函数:所有参数可以超过零的术语,包括方法。
- 方法:在类中定义和声明的函数,包括构造函数、静态方法。
- 对象:Dart 中除连词(if、while、for ...)和形容词(static、final ...)之外的所有术语
其次,是否有术语区分类中的属性(尚未初始化)和实例中的属性(已初始化)?也就是说,在已初始化变量和未初始化变量之间。
第三,Dart有类层次图吗?我找到了一个非常简单的,但不像其他语言那样。
第四,我已经猜到句子(A)是从句子(B)派生出来的。对吗?
(A) int x = 1;
(B) var x = int(1); //int() is the default constructor of class int. All the same to String, double, Map, List
...
我想对几位学习 Dart 的韩国学生表示感谢。
最佳答案
- 成员:类中的变量,包括实例变量、静态变量、构造函数、静态方法和实例方法。
- 成员有:字段(类中声明的非静态变量,属性同字段),方法
(字段/属性通常也称为属性,但我认为在 Web 开发中应该避免这种情况,因为属性通常指的是 HTML 属性)。 - 变量不被视为成员,除非它们是字段
- 我不会考虑 Dart 中的static 字段(属性/函数)成员(但我对此也不确定)。它们有时被称为类成员 或静态成员,但在 Dart 中,类仅作为命名空间,这些变量函数不像成员一样。
- 构造函数不是成员
- 成员有:字段(类中声明的非静态变量,属性同字段),方法
- 属性:类和实例中成员之间的实例变量。
- 据我所知,属性与字段相同。通常属性仅指 getters/setters,但在 Dart 中它们是相同的,至少在运行时是这样(getters/setters 是为所有字段自动创建的)
- 我不确定这里的
class
是什么意思。类通常是指静态(见上文) - getters/setters(可以像字段一样访问的函数)通常被视为属性
- 字段:类中除方法外的成员。
- 我只会调用实例变量 fields 和静态变量 static fields
- 变量:表示已初始化实例的名称,或尚未初始化但类定义包括动态的实例。
- 变量是声明的标识符,无论在何处(库、类、实例、函数、方法),它都引用内存地址。
- 尚未初始化的变量引用了无效的内存地址('null')。
- 函数:所有参数可以超过零的术语,包括方法。
- 参数的数量无关紧要。
- 可以使用
()
或(arg1, arg2, ...)
调用函数
- 类中的非静态函数通常称为方法,而不是函数。
- 函数在库级别的类之外,或者在方法或函数内(不确定静态方法在 Dart 中是指函数还是方法)。<
void someFunction() => doSomething();
void someFunction(int a) { doSomething(); }
class A {
void someMethod() {
var anonymousFunction = () {
doSomething();
};
anonymousFunction();
}
}
- 方法:在类中定义和声明的函数,包括构造函数、静态方法。
- 参见上面关于静态方法的内容
- 构造函数不是方法,构造函数是构造函数;-)
- 对象:Dart 中除连词(if、while、for ...)和形容词(static、final ...)之外的所有术语
- 只有类的实例是对象
var a = new A();
new A();
创建 A
的实例。 a
引用 a
(对象)的实例。
var x = 5;
创建 int
的实例,x
引用此实例(对象)。
关于function - Dart 中的类术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25904454/