pÁngel C e ZapataEducación i Infantil 3q4Ac5RjLS

Clases

En Scala, las clases son plantillas estáticas que pueden ser instanciadas por muchos objetos en tiempo de ejecución. Aquí se presenta una clase la cual define la clase Point:

class Point(xc: Int, yc: Int) {
  var x: Int = xc
  var y: Int = yc
  def move(dx: Int, dy: Int) {
    x = x + dx
    y = y + dy
  }
  override def toString(): String = "(" + x + ", " + y + ")";
}

Gel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkT

Esta clase define dos variables x e y, y dos métodos: move y toString. El método move recibe dos argumentos de tipo entero, pero no retorna ningún valor (implícitamente se retorna el tipo Unit, el cual se corresponde a Gel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkTvoid en lenguajes tipo Java). toString, por otro lado, no recibe ningún parámetro pero retorna un valor tipo String. Ya que toString sobreescribe el método toStringGel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkT predefinido en una superclase, tiene que ser anotado con override.

Summerlight Blauer Señoras Mujer Cascos Chaqueta BostonUsa c3S4RjLAq5

Las clases en Scala son parametrizadas con argumentos constructores (inicializadores). En el código anterior se definen dos argumentos contructores, xc y yc; ambos son visibles en toda la clase. En nuestro ejemplo son utilizados para inicializar las variables x e yGel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkT.

Para instanciar una clase es necesario usar la primitiva new, como se muestra en el siguiente ejemplo:

Gel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkT
object Classes {
  def main(args: Array[String]) {
    val pt = new Point(1, 2)
    println(pt)
    pt.move(10, 10)
    println(pt)
  }
}

El programa define una aplicación ejecutable a través del método main del objeto singleton Gel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkTClasses. El método main crea un nuevo Point y lo almacena en pt. Note que valores definidos con la signatura val son distintos de los definidos con varRaquelCantando Bajo Lluvia El De Vestidor La XZwPuiTOk (véase la clase Gel Kayano 22 Trainers Asics T5m2n Running Hombre Nyc Sneakers XuiOZPkTPoint arriba) ya que los primeros (val) no permiten reasignaciones; es decir, que el valor es una constante.

Aquí se muestra la salida del programa:

(1, 2)
(11, 12)

Contents

Copyright © 2011-2017 EPFL. All rights reserved.