《Scala教程》 3.Scala Classes

作者:Jakob Jenkov 更新时间:2015-05-23

Scala是一种面向对象的语言。 这意味着您可以在Scala中定义类,并实例化这些类的对象。我希望您在阅读本文时了解面向对象编程的基础。

Scala类是Scala对象的模板。这就是说,一个类定义了该类所拥有的信息以及它所展现的行为(方法)。一个类可以包含有关以下信息:

  • 字段
  • 构造器
  • 方法
  • 超类(继承)
  • 类实现的接口
  • 等等

在本文中,我将仅关注字段,构造函数和方法。Scala类的其他方面将在单独的文本中介绍。

基本的类定义

这是Scala中的简单类定义:

class MyClass {

}

这个类不是很有趣。在本文后文中,我将添加更多内容。

字段

字段是可以在整个对象内部访问的变量。这与局部变量相反,局部变量只能在声明它们的方法内部访问。这是一个简单的字段声明:

class MyClass {
    var myField : Int = 0;
}

该声明定义一个Int类型的字段并将其初始化为值0。

Scala的类型推断可以根据分配给它的值来确定变量的类型。因此,您实际上可以在上面的字段声明中省略类型,如下所示:

class MyClass {
    var myField = 0;
}

由于默认情况下0假定为Int,因此Scala编译器可以根据分配给它的值0推断myField的类型。

构造器

在scala中,构造函数的声明如下:

class MyClass {
    var myField : Int = 0;

    def this(value : Int) = {
        this();
        this.myField = value;
    }
}

本示例定义一个构造函数,该构造函数采用单个参数,并将其值分配给字段myField。

注意参数与构造函数主体中 { 和参数之间的等号 = 。构造函数中必须存在此等号。

还要注意对无参构造函数 this(); 的显式调用。除无参构造函数外,所有构造函数都必须始终在其主体的开头调用另一个构造函数。

方法

在Scala中,类中的方法定义如下:

class MyClass {
  var myField = 0;

  def getMyField() : Int = {
    return this.myField;
  }

}

上面的示例定义了一个名为getMyField的方法。返回类型Int在方法名称之后声明。在 { } 内部,声明了方法主体。 该方法当前仅返回myField字段。注意Int和 { 之间的 = 符号。返回值的方法应该在该处带有等号。

我将在单独的文章中更详细地介绍方法和函数。在这里,我只是向您展示了如何在类内部声明方法。

这是一种不返回任何内容,而是修改对象的内部状态(字段)的方法。 请注意,此addToMyField()方法没有等号,也没有指定返回类型。

class MyClass {
    var myField = 0;

    def getMyField() : Int = {
        return this.myField;
    }

    def addToMyField(value : Int) {
        this.myField += value;
    }
}

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Scala教程》 3.Scala Classes

FavoriteLoading添加本文到我的收藏
  • Trackback 关闭
  • 评论 (0)
  1. 暂无评论

return top