07a_IntroOO
-
Upload
leonardo-redaelli -
Category
Documents
-
view
1 -
download
0
description
Transcript of 07a_IntroOO
-
Orientao a Objetos
Algoritmos e Programao em C++UNISINOS
Prof. MSc. Joo Ricardo Bittencourt
Update: 16 Set. [email protected]
-
UNISINOS - Joo Ricardo Bittencourt
ConceitoO que paradigma?
paradigma(gregopardeigma, -atos)s. m.1.Algo que serve de exemplo geral ou de modelo.=padro2.Gram.Conjunto das formas que servem de modelo de derivao ou de flexo.=padro3.Ling.Conjunto dos termos ou elementos que podem ocorrer na mesma posio ou contexto de uma estrutura.
O que significa isso no contexto de programao? um modelo, um padro ou um estilo de programao
que tem determinadas caractersticas. Uma forma de ver e de resolver os problemas.
-
UNISINOS - Joo Ricardo Bittencourt
TiposProgramao ImperativaFortran, Pascal, C, Basic
Programao Orientada a ObjetosSmalltalk, C++, Java
Programao Funcional ou DescritivaLISP, ML, Haskell, F#
Programao em LgicaPROLOG, Popler
E muuuuitas outras..
;;; Common Lisp(defun helloworld () (print "Ol mundo!"))
% Prologhello :- display('Ol mundo!') , nl .
// Javaclass HelloWorld { static public void main( String args[] ) { System.out.println( "Ol mundo!" ); }}
-
UNISINOS - Joo Ricardo Bittencourt
Programao ImperativaProgramas centrados no conceito de um estado (modelado por variveis) e aes (comandos) que manipulam o estado.Paradigma tambm denominado de procedural.Procedimentos e funesPrimeiro paradigma a surgir e ainda o dominante.
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a Objetos
Plants vs. ZombiesDiferentes tipos de zumbisAparnciaHabilidades NadarAtravessar muralhasForaNmero de tiros que precisam levar para morrer
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosOutros exemplos?!
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosO que todas as cadeiras tem em comum?Todas servem para sentar... :-P
Como saber que um objeto uma cadeira?Caractersticas (atributos)Funcionalidade(s) (mtodos) Todos os objetos mostrados na imagem anterior so da classe Cadeira.
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosFicamos ento com duas ideias: classe e objeto.O que uma classe? uma categoria, uma descrio de algum objeto...Representam (modelam) uma entidade que pode ser do mundo real ou uma abstrao de um conceito.
O que um objeto?Instncia de uma classe a materializao de um conceito formalizado uma varivel existente na memria do computador
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosA programao Orientada a Objetos define a ideia de Encapsulamento.Significa que um objeto deve conter toda a informao que ele precisa.
Um objeto deve conter todo o comportamento necessrio para sua execuo dentro de si e no separado por classes no relacionadas.
Para usar um celular no necessrio saber ele funciona por dentro, mas sim as funcionalidades dele.
-
UNISINOS - Joo Ricardo Bittencourt
Como representar uma classe?
Atravs de atributos e de mtodos.
Atributos: representam os dados e seus valores definem o estado do objeto.
Mtodos: so as aes que o objeto capaz de realizar. Podem agir sobre seus prprios atributos ou permitir a interao (envio de mensagem) a outros objetos.
-
UNISINOS - Joo Ricardo Bittencourt
Como representar uma classe?
Uma classe composta de duas partes: a interface e a implementao.
A interface contm a declarao dos atributos e dos mtodos de uma classe, bem como a sua visibilidade.
A implementao contm o cdigo (comandos) dos mtodos.
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosOcultamentoOcultamento uma das tarefas do encapsulamento.
Um objeto deve esconder (proteger) seus dados de acesso externo direto. Assim possvel evitar que os atributos sejam corrompidos.
A funcionalidade do objeto est ocultada na definio.
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosVisibilidade
A visibilidade est relacionada ao Encapsulamento.
Em C++ existem trs nveis de visibilidade:publicprotectedprivate
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosVisibilidade Pblica - publicTudo o que est declarado dentro da seo pblica de uma classe visvel e acessvel externamente a classe.Ou seja, a seo pblica define a Interface da classe que acessvel por outros objetos.No boa prtica de programao declarar atributos na seo pblica.
-
UNISINOS - Joo Ricardo Bittencourt
Prog. Orientao a ObjetosVisibilidade Oculta - protected e privateNeste momento no interessa muito a diferena entre protected e private.
Basta saber que, nestes casos, os mtodos e atributos s podem ser acessados pela prpria classe.
-
UNISINOS - Joo Ricardo Bittencourt
Interfaceclass Mago {
public: Mago(); ~Mago(); void andar(); void falar(); void invocarMagia();
protected: string nome, escolaDeMagia; int poder, idade;
};
//Arquivo mago.h
-
UNISINOS - Joo Ricardo Bittencourt
Interfaceclass Mago {
public: Mago(); ~Mago(); void andar(); void falar(); void invocarMagia();
protected: string nome, escolaDeMagia; int poder, idade;
};
//Arquivo mago.h
Mtodos
//Podem existir atributos pblicos, mas isso fere o princpio da OO.
Atributos
//Mtodos podem ser ocultos (protected ou private) sem problema algum.
-
UNISINOS - Joo Ricardo Bittencourt
Construtores e DestrutoresMtodo ConstrutorNomeDaClasse();Construtor Padro (obrigatoriamente um)Qual o propsito do construtor?Alocar memria para o objeto
Mtodo Destrutor~NomeDaClasse(); (somente um destrutor)Qual o propsito do mtodo destrutor?Liberar memria quando no utiliza mais o objeto
-
UNISINOS - Joo Ricardo Bittencourt
ExerccioPense em trs classes diferentes de objetos. Descreva a interface, com os atributos e os mtodos relativos a essas classes.Sugestes: trabalho do grau A, algum jogo que vocs est jogando, uma soluo para hackathon,...
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19