Programação Orientada a Objeto
Transcrição
Programação Orientada a Objeto
Disciplina: Programação Orientada a Objeto E-mail: [email protected] Site : https://sites.google.com/site/profrximenes/ Prof. Rhyan Ximenes 2 Programação Orientada Objeto Ementa • • • • • • • • Histórico; Classes e objetos; Atributos e métodos; Abstração e encapsulamento; Herança e Polimorfismo; Comunicação e associação; Herança simples e múltipla; Hierarquias de classes; 3 Programação Orientada Objeto Ementa • • • • Interfaces; Inicialização e destruição de objetos; Padrões de interação entre objetos; Implementação de interface humana e armazenamento de dados orientados a objetos; • Uso de linguagem de programação orientada a objetos. 4 Programação Orientada Objeto Forma de Avaliação • Nota 01 = (Trabalho*1+Avaliação*2)/3; • Nota 02 = (Trabalho*1+Avaliação*2)/3; • Nota 03 = (Trabalho*1+Avaliação*2)/3; • Média = (Nota01+Nota02+nota03)/3 5 Programação Orientada Objeto Faltas • 75% de presença; • 25% falta. 6 Programação Orientada Objeto Nota Final • If( NF = (Média+NAF)/2 >=5.0) then • APROVADO! • CASO CONTRÁRIO • REPROVADO! 7 Programação Orientada Objeto O que é a P.O.O • O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estruturas de dados e comportamentos. 8 Programação Orientada Objeto Origem da P.O.O • Final da década de 60 e início da década de 70; • Sua origem vem da linguagem Simula (Simula Language), concebida na Noruega em 1966; • Foi criada para fazer simulações; • Alavancou um conceito que até então passava desapercebido pela maioria dos projetistas: a similaridade com o mundo real. 9 Programação Orientada Objeto Origem da P.O.O • A primeira linguagem de programação a implementar os conceitos de OOP foi a linguagem SIMULA-68; • Em seguida surgiu a linguagem Smalltalk; criada pela Xerox, que pode ser considerada a linguagem que popularizou e incentivou o emprego da OOP; 10 Programação Orientada Objeto Finalidade da P.O.O • O que se deseja com esta metodologia são basicamente duas características: 1 - Reutilização de código; 2- Modularidade de escrita. 11 Programação Orientada Objeto O que caracteriza uma linguagem O.O? • Para ser considerada uma linguagem OO, a mesma precisa implementar quatro conceitos básicos: 1 – Abstração; 2 – Encapsulamento; 3 – Herança; 4 - Polimorfismo. 12 Programação Orientada Objeto Cronologia das Linguagem O.O • 1967: Simula – introduz os primeiros conceitos de OO 1972: Smalltalk – Xerox 1980: C++ – linguagem híbrida, derivada da linguagem C. 1983: Ada – criada para uso militar nos EUA 13 Programação Orientada Objeto Cronologia das Linguagem O.O • 1984: Eilffel – primeiras características formais de OO 1986: Object pascal 1995: JAVA – Linguagem puramente orientada a objetos 1995: Várias linguagens agregando conceitos de OO 2000: Plataforma .NET 14 Programação Orientada Objeto Histórico da Linguagem Java • Java foi criado em 1991 por James Gosling da Sun Microsystems, atualmente pertence a ORACLE; • Inicialmente chamada OAK (Carvalho); • A motivação original do Java era a necessidade de uma linguagem independente de plataforma que podia ser utilizada em vários produtos eletrônicos, tais como torradeiras e refrigeradores; • Um dos primeiros projetos desenvolvidos utilizando Java era um controle remoto pessoal chamado *7 (Star Seven). 15 Programação Orientada Objeto O que é a tecnologia Java? • É uma linguagem de programação que pode ser utilizada para criar todos os tipos de aplicações existentes, de programas de Inteligência Artificial para robôs até programas para aparelhos celulares. 16 Programação Orientada Objeto Motivação para a linguagem • A motivação original do Java era a necessidade de uma linguagem independente de plataforma; • Para ser utilizada em vários produtos eletrônicos, tais como torradeiras e refrigeradores; 17 Programação Orientada Objeto Motivação para a linguagem • Primeiro projeto desenvolvido utilizando Java: Controle remoto pessoal chamado *7 (Star Seven); • Ao mesmo tempo, a World Wide Web e a Internet foram ganhando popularidade; • Autor achava que a linguagem Java poderia ser usada para programação da Internet. 18 Programação Orientada Objeto Ambiente de desenvolvimento • Fornece um grande conjunto de ferramentas: JDK - Um compilador, um interpretador; - Um gerador de documentação; - Ferramenta de empacotamento de classes de arquivos e outros. 19 Programação Orientada Objeto Ambiente de distribuição • Há dois ambientes de distribuição principais: - Primeiro, o JRE, fornecido através do Java 2 Software Development Kit (SDK), contém um conjunto completo de arquivos de classes para todos pacotes de tecnologia Java; - Outro ambiente de distribuição é o navegador web, ou seja, o browser, para desenvolvimento de applets utilizadas em aplicações web. 20 Programação Orientada Objeto Algumas Características do JAVA • • • • • • • Orientada a objetos; Segura; Compilada e Interpretada; Máquina Virtual Java; Garbage Collector; É uma linguagem case-sensitive; Multiplataforma. 21 Programação Orientada Objeto Orientada a objetos • Java é uma linguagem orientada a objetos que segue a linha purista iniciada por Smalltalk que é considerada puramente O.O e que tudo nesta são objetos; • Com a exceção dos tipos primitivos da linguagem (char, int, float, etc.), a maior parte dos elementos de um programa Java são objetos. 22 Programação Orientada Objeto Segura • A presença de coleta automática de lixo (Garbage Collector), evita erros comuns que os programadores cometem quando são obrigados a gerenciar diretamente a memória (C, C++, Pascal). 23 Programação Orientada Objeto Compilada e Interpretada • Compilador – Traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto). Programa Fonte Linguagem Alto Nível COMPILADOR Programa Objeto Linguagem Baixo Nível EXECUÇÃO Resultados 24 Programação Orientada Objeto Compilada e Interpretada • Interpretador – Traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte. Programa Fonte Linguagem Alto Nível INTERPRETADOR EXECUÇÃO Resultados 25 Programação Orientada Objeto Compilada e Interpretada • Java é uma linguagem compilada e interpretada • Como funciona? - 1º O compilador Java, chamado javac, compila o código-fonte do Java para um código de nível intermediário chamado códigos de bytes (bytes-codes); - 2º Esses códigos de bytes(bytes-codes) não são diretamente executáveis em qualquer plataforma de hardware existente; mas esses códigos são interpretados pelo interpretador Java (JVM); 26 Programação Orientada Objeto Compilada e Interpretada • O fato de Java ser tanto compilada quanto interpretada proporciona ao programador o melhor de ambos os mundos. 27 Programação Orientada Objeto Multiplataforma • A característica de multiplataforma da linguagem Java indica que um programa desenvolvido nela pode ser executado em plataformas de hardware e sistemas operacionais diferentes. • Isso é possível devido a JVM (Máquina Virtual Java). 28 Programação Orientada Objeto Máquina Virtual Java • Como funciona? - Um código a ser executado por essa máquina deve ser gravado em um arquivo com extensão .class e possuir um código compatível com as instruções Java. javac JVM 29 Programação Orientada Objeto Garbage Collection • O Garbage Collection é o grande responsável pela liberação automática do espaço em memória. Isso acontece automaticamente durante o tempo de vida do programa Java; • É um mecanismo de controle automático de alocação e liberação de memória. 30 Programação Orientada Objeto Case sensitive • Faz diferenciação entre caracteres maiúsculos e minúsculos. • Por exemplo: • Dia ≠ dia. 31 Programação Orientada Objeto Processo de Compilação e Interpretação de códigos Compilador javac Editor Byte-Codes Interpretador Execução 32 Programação Orientada Objeto Plataformas Java • Composta por três plataformas principais que foram criadas para segmentos específicos de aplicações: • Java SE(Java Platform, Standard Edition) - É a base da plataforma. Inclui o ambiente de execução e as bibliotecas comuns. 33 Programação Orientada Objeto Plataformas Java • Java EE (Java Platform, Enterprise Edition). A edição voltada para o desenvolvimento de aplicações corporativas e para internet. • Java ME (Java Platform, Micro Edition). A edição para o desenvolvimento de aplicações para dispositivos móveis e embarcados. 34 Programação Orientada Objeto Plataformas Java • Além disso, pode-se destacar outras duas plataformas Java mais específicas: • Java Card. Voltada para dispositivos embarcados com limitações de processamento e armazenamento, como smart cards e o Java Ring. • Java FX. Plataforma para desenvolvimento de aplicações multimídia em desktop/web (Java FX Script) e dispositivos móveis (Java FXMobile). 35 Programação Orientada Objeto Componentes da Plataforma Java SE • Contém todo o ambiente necessário para a criação e execução de aplicações Java: - Máquina Virtual Java (JVM); - Compilador Java (Javac); - Javadoc - Gerador de documentação; - API´s do Java e outras ferramentas utilitárias para uma melhor funcionalidade. 36 Programação Orientada Objeto IDE´s Utilizadas na Programação Java • IDE - Ambiente para desenvolvimento de Software; • Utilizaremos o NetBeans e o Eclipse. 37 Programação Orientada Objeto Eclipse 38 Programação Orientada Objeto NetBeans 39 Programação Orientada Objeto Entendo um programa em JAVA public class Hello { // Inicio do bloco /* * Meu primeiro programa em JAVA */ public static void main(String arg[]) { // Inicio do bloco //Exibir a mensagem “Hello World” na tela System.out.println(“Hello World!”); } // Fim do bloco } // Fim do bloco 40 Programação Orientada Objeto Comentários na linguagem JAVA // Comenta toda a linha /* Outro forma de comentar * Várias linhas * Em */ um programa em JAVA 41 Programação Orientada Objeto Algumas palavras reservadas em Java byte double class public float char int String long short boolean true false super this if for while switch default do while break continue return 42 Programação Orientada Objeto Operadores em JAVA Operador Descrição = Atribuição == Igualdade + Soma - Subtração * Multiplicação / Divisão >= Maior igual <= Menor igual != Diferente ! Negação 43 Programação Orientada Objeto Formação de identificadores em Java • Identificadores são representações de nomes de variáveis, métodos, classes, etc; • Exemplos de identificadores podem ser: Hello, numero, n1, num_, etc; • Java difere maiúsculo de minúsculo, por exemplo: Hello < > hello; • Os identificadores em Java devem começar com uma letra, um underscore “_”, ou um sinal de cifrão “$”; 44 Programação Orientada Objeto Formação de identificadores em Java • As letras tanto podem ser maiúsculas ou minúsculas; • Os caracteres subsequentes podem usar números de 0 a 9; • Os identificadores não podem ter nomes iguais às palavras-chaves ou palavras reservadas do JAVA, como: class, public, void, int, etc.; • Evitar o uso de underscore no início de um identificador. 45 Programação Orientada Objeto Tipos de dados em Java • A linguagem de programação Java possui exatamente oito tipos primitivos, que podem representar qualquer tipo de dado para um programa de computador; • Chamam-se tipos primitivos por serem os tipos mais básicos de dados, de onde todos os outros se originam. 46 Programação Orientada Objeto Tipos de dados em Java • Os tipos primitivos são: • boolean; byte; char; double; float; int; long; short. • Eles se dividem em: • Tipos primitivos inteiros: byte, char, int, long e short; • Tipos primitivos ponto flutuante: double e float; • Tipo primitivo boleando: boolean. • Obs.: String não é um tipo primitivo, e sim um objeto que contém uma sequência de caracteres. (Assunto para as próximas aulas) 47 Programação Orientada Objeto Tipos primitivos em Java Tipos primitivos Tamanho (bytes) Faixa char 2 Caracteres UNICODE boolean 1 true e false byte 1 Inteiro: -128 a 128 short 2 Inteiro: -32768 a 32768 int 4 Inteiro: - 2147483648 a 2147483647 long 8 Inteiro: - 9223372036854775808 a 9223372036854775808 float 4 Ponto Flutuante: +/-3.4E-38 a +/3.4E+38 double 8 Ponto flutuante: +/-1.7E-308 a +/-1.7E+308 48 Programação Orientada Objeto Declaração de variáveis em Java • <Tipo> <Identificador>; ou • <Tipo> <Identificador1, Identificador2, ...>; • Mostrar exemplos. • int x; 49 Programação Orientada Objeto Tipos primitivos em Java Ponto flutuante • Em JAVA existe duas categorias de primitivos capazes de lidar com dados do tipo flutuante, o float , que armazena valores de precisão simples e o double, de precisão dupla; • São aceitos para qualquer plataforma, independendo do tipo de sistema operacional. 50 Programação Orientada Objeto Tipos primitivos em Java • Como declarar uma variável do tipo float? • float x = 24.2345645F; // ok, está correto. • float y = 24.2345645; // erro de compilação. • Como declarar uma variável do tipo double? • double z = 24.2345645; // ok, está correto. • double m = 24.2345645D; // ok, está correto. 51 Programação Orientada Objeto Tipos primitivos em Java • Diferente de outras linguagens de programação em que o boolean é apenas um byte que pode receber os valores 0 e 1, em Java o boolean é um tipo definido e os valores true e false existem e são palavras reservadas. • Como declarar uma variável booleana? • boolean variavel01 = true; // ok, está correto. • boolean variavel02 = 1; // ok, está incorreto. 52 Programação Orientada Objeto Tipos primitivos em Java • O tipo char armazena em uma variável apenas um único caracter Unicode, que nada mais é do que um caracter de 16 bits. • Exemplo: • char a = ‘a’; /* declaração do caractere entre aspas simples */ 53 Programação Orientada Objeto Referências Bibliográficas • ANSELMO, Fernando. Aplicando Lógica Orientada a Objeto em Java. 3ª ed. Florianópolis: Visual Books, 2005. • ARAUJO, Everton Coimbra. Orientação a Objetos com Java simples, fácil e eficiente. Florianópolis. Visual Books, 2008. • ASCÊNCIO, Ana Fernanda Gomes, CAMPOS, Edilene Aparecida Veneruchi. Fundamentos da programação de computadores. 2ª ed. São Paulo: Pearson Prentice Hall, 2007. • CASTELLANI, Marcelo. Certificação Sun Java Associado: SCJA Exame CX-310-019 guia de viagem para passar no exame. ALTA BOOKS, 2008. • <http://techblog.desenvolvedores.net/2010/12/15/um-pouco-dehistoria/> Acessado em: 09.02.2014