Baixe Programação Orientada a Objetos e outras Notas de estudo em PDF para Engenharia Informática, somente na Docsity!
Programação Orientada a Objetos
Márcio Emílio Cruz Vono de Azevedo
Conteúdo
• Paradigmas de programação
• Introdução à linguagem de programação
orientada a objetos
• Introdução à UML
• Diagrama de classes da UML
• Mapeamento do diagrama de classes
para linguagem de programação
Paradigmas de Programação
• Paradigma Lógico
• Paradigma Funcional
• Paradigma Imperativo
• Paradigma Estruturado
• Paradigma Procedural
• Paradigma Orientado a Objetos
Paradigma Lógico
• Linguagens de programação baseadas em
funções lógicas
• Exemplo de linguagens lógicas
– PROLOG
Paradigma Funcional
• Linguagens de programação baseadas em
funções matemáticas
• Exemplo de linguagem funcional
– LISP
• Exemplo de programação funcional
(defun fatorial (n)
(if (= n 0 )
(* n (fatorial (- n 1 )))))
Paradigma Imperativo
• Através de linguagens de programação
imperativas, o programador dá ordens para o
computador
• Exemplo de linguagem imperativa
– BASIC
• Nas linguagens imperativas, o programador pode
definir saltos de um ponto a outro do programa
• Em BASIC, saltos são implementados através do
comando GOTO (vá para)
Paradigma Estruturado
• Semelhante ao paradigma imperativo, porém
não são permitidos saltos
• Os programas utilizam três estruturas básicas
– Sequência: comandos executados em sequência
– Decisão: if/then/else, switch/case etc.
– Repetição: while, for, do/while etc.
• Exemplos de linguagens estruturadas
– C, Pascal
Exemplo de Programação Estruturada
int n, first = 0 , second = 1 , next, c; printf("Enter the number of terms \n "); scanf("%d",&n); printf("First %d terms of Fibonacci series are :- \n ",n); for ( c = 0 ; c < n ; c++ ) { if ( c <= 1 ) next = c; else { next = first + second; first = second; second = next; } printf("%d \n ",next); }
Paradigma Orientado a Objetos
• Linguagens de programação que utilizam objetos
• Tentam trazer objetos do mundo real para a linguagem de
programação
• Baseado em classes e objetos
– Classes: estruturas onde são definidos os estados e o
comportamento dos objetos
– Objetos: instâncias de uma classe
– Uma vez definida a classe, vários objetos podem ser instanciados
para aquela classe
– Várias classes podem ser criadas, definindo vários tipos de objetos
• Linguagens de programação orientadas a objetos
– Smalltalk, C++, Object Pascal, Java, C#, Objective-C, Ruby
Exemplo de Programação Orientada a Objetos import javax.swing.JOptionPane; public class OddEven { private int input; public OddEven() { } public static void main( final String[] args) { OddEven number = new OddEven(); number.showDialog(); } public void showDialog() { try { this .input = Integer.parseInt(JOptionPane.showInputDialog("Please enter a number.")); this .calculate(); } catch ( final NumberFormatException e) { System.err.println("ERROR: Invalid input. Please type in a numerical value."); } } private void calculate() { if (( this .input % 2 ) == 0 ) { JOptionPane.showMessageDialog( null , "Even"); } else { JOptionPane.showMessageDialog( null , "Odd"); } } }
Conceitos de Orientação a Objetos
- (^) Encapsulamento
- (^) Primeira definição:
- (^) Descrever em um determinado objeto apenas as características que sejam pertinentes ao objeto em questão.
- (^) Exemplo
- (^) um aluno está matriculado em um curso. As características do aluno devem ser descritas no objeto aluno e as características do curso devem ser descritas no objeto curso. » (^) Obs.: Existem mecanismos para associar um objeto aluno a um objeto curso que veremos posteriormente.
Conceitos de Orientação a Objetos
- (^) Encapsulamento
- (^) Segunda definição
- (^) As características que representam o estado de um objeto devem ser protegidas de acesso externo. O estado do objeto somente será alterado internamente pelo comportamento definido para este objeto.
- (^) Exemplo:
- (^) A “velocidade” é um possível elemento de estado de um objeto carro. Não se deve permitir que a “velocidade” seja alterada diretamente por entidades externas ao objeto em questão. Ao invés disso, poderão existir definições de comportamento como “acelerar” e “frear” que, sempre que forem invocados, irão alterar o estado atual da “velocidade”.
Conceitos de Orientação a Objetos
- (^) Estado de um objeto
- (^) O estado de um objeto é definido através dos valores de suas variáveis membro, ou atributos.
- (^) Os atributos do objeto são declarados na definição da classe.
- (^) Comportamento de um objeto
- (^) O comportamento de um objeto é definido através de suas funções membro, ou operações.
- (^) As operações do objeto são declaradas na definição da classe.
Conceitos de Orientação a Objetos
- (^) Objetos
- (^) O objeto é uma instância de uma classe. Por exemplo, a classe “Cadeira” define as características de uma cadeira, mas a cadeira em que você está sentado é um objeto, ou seja, uma instância da classe “Cadeira”. A cadeira em que seu colega está sentado é uma outra instância da mesma classe “Cadeira”.
- (^) Apesar dos atributos que representam o estado de um objeto estar definido na classe, é no objeto que eles definem seus valores específicos. Por exemplo, a classe “Aluno” define o atributo “idade”, mas cada objeto da classe “Aluno” terá um valor diferente para seu atributo “idade”.