Objeto Companion Scala

Objeto Companion Scala
Ao definir um objeto de classe, podemos inspecionar os membros da classe e invocar qualquer método em outras linguagens de programação. O método específico é chamado com a ajuda desse objeto. No artigo, faremos um objeto que não precisa de uma classe para declarar seus membros. Scala apresenta objetos singleton ou objetos complementares. Classe Scala e Objeto Scala estão com o mesmo arquivo de origem; Eles são um companheiro um para o outro.

O que são objetos complementares em Scala?

Um objeto complementar e a classe estão no mesmo arquivo de origem junto com o mesmo nome. Objetos complementares são objetos que têm um nome semelhante à classe a que pertencem. O mesmo objeto e combinação de nomes de classe são muito poderosos, podemos acessar métodos privados e campos da classe.

Sintaxe de objetos de companhia Scala

A sintaxe geral do objeto Companion em Scala parece desta maneira:

Classe classe_name
// Class Body
Objeto objeto_name
// corpo de objeto

Aqui, "Class_Name" é o nome da classe e o object_name é o nome do objeto de classe. A classe e o nome do objeto devem ser os mesmos para se tornarem companheiros um para o outro. Isso significa que podemos usar os campos e métodos das instâncias da classe.

Como usar os objetos Companion Scala no Ubuntu 20.04?

Para entender o uso dos objetos complementares em Scala, você deve dar uma olhada nos seguintes exemplos abaixo:

Exemplo 1: Usando o método da classe Companion e o objeto Scala

Podemos criar um objeto complementar mantendo o nome do objeto da mesma forma que o nome da classe. Então, consideramos a classe e o companheiro de objeto um para o outro. Abaixo, criamos um objeto complementar.

No código acima, temos uma classe como exemplo1. A classe possui variáveis ​​str1 e str2 inicializadas com o valor da string. Existe um método "MyExample" que define a classe que imprime os valores "str1" e "str2". No objeto Companion, estamos acessando o método da classe relevante.

Você pode ver na saída abaixo; Podemos acessar o membro da classe Companion com a palavra -chave “nova” no objeto Companion.

Exemplo 2: Usando o método Aplicar para o objeto Scala Companion

Podemos criar uma instância de uma classe através do método de aplicação. Vamos ter um método de aplicação de implementação abaixo.

No código acima, declaramos uma classe chamada "frutas" e também criamos um objeto da classe. O objeto de classe também é chamado de "frutas". Ao manter o nome, o mesmo eles são considerados objetos complementares. A fruta da classe foi definida com uma variável "x". A variável tem uma corda vazia. Em seguida, temos um objeto complementar da fruta da classe complementar. No objeto Companion, usamos o método Apply que está argumentando com um membro da classe Companion. Em seguida, criamos uma variável 'y' no método de aplicação. A variável "y" está inicializando uma instância de um objeto com a palavra -chave "novo". Ao usar o método Aplicar, podemos chamar o objeto diretamente da classe.

Estamos usando o modo de pasta para o método de aplicação. Depois de sair de um modo de pasta, podemos chamar o membro da classe diretamente. Escrevemos um código de correspondência de padrão em Scala e a saída é mostrada abaixo.

Exemplo 3: Usando o método Aplicar para criar vários construtores

Ao usar o método Aplicar, podemos passar mais de um argumento. Podemos ter um método de aplicação na classe complementar mais de um que fornecerá vários construtores. O exemplo é ter dois construtores no método de aplicação e dois métodos de aplicação no objeto Companion.

No código acima, criamos uma classe complementar como "idioma" e definimos duas variáveis ​​"L1" e "L2". Então, temos um objeto complementar do nome "idioma" da mesma forma que o nome da classe Companion. No objeto complementar, usamos dois métodos de aplicação. O primeiro é ter um único valor aprovado e o outro método de aplicação leva dois argumentos como construtor. O método Aplicar possui a variável "L3", que possui uma palavra -chave "nova" com o objeto. Podemos gerar uma nova instância de um objeto com o uso da palavra -chave "nova". O "L3" pega valores de "L1" e "L2" no código.

A saída que podemos acessar através do modo pasta como implementação é mostrada após o modo de saída. Podemos chamar o objeto usando o método de aplicação.

Exemplo 4: Usando o método UNAPPLE para objetos complementares

Agora, também podemos extrair o campo de um objeto usando o método unapply no objeto Companion.

No código acima, primeiro, fizemos uma classe complementar que é chamada de "cor". A classe Companion “Color” tem variáveis ​​como membros da classe. A variável é representada como "C1" e "C2". Esses campos variáveis ​​podem ser acessados ​​pelo objeto Companion como um construtor. Em seguida, criamos um objeto complementar e definimos o método de aplicação nele. O método Apply cria um construtor passando argumentos de campos de classe complementar. No método Aplicar, temos uma variável "C3" que está usando uma nova palavra -chave com a cor do objeto. Os valores de "C1" e "C2" passaram para "C3". No final, temos que usar o método UNAPPLE que tem "C3" como um argumento e retorna o valor de "C1" e "C2".

Depois de sair do modo de pasta, extraímos os campos de um "C3". A saída do método unapply é mostrada na tela.

Conclusão

O guia pretende demonstrar a você os benefícios de ter um objeto complementar. Para se tornar um companheiro da classe e objeto, o nome deve ser o mesmo e é mantido no mesmo arquivo de origem. Em seguida, discutimos o método de aplicação com a implementação do código. Podemos usar mais de um método de aplicação em um objeto complementar e criar vários construtores no método de aplicação. Também discutimos o método unapply para extrair os campos da classe. O exemplo do método Apply é através do modo de pasta no Ubuntu 20.04 Terminal. Você pode usar o modo de pasta, dando o comando "scala" no terminal e também saindo do modo de pasta pressionando "ctrl+d".