Método do mutador em java

Método do mutador em java
No dicionário inglês, para muta significa ter um novo formulário. E assim, um mutador, embora não encontrado no dicionário inglês, significa algo que causa uma mudança em uma nova forma. Uma variável privada é um campo ou propriedade de uma classe em java. Não existe um método predefinido chamado mutador em java. Em vez disso, um mutador é um método em uma classe, e esse método deve alterar o valor de uma variável privada da classe. Por convenção, o programador deve iniciar o nome do método com "set". Portanto, o método pode ser algo como setage (), setPrice (), setName (), etc.

Diferença entre variável privada e pública

Uma variável privada pode ser vista apenas pelos membros (propriedades e métodos) dentro da definição de classe. Não pode ser visto por código fora da definição de classe. Por outro lado, uma variável pública pode ser vista por código fora da definição de classe. Código fora da classe pode apenas alterar a variável pública de uma classe atribuindo um novo valor usando o nome da classe se o método for estático ou usando o nome do objeto se o método não for estático. Com uma variável pública, o senso de mutação não está realmente lá. Mas quando uma classe muda seu próprio valor, que não pode ser alterado de fora, isso é chamado de transformação - que tem um melhor senso de mutação.

Ilustração do mutador

Nem toda aula precisa de um mutador. No entanto, quando um mutador é necessário para uma variável privada (propriedade), o método do mutador, que é um membro da classe, deve começar com "Set". O programador define o método do mutador.

Qualquer objeto em uma loja pode ser definido por uma classe. Uma boa xícara em uma loja, por exemplo, pode ser definida por uma aula. No mínimo, a classe teria uma propriedade que é o preço do copo, um método do mutador e um método de acessório. O método acessador é um método para ler o valor da propriedade. Por convenção, o método de acessador deve começar com "Get". Nesse caso, seria getprice (). Deixe a propriedade com o preço do preço ser privado. Se o preço for público, não haverá necessidade de mutador e acessador, pois o valor pode ser definido ou obtido (lido) publicamente.

A definição de classe a seguir é para um copo (uma propriedade adicional (campo) para moeda é adicionada):

Classe Cup
Preço duplo privado = 2.0;
moeda de caracteres privada = '$';
public void SetPrice (Double DBL)
preço = dbl;

public duplo getPrice ()
preço de retorno;

O Mutator SetPrice () é público para que possa ser acessado por código fora da classe. Tornar o público do mutador não significa tornar a propriedade correspondente pública. A propriedade correspondente deve ser privada. O mutador aqui tem o argumento DBL, que é o novo preço. À medida que as condições do mercado mudam, o preço na loja também muda. Se o preço fosse público, não haveria necessidade do mutador setPrice (), pois seria possível para o código fora da classe alterar o preço. Como o SetPrice é um membro da classe, pode ver o valor do preço da propriedade privada. No entanto, o código fora da classe não pode ver a propriedade. Isso é por design.

O accSessor getPrice () é público para que possa ser acessado por código fora da classe. Não tem argumento. Se o preço fosse público, não haveria necessidade do acessador getPrice (), pois seria possível para o código fora da classe ler o preço. Como GetPrice é membro da classe, pode ver o valor do preço da propriedade privada. No entanto, o código fora da classe não pode ver a propriedade. Isso é por design.

Um Mutator SetCurrency () e um acessador getCurrency () podem ser escritos da mesma forma para a moeda variável privada.

A classe principal a seguir e o método principal acessa o preço da variável privada, muda a variável e depois acessa a variável novamente; tudo isso depois de instanciar a aula:

classe pública theClass
public static void main (string [] args)
Xícara de copo1 = novo copo ();
duplo Firstprice = Cup1.getPrice ();
Sistema.fora.impressão (FirstPrice); Sistema.fora.imprimir(", ");
Copa1.SetPrice (3.0);
Double SecondPrice = Cup1.getPrice ();
Sistema.fora.impressão (SecondPrice);
Sistema.fora.println ();

A saída é:

2.0, 3.0

O primeiro segmento de código no método principal instancia o objeto Cup (CUP1) e acessa o preço da propriedade privada através do acessador getPrice () e Cup1. Em seguida, ele imprime este primeiro preço com vírgula e espaço.

O segundo segmento de código é um segmento de código de uma linha. Ele muda o preço da propriedade privada através do Mutator SetPrice () e Cup1. O terceiro segmento de código lê e imprime o novo preço.

Validação

O usuário do programa deve definir o novo preço como um duplo. Mas e se ele inserir algum outro tipo de dados? O novo preço deve ser validado se for realmente um duplo. O código da linha para este caso deve aparecer assim:

Boolean Bl = DBL Instância dupla;

O operador, instância do retorno true, se o operando esquerdo for uma instância do operando correto; falso caso contrário.

Com a validação, a definição do método do mutador deve ser:

public void SetPrice (Double DBL)
if (instância dbl dupla)
preço = dbl;
outro
Sistema.fora.println ("novo preço não pôde ser definido!");

Isto é, se a entrada DBL for do tipo duplo, o preço é alterado. Caso contrário, uma mensagem de erro é emitida e o programa continua. Observe que 'd' para o dobro neste segmento de código é 'd' e não 'd'.

Um código semelhante para verificar se a moeda é um caractere pode ser escrito da seguinte maneira:

public void setCurrency (personagem ch)
if (CH Instância do caractere)
moeda = '€';
outro
Sistema.fora.println ("Nova moeda não é um personagem!");

Ou seja, se o CH de entrada é do tipo de caractere, a moeda será alterada de $ para '€'. Caso contrário, uma mensagem de erro é emitida e o programa continua. Observe que 'C' para o personagem neste segmento de código é 'C' e não 'C'.

Conclusão

Não existe um método predefinido como mutador em Java. Um mutador é codificado pelo programador. Um mutador é apenas um método codificado (público) que altera o valor privado de um campo (propriedade) de uma classe. Por outro lado, um acessador é apenas um método codificado (público) que lê o valor privado de um campo (propriedade) de uma classe.

Obrigado por ler nosso artigo. Deixe um comentário sobre seus pensamentos e leia outros artigos sobre Linuxhint.com que melhor se encaixa nas idéias que você está procurando.