Download - Poo parte2
![Page 2: Poo parte2](https://reader036.vdocuments.com.br/reader036/viewer/2022071901/55c13be3bb61ebb4028b461e/html5/thumbnails/2.jpg)
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.
![Page 3: Poo parte2](https://reader036.vdocuments.com.br/reader036/viewer/2022071901/55c13be3bb61ebb4028b461e/html5/thumbnails/3.jpg)
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;
}};
![Page 4: Poo parte2](https://reader036.vdocuments.com.br/reader036/viewer/2022071901/55c13be3bb61ebb4028b461e/html5/thumbnails/4.jpg)
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;
}
![Page 5: Poo parte2](https://reader036.vdocuments.com.br/reader036/viewer/2022071901/55c13be3bb61ebb4028b461e/html5/thumbnails/5.jpg)
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
![Page 6: Poo parte2](https://reader036.vdocuments.com.br/reader036/viewer/2022071901/55c13be3bb61ebb4028b461e/html5/thumbnails/6.jpg)
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