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 CupO 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 theClassA saída é:
2.0, 3.0O 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)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)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.