Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução à Ciência da Computação II: Programação Orientada a Objeto, Exercícios de Introdução à Computação

DEV C++ Introdução à Computação

Tipologia: Exercícios

2021

Compartilhado em 30/01/2021

mariana-valentim-4
mariana-valentim-4 🇧🇷

4 documentos

1 / 22

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
INTRODUÇÃO A CIÊNCIA DA
COMPUTAÇÃO II
INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A
OBJETO (2)
PROF. WALLACE CASACA
DEZEMBRO/2020
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Pré-visualização parcial do texto

Baixe Introdução à Ciência da Computação II: Programação Orientada a Objeto e outras Exercícios em PDF para Introdução à Computação, somente na Docsity!

INTRODUÇÃO A CIÊNCIA DA

COMPUTAÇÃO II

INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A

OBJETO (2)

PROF. WALLACE CASACA DEZEMBRO/ 2020

AULA PASSADA …

Criar uma classe que represente um retângulo (ex: um

campo de futebol), a qual tenha uma função interna que

calcula a área desse campo.

CLASSE

 Classe ( Relembrando ...)

▪ Uma classe é um “tipo” definido pelo usuário (semelhante com

structs ), com o adicional que funções também podem ser criadas.

▪ Estas funções (métodos) vão agir sobre os dados (atributos) da

classe criada.

CONSTRUTORES

 Construtores para Classes

▪ Toda classe deve ter um construtor , que é um método com o

mesmo nome da classe , sem valor de retorno.

▪ O construtor é chamado quando um objeto é declarado no programa, e

nesse objeto são salvos os valores que os atributos da classe deverão
assumir como valores padrão.

▪ Uma classe pode ter vários construtores, com diferentes argumentos

de entrada (sobrecarga) para cada um deles.

CONSTRUTORES (NA PRÁTICA)

Para ilustrar o uso do construtor

int main (void) { retangulo r1; //chama o construtor padrão p/ preencher r retangulo r2; //chama o construtor padrão p/ preencher r retangulo *p; //aqui NÃO chama o construtor (pq é um ponteiro) p = new retangulo; //agora sim, chama o construtor para p cout << r1.a << p->a << endl; //imprimi valor a de r1 e de p return 0; }

POLIMORFISMO

 Polimorfismo ( Relembrando ...)

Resumindo : “A chave da sobrevivência é a adaptação”.  Permite que uma mesma operação possa ser definida/realizada para diferentes tipos de classes/subclasses de forma que cada uma delas possa ser implementada como quiser.

Janela ( )
Janela ( 1 x 2 , 2 )
Janela ( 1 x 2 , 2, Azul )

 Permite a um mesmo objeto se manifestar de diferentes formas.

CONSTRUTORES & POLIMORFISMO

Para ilustrar ...

int main (void) { retangulo r1(2,2); //chama o novo construtor que implementamos retangulo *p; //cria um ponteiro de retângulo p = new retangulo(); //chama o construtor padrão ( default ) cout << r1.a << endl; //o que será impresso? cout << p->a << endl; //o que será impresso? return 0; }

OUTRO EXEMPLO

class retangulo ... retangulo() { ... } retangulo( float a_f, float b_f) { a = ( int )a_f; b = ( int )b_f; } ... retangulo r3(1.1, 2.3);

ENCAPSULAMENTO & ESCOPO

ENCAPSULAMENTO & ESCOPO

Escopo  O C++ oferece 3 níveis (modificadores) de Proteção de métodos e atributos:  public (público): Métodos e atributos podem ser acessados de qualquer parte do programa.  private (privado): Apenas métodos daquela classe podem acessar. Tentativas de chamadas de métodos private fora da classe resultam em erro de compilação.  protected (protegido): Apenas métodos implementados na classe e métodos derivados (herdados) tem acesso.

ENCAPSULAMENTO

Para exemplificar a) Redefinir uma nova função ‘calculaArea()’, só que agora sem passar parâmetros. b) Fazer o teste: int main(void) { retangulo r(3,4); cout << “Area (func. publica): “ << r.calculaArea() << endl; cout << ”Diagonal (private): “ << r.calculaDiag() << endl; //erro: pois calculaDiag é privado

ENCAPSULAMENTO

Para exemplificar
a) Vamos criar a função publica “calculaPTri”: calcula o perímetro do triângulo retângulo
originado pelo retângulo.

b) Fazer o novo teste: int main (void) { retangulo r(3,4); cout << ”Area (func. publica): “ << r.calculaArea() << endl; cout << ”Perímetro (publica): “ << r.calculaPTri() << endl; //calculaPTri é pública, e está na classe, então ela pode acessa calculaDiag, que é privada.

HERANÇA

 Herança

 A classe que herda é chamada de subclasse e aquela que fornece é chamada de superclasse (classe mãe).  No construtor da subclasse , pode-se passar parâmetros para o construtor da classe mãe.

HERANÇA

a) Criar uma subclasse da classe retangulo chamada quadrado class quadrado: public retangulo { public: int perimetro; //Construtor para a subclasse ’quadrado’ quadrado(): retangulo() { perimetro = 2*(a + b); } };