Scala 类
2018-01-15 20:09 更新
Scala类
类是创建对象的蓝图,对象是类的具体实例。
类定义包括字段声明和方法定义。
字段用于存储对象的状态,方法可以提供对字段的访问,并更改对象的状态。
让我们从创建Book对象的蓝图的一个简单示例开始:
class Book
前面的Scala声明对应于此Java声明:
public class Book {
}
定义类后,您可以使用关键字new创建类中的对象。
要创建Book的实例,您可以键入以下内容:
new Book
这同样的效果,如下所示︰
new Book()
例子
以下代码创建一个类来表示形状。
我们定义了一个名为Shape的超类型,它有一个计算形状面积的方法区域。
class Shape {
def area:Double = 0.0
}
以下代码为 Rectangle 和 Circle 创建类。
class Rectangle(val width:Double,val height:Double) extends Shape {
override def area:Double = width*height
}
class Circle(val radius:Double) extends Shape {
override def area:Double = math.Pi*radius*radius
}
每个类都接受一些参数并扩展 Shape ,然后覆盖 Shape 的方法。
子类型保证具有超类型的所有成员。
更改超类的方法的实现称为覆盖。
注意
我们不能改变 Rectangle 的宽度和高度以及 Circle 对象的半径,因为如果该字段是一个val ,Scala只会生成一个getter方法。
这是封装的示例。在封装中,对象的字段只能通过其方法访问。
我们可以编写接受Shape实例的代码,然后将其传递给Rectangle或Circle的实例:
def draw(s:Shape)
现在,考虑对这个函数的两个调用,像这样:
val circle = draw(new Circle(3)) val rectangle = draw(new Rectangle(2,3))
继承保证任何我们可以在Shape实例上调用的方法都将在子类型中定义。
以上内容是否对您有帮助:




更多建议: