poo parte2
TRANSCRIPT
Introdução• Um dos fundamentos da orientação a objetos é evitar que classes tenham acesso a um código que não tenha a ver com sua lógica.
•Imagine a classe Corpo, que possui massa, volume e consequentemente densidade. • Se alterarmos a massa de um corpo sem alterarmos a densidade, criamos uma
inconsistência dentro da classe.
• Logo esse é um caso em que não podemos permitir livre acesso a esses campos.
Introduçãoclass Corpo{private:float massa;float densidade;float volume;
public:Corpo(float massa, float volume) {
this->massa = massa;this->volume = volume;densidade = massa / volume;
}};
Modificador Private•O construtor define o valor da densidade logo na criação do objeto.
•O modificador private impede que qualquer código externo à própria classe Corpo tenha acesso aos campos de Corpo
•Acesso através de métodos públicos:
float getMassa(){
return massa;}float getVolume(){
return volume;}float getDensidade(){
return densidade;}
void SetMassa(float massa)
{
this->massa = massa;
densidade = massa / volume;
}
void SetVolume(float volume)
{
this->volume = volume;
densidade = massa / volume;
}
Modificador Protected• O Modificador de acesso Protected está relacionado à Herança e veremos
mais detalhes sobre ele quando formos estudar Herança.• Ele torna os atributos da classe pai acessíveis para as classes filhas
StaticPodemos distinguir variáveis em dois tipos:• De instância; cada objeto possui uma cópia distinta desta variável
• De classe, só existe uma por classe.
Qual a palavra reservada para fazer essa distinção?• Static
• Exemplo: Classe Pais