Passos
1. Como definir uma classe simples para representar um objeto Donut
Comecemos por definir uma classe simples que representará um objeto Donut com propriedades de nome e produtoCode. Este exemplo é uma revisão do tutorial anterior sobre Como Criar Classes e Objetos em Scala.
Simples ao tutorial anterior, vamos também ter uma função print() que irá imprimir o nome e o productCode para um determinado objeto Donut. Se você não está familiarizado com a criação de funções em Scala, você pode consultar os Tutoriais de Funções.
2. Como declarar um objeto companheiro para a classe Donut
Um objeto companheiro é definido usando a palavra-chave objeto e o nome do objeto deve ser idêntico ao nome da classe.
Além disso, o objeto companheiro deve definir um método apply() que será responsável por instanciar uma instância da classe dada.
Desde que a classe Donut do Passo 1 requer propriedades name e productCode, também estamos fornecendo parâmetros de entrada similares ao método apply() como mostrado abaixo.
3. Como criar instâncias da classe Donut usando o objeto companheiro
Com o objeto companheiro definido no Passo 2 acima, agora você pode criar instâncias da classe Donut sem ter que usar a nova palavra-chave.
NOTE:
- Seguro que você poderia argumentar que o objeto companheiro não está realmente adicionando nenhum valor especial além de não ter que usar a nova palavra-chave.
- No entanto, no próximo tutorial, mostrarei como o método apply() do objeto companheiro pode ser usado como uma fábrica para sua classe.
4. Como chamar a função print() para cada objeto donut
Next, vamos chamar a função print() dos nossos objetos donut como mostrado abaixo.
println("\nStep 4: How to call function on each Donut object")glazedDonut.printvanillaDonut.print
Você deve ver a seguinte saída quando executar seu aplicativo Scala no IntelliJ:
Step 4: How to call the print function for each of the Donut objectDonut name = Glazed Donut, productCode = 1111Donut name = Vanilla Donut, productCode = 2222