ELE202 Aula 04 Classes 01
37 pág.

ELE202 Aula 04 Classes 01


DisciplinaProg13 materiais49 seguidores
Pré-visualização2 páginas
Unifei
ELE202\u2013 Linguagem Técnica de Programação II
Classes e objetos
Profa. Cláudia Eliane da Matta
Programação orientada a objetos
\u2022 É uma técnica de programação poderosa.
Características
Abstração
Encapsulamento
Herança
Polimorfismo
Programação orientada a objetos
Abstração
\u2022 representação 
de algo real.
Encapsulamento
\u2022 é uma técnica 
para proteger 
propriedades e 
métodos do 
objeto.
Herança
\u2022 possibilita a 
reutização de 
código 
possibilitando 
redução de 
tempo e de 
linhas de 
código.
Polimorfismo
\u2022 característica 
da classe de  
modificar um 
pouco para se 
adaptar a 
novas 
situações, ou 
seja, o método 
pode funcionar 
de maneira 
diferente.
Marinho
Animal
Mamifero
Leao Homem
Inseto
Mosca BarataPeixe
Introduzindo a POO
atributosatributos
operaçõesoperações
Classe
Homosca
Herança múltipla:
Homosca é um Homem e uma 
Mosca. Também é um Animal, 
Mamífero e Inseto.
Herança 
simples
5/22
Cervideo
Animal
Felino
Gato Leao
Canino
Lobo CachorroVeado
LeaoLobo
Herança 
simples
Herança 
múltipla
Sou filho de 
famosos!
Objeto
Introduzindo a POO: brincadeirinha...
Objeto
Objeto
Objeto
Três palavras importantes em POO
1. encapsulamento;1. encapsulamento;
2. hereditariedade;2. hereditariedade;
3. polimorfismo.3. polimorfismo.
virtualvirtual
** ->-> newnew deletedelete
--
##
++
privateprivate
protectedprotected
publicpublic
Propriedade de uma 
classe incluir ou encerrar 
atributos e operações.
Propriedade de uma 
classe transmitir  
atributos e operações 
para as suas 
descendentes.
Propriedade de uma 
classe se apresentar sob 
numerosas formas; 
multiforme.
Classe
\u2022 É uma extensão do registro (struct) em C.
\u2022 Tem como possibilidade definir componentes que são 
funções (métodos).
\u2022 Um tipo de dado que caracteriza a programação 
orientada a objeto.
\u2022 Fundamento central da programação em C++.
class Nome_classe <:lista_base>
{
<compontentes_privados>
Public
<componentes_publicos>
}
Nome_classe \u2013 identifica a classe
lista_base \u2013 lista das classes\u2010base 
(super\u2010classe) das quais a classe é 
derivada.
compontentes_privados \u2013
declaração dos membros privados 
da classe.
compontes_publicos \u2013 declaração 
dos membros públicos da classe 
Classe simples
\u2022 Exemplo:
Sempre começa pela palavra class.
Vamos criar uma classe?
\u2022 Crie uma classe chamada Usuario
\u2022 Atributos: CPF, nome
\u2022 Métodos: 
increverUsuario(CPF, nome)
imprimirUsuario ()
Usuario
cpf: texto
nome: texto
increverUsuario(CPF, nome)
imprimirUsuario ()
Resposta
Classe
Atributos
Métodos
Classe simples
\u2022 Exemplo de um programa:
Objetos
\u2022 É uma variável do tipo classe.
\u2022 É uma instância da classe.
Enquanto uma instância de uma estrutura ou união é chamada 
variável, uma instância de uma classe é chamada objeto.
Objetos
Exercício 1
Escreva uma classe para conter três membros de 
dados do tipo int denominados hora, minuto, 
segundo e chame\u2010a de Tempo.
Membros privados e membros 
públicos
Membros
Privados private
Públicos public
Membros privados e membros 
públicos
\u2022 A classe contém as palavras private e public que 
especificam a visibilidade dos membros.
\u2022 private
\u2013 é a parte privada da classe.
\u2013 Pode ser acessada pela classe inteira, mas não fora 
dela.
\u2013 Estes membros não podem ser utilizados por outras 
classes.
\u2013 Estes dados estão escondidos.
\u2022 public
\u2013 Pode ser acessada por qualquer método e por 
qualquer outra função do programa onde o objeto foi 
declarado.
Funções-membro
\u2022 Também chamadas de método.
\u2022 Estão dentro da classe.
\u2022 Executam operações.
Funções membro inline
\u2022 São funções que definidas dentro da classe.
\u2022 São funções da classe escritas fora da classe 
desde que:
\u2013 Usando a palavra inline e
\u2013 Definindo o protótipo dentro da classe
Criando objetos
\u2022 Declarar um objeto é similar a declarar uma 
variável de qualquer tipo.
\u2022 O espaço de memória é reservado.
Declara dois objetos 
do tipo Retangulo
Chamada dos métodos
\u2022 Os membros públicos são acessados por meio do 
operador ponto.
\u2022 Os métodos só podem ser chamados quando 
associadas a um objeto específico pelo operador 
ponto.
Função membro do objeto x.
Mensagem
\u2022 A instrução de chamada do método é 
conhecida pelo nome de mensagem.
Esta instrução envia uma mensagem ao 
objeto x solicitando que ele imprima os 
dados e a área do retângulo.
Métodos definidos fora da classe
Lembre\u2010se: o protótipo da função 
precisa estar dentro da definição 
da classe.
Criado inline.
Método definido fora da classe
Programa Ano Bissexto
Métodos definidos fora da classe 
(cont.)
Observe que o nome do método é precedido 
pelo nome da classe e pelo símbolo ::
Métodos definidos fora da classe 
(cont.)
\u2022 O símbolo :: é chamado de operador de resolução 
de escopo.
\u2022 Este operador é o meio pelo qual informamos ao 
compilador que a função definida está associada 
àquela classe em particular.
A função initdata é membro da classe data.
Exercício 2
Continuação do Exercício 1:
\u2022 Crie um método Imprimir() para imprimir a hora 
no formato hh:mm:ss.
\u2022 Crie um método Soma() que soma dois objetos 
da classe Tempo passados como argumentos e 
coloca o resultado no objeto do qual é membro.
Construtores
\u2022 A atribuição de valores aos membros de dados 
de um objeto é feita pela chamada do método 
initdata().
O que acontece se o usuário chamar um método 
de impressão sem antes inicializar os dados?
Construtores
\u2022 Os membros de dados do objeto x serão 
inicializados com lixo e o programa não 
trabalhará corretamente.
\u2022 Para evitar este erro pode\u2010se criar uma 
construtor.
Construtores
\u2022 Construtor é a inicialização automática de um 
objeto.
\u2022 Não retorna nenhum valor.
\u2022 Execução automática e o mesmo nome da 
classe
\u2022 Membros de dados inicializados no cabeçalho
Construtores
Construtores inline
\u2022 O código do construtor pode ser escrito 
dentro da definição da classe.
Sobrecarga de construtores
\u2022 Suponhamos que você queira criar um novo 
construtor para a classe Data que permita ao 
usuário fornecer um dia, mês e ano ao 
instanciar a classe, ou seja, na instrução de 
declaração do objeto e por outro lado, queira 
manter o construtor já existente.
\u2022 Nesse caso é possível criar funções 
construtora sobrecarregadas, desde que cada 
uma tenha argumentos diferentes.
Sobrecarga de construtores
Aqui o construtor 
chama um método.
Sobrecarga de construtores
Sobrecarga de construtores
Destrutores
\u2022 É um método especial que é chamado 
automaticamente toda vez que o objeto é 
destruído (liberado da memória).
\u2022 Não podem ter valor de retorno.
\u2022 Não podem receber argumentos.
\u2022 Não podem ser chamado explicitamente pelo 
programador.
Destrutores
Exercício 3
Continuação do Exercício 2.
\u2022 Crie um construtor que inicialize os membros de dados 
com zero.
\u2022 Crie um segundo construtor que inicialize os membros de 
dados com os valores recebidos como argumento.
\u2022 Crie uma método Init() que executa a mesma tarefa do 
construtor descrito no parágrafo anterior.
Referências
\u2022 MIZRAHI, V. V. Treinamento em linguagem C++. 2. ed. 
Módulo 1. São Paulo: Pearson Prentice Hall, 2006.
\u2022 MIZRAHI, V. V. Treinamento em linguagem C++. 2. ed. 
Módulo 2. São Paulo: Pearson Prentice Hall, 2006.
\u2022 SAVITCH, W.J. C++ absoluto. São Paulo: Addison Wesley, 
2004.
\u2022 KAUPA, P. Os 4 pilares da Programação Orientada a 
Objetos. Disponível em: 
<http://www.devmedia.com.br/os\u20104\u2010pilares\u2010da\u2010
programacao\u2010orientada\u2010a\u2010objetos/9264>.