Prévia do material em texto
Programação Orientada a Objetos. 1 Prof.Fábio Rener Paradigmas de Programação Dois paradigmas de programação bastante comuns são o Procedural e Orientado a Objetos. As principais diferenças entre estes paradigmas são observadas na organização do código e nas técnicas de modelagem do problema. Um modelo de programação ou paradigma de programação é um conjunto de princípios, ideias, conceitos e abstrações utilizado para o desenvolvimento de uma aplicação. Procedural Para ser considerada procedural, uma linguagem de programação deve suportar o conceito de procedimentos, e possuir uma sintaxe para defini-los. Idealmente, ela deve suportar a especificação de tipos de argumentos, variáveis locais, chamadas recursivas e o uso de procedimentos em módulos distintos de um programa. Ela também pode suportar a distinção entre argumentos de entrada e de saída. Algumas características comuns deste paradigma são: • Conjunto de instruções organizado em bloco para executar determinada tarefa (funções). • Conjunto de funções agrupadas por funcionalidade em bibliotecas. • Modelagem através de fluxograma e grande utilização de algoritmos. Exemplos: • Pascal; • Cobol; • Perl; • Basic Orientação a Objeto A orientação a objetos é o paradigma de programação predominante atualmente e está aos poucos substituindo a programação procedural criada no inicio da década de 60. Neste paradigma o programa é composto por objetos com propriedades e operações que podem ser executadas por eles, ou seja, a estrutura de dados é definida juntamente com as funções(métodos)que poderão ser executadas. Todas as funcionalidades e atributos de cada entidade do sistema são armazenados em classes que representam esta entidade. Programação Orientada a Objetos. 2 Prof.Fábio Rener Normalmente, utilizamos a Unified Modeling Language(UML) para modelar soluções orientadas a objetos. Exemplos: • Smalltalk; • Java; • C#. Em geral, os conceitos do modelo de programação orientado a objetos diminuem a complexidade do desenvolvimento de sistemas que possuem as seguintes características: • Sistemas com grande quantidade de funcionalidades desenvolvidos por uma equipe. • Sistemas que serão utilizados por um longo período de tempo e sofrerão alterações constantes. A plataforma Java será objeto de estudo dessa disciplina. Mas, devemos salientar que os conceitos de orientação a objetos que serão vistos poderão ser aplicados também na plataforma .NET. No primeiro momento, os dois elementos mais importantes da plataforma Java são: • A linguagem de programação Java. • O ambiente de execução Java. A linguagem de programação Java permite que os conceitos de orientação a objetos sejam utilizados no desenvolvimento de uma aplicação. Programação Orientada a Objetos. 3 Prof.Fábio Rener O ambiente de execução Java permite que uma aplicação Java seja executada em sistemas operacionais diferentes. Plataforma Java No primeiro momento, os dois elementos mais importantes da plataforma Java são: Java é uma plataforma de desenvolvimento de software, sendo composta de várias partes: conjuntos de bibliotecas, linguagem de programação e Máquina Virtual Java(JVM). A linguagem é totalmente orientada a objetos, robusta, segura e independente de plataforma(sistema operacional). A Máquina Virtual Java (JVM) torna possível que aplicações feitas em Java funcionem em diferentes sistemas operacionais. Permitindo também a utilização de serviços como coleta de lixo automática e implementação de “threads”. JSE – Java Standard Edition É a especificação do Java que contem APIs com as funções básicas do Java como I/O, multithread, network, conectividade com bancos de dados entre outras. JEE – Java Enterprise Edition È a especificação Java que contem APIs com funcionalidades especificas para o desenvolvimento de aplicações para servidores tais como, Servlets,JSP,EJB e JMS, Etc. Programação Orientada a Objetos. 4 Prof.Fábio Rener Introdução a Orientação a Objeto Nosso mundo físico é formado por um grande conjunto de objetos (mesa, cadeira, carros, casas, animais, plantas,....), e todos estes objetos possuem duas coisas em comum: estado e comportamento. Por exemplo, um carro possui estado como: modelo, ano de fabricação, cor, número de marchas, etc. Um carro também possui comportamento, como: trocando de marcha, acelerando, freando, etc. Programação Orientada a Objetos é uma forma de criar software que imita o mundo real, onde pedaços de software chamados objetos possuem também estados e comportamento. Um objeto de software mantém seu estado em atributos (variáveis) e implementa seu comportamento através de métodos. Dessa forma podemos dizer que estado/característica são nossos atributos e comportamento/ações são nossos métodos. Se criarmos um objeto de software para representar um carro, poderíamos ter os seguintes atributos e métodos: Atributos: Modelo do Carro: Vectra Ano de Fabricação:1998 Cor: Azul Métodos: Freia Acelera TrocaMarcha A grande dificuldade para compreender a programação OO é a diferença de abordagem do problema. Enquanto a programação estruturada tem como principal foco as ações (procedimentos e funções), a programação OO se preocupa com os objetos e seus relacionamentos. Além do conceito de objeto, a programação OO tem como alicerces os conceitos de encapsulamento, classe, herança e polimorfismo. Classes Quando criarmos um objeto no mundo real, como por exemplo uma casa, primeiro fazemos o projeto da casa para depois construirmos a mesma. O projeto informa as características da casa e detalhes para que ela possa ser construída. Usando o mesmo projeto podemos construir por exemplo duas casas, uma na cor amarela e outra azul. Em orientação a objetos, as duas casas são objetos construídos a partir da mesma classe (projeto). Dizemos então que um objeto é uma instância de uma classe. Programação Orientada a Objetos. 5 Prof.Fábio Rener Para criar uma classe em software temos que fazer as seguintes tarefas: • Escrever o código fonte da classe (implementando os atributos e métodos); • Compilar o código fonte. Para criarmos um objeto de software instanciamos na memória do computador uma classe. Objetos fornecem os benefícios de modularidade e proteção dos dados. Classes fornecem o benefício da reutilização. Uma construtora pode construir muitos prédios com um único projeto. Um programador pode construir muitos objetos com uma única classe (mesmo código). A estrutura de uma classe: <modificadores> class <Nome> [extends <SuperClasse>] [implements <Interface>] { <variáveis membro> <construtores> <métodos membros> } Declaração de atributos (variáveis): <modificador> <tipo> <nome> [=<valor inicial>]; Declaração de um método: <modificador> <tipo de retorno> <nomeMetodo>(<parâmetros>) { comandos.... } Exemplo de diagrama de classe simples. Exemplo Classe: public class Aluno { // atributos int codAluno; Programação Orientada a Objetos. 6 Prof.Fábio Rener String nomeAluno; int idadeAluno; // Métodos public float calculaMedia() { //regra para calculo return media; } } Exercícios 1) Quais as caracteristicas de uma linguagem de programação procedural ? 2) Quais as caracteristicas de uma linguagemde programação O.O ? 3) O que temos em comum em todos os objetos ? 4) O que é uma Classe ? 5) O que é um Objeto ? 6) Qual a estrutura de uma Classe em Java ?