Unha das formas en que podemos promulgar a encapsulación de datos é a través do uso de accesorios e mutadores. O papel dos descritores e mutadores de acceso é devolver e establecer os valores do estado dun obxecto. Aprendemos a programar os descritores e mutadores de acceso en Java. Como exemplo, imos usar unha clase de persoa co estado xa definido e constructor:
Métodos de acceso
Un método de acceso úsase para devolver o valor dun campo privado. Siga un esquema de nomenclatura que impide a palabra “obter” ao comezo do nome do método. Por exemplo, engade métodos de acceso para o nome de primeiro nome, middlenames e apelidos:
Estes métodos sempre se devolven o mesmo tipo de datos que o seu campo privado correspondente (por exemplo, cadea) e simplemente devolver o valor dese campo Privado.
Agora podemos acceder aos seus valores a través dos métodos dun obxecto da persoa:
Métodos mutantes
Un método mutador úsase para establecer un valor dun campo privado. Siga un esquema de nomenclatura que impide a palabra “set” ao comezo do nome do método. Por exemplo, imos engadir campos mutantes para a dirección e nome de usuario:
Estes métodos non teñen unha taxa de retorno e aceptan un parámetro que é o mesmo tipo de datos que o seu campo privado correspondente. Entón, o parámetro úsase para configurar o valor do campo privado.
Agora é posible modificar os valores de enderezos eo nome de usuario dentro do obxecto da persoa:
por que Usar accesorios e mutadores?
É fácil chegar á conclusión de que simplemente poderiamos cambiar os campos privados da definición de clase para que sexan públicos e acadar os mesmos resultados. É importante lembrar que queremos ocultar os datos do obxecto o máximo posible. O buffer adicional proporcionado por estes métodos permítenos:
- Cambiar a forma en que se manexan os datos do marco.
- impón a validación aos valores en que os campos .
Digamos que decidimos modificar como almacenamos os segundos nomes. En vez de só unha cadea, agora podemos usar unha matriz de cadea:
A implementación dentro do obxecto cambiou, pero o mundo exterior non está afectado. A forma en que se chaman os métodos permanecen exactamente o mesmo:
ou, digamos que a aplicación que usa o obxecto da persoa só pode aceptar os nomes dos usuarios que teñen un máximo de dez personaxes. Podemos engadir validación no mutador de SetUSERNAME para asegurarse de que o nome de usuario cumpre con este requisito:
Agora, se o nome de usuario pasou ao Mutor SetUSERNAME ten máis de dez caracteres, é automaticamente truncado.