1.5. Klasy i obiekty

W pliku HelloWorldClass.scala znajduje się definicja przykładowej klasy.

Plik HelloWorldClass.scala:
class HelloWorldClass {
  def hello = println("Hello world (class)!")
}

Definicja tej klasy zaczyna się od słowa kluczowego class, po którym jest podana jej nazwa — HelloWorldClass. Po nazwie klasy, w nawiasach klamrowych, znajduje się ciało klasy, które zawiera definicję jednej metody bezparametrowej o nazwie hello.

Poniższe polecenia ładują zawartość pliku, a następnie tworzą obiekt będący instancją tej klasy. Do utworzenia instancji użyte jest wyrażenie, w którym po słowie kluczowym new podana jest nazwa klasy.

scala> :load HelloWorldClass.scala
Loading HelloWorldClass.scala...
defined class HelloWorldClass

scala> val h = new HelloWorldClass
h: HelloWorldClass = HelloWorldClass@2cb7c7

Referencja do utworzonej instancji przypisana zostaje do wartości niezmiennej o nazwie h. Konsola wypisała po znaku równości reprezentację tekstową instancji wskazywanej przez wartość h. W następujący sposób można wywołać metodę hello utworzonej instancji.

scala> h.hello
Hello world (class)!

Język Scala pozwala również na definiowanie obiektów w inny sposób. Przykład takiej definicji znajduje się w pliku HelloWorldObject.scala. Definicja obiektu zaczyna się od słowa kluczowego object. W obiekcie HelloWorldObject jest zdefiniowana — podobnie jak w klasie HelloWorldClass — metoda hello.

Plik HelloWorldObject.scala:
object HelloWorldObject {
  def hello = println("Hello world (object)!")
}

Poniższy przykład ilustruje użycie obiektu HelloWorldObject. Odwołanie do niego następuje za pomocą jego nazwy. Metoda hello zostaje wywołana bezpośrednio na obiekcie — słowo kluczowe new nie jest użyte.

scala> :load HelloWorldObject.scala
Loading HelloWorldObject.scala...
defined object HelloWorldObject

scala> HelloWorldObject.hello
Hello world (object)!

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.