A proteção e programação objeto

Dezembro 2016


Como vimos nesta dica, um objeto tem atributos (uma luz tem um atributo estado que está aceso ou apagado).

Imaginemos um objeto temperatura (que armazena uma temperatura).

Nós queremos poder utilizar a temperatura em graus Celsius (° C) e em graus Kelvin (°K).

Para passar de graus Celsius para graus Kelvin, adicionamos 273.

O objeto temperatura terá, portanto, dois atributos: tempC e TempK:

A classe Temperatura e seus atributos


Agora, vamos criar um objeto X do tipo Temperatura:

Um objeto X com seus atributos


Para conhecer o valor da temperatura X em graus Kelvin, vamos escrever X.TempC, o que dá 21.

Se quisermos modificar a temperatura, podemos colocar 33 em TempC digitando X.TempC=33.

Mais, neste caso, vamos encontrar um problema: a temperatura em °K (TempK) não corresponde mais !

Há um erro: TempK não corresponde mais à TempC


Nosso objeto X não está mais no estado correto: ele não faz mais a correspondência certa entre C° e K°!

Teremos que evitar qualquer um de modificar o TempC e o TempK para não ter mais este problema.

As linguagens objeto podem proteger certos dados contra alterações intempestivas:

A classe Temperatura e seus atributos


A palavra "private" indica que é um dado privado: apenas o objeto Temperatura, em si, pode mudar estes dados. Assim, agora é proibido escrever X.TempC=21.

Vamos escrever um método na classe Temperatura que permitirá alterar a temperatura:

A classe Temperatura com seus atributos e seus métodos


Agora, para alterar a temperatura, faremos X.réglerTempC(33). Temos certeza de que o atributo TempK corresponderá sempre à TempC.

Podemos ler TempK fazendo X.lireTempK.

Assim, podemos proteger todos os atributos que quisermos! Todos os atributos que não são marcados como "private" são considerados públicos ("public") e todo mundo pode alterá-los.

"private" protege um objeto para evitar que ele seja modificado de qualquer maneira.

Artigo original publicado por sebsauvage

Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « A proteção e programação objeto »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.