PDS Aula 1.2 – Introdução a Java, POO e Composição Prof. Bruno Moreno [email protected] JAVA: Introdução, Histórico, Conceitos Básicos 2 Introdução ● O que é Java? – Linguagem de programação OO ● Década de 90 ● Sun Microsystems ● Multiplataforma: bytecodes ● Máquina Virtual Java 3 Bibliografia 4 Histórico Green Project 1991 A Sun decidiu lançar uma nova versão do Oak para a Internet: applets Oak→Java JDK 1.0 1995 1996 JDK 1.1 JDK 1.2 1997 1998 Java Swing e segurança J2SE, J2EE e J2ME 1999 JDK para linux O *7 foi desenvolvido usando uma linguagem específica: Oak. 5 Histórico Robo enviado a Marte com JAVA Abertura do código de Java 2000 2001 2002 2003 2007 Mais de 50 milhões de celulares com J2ME IDE Eclipse; J2ME para Linux; J2EE patterns 400 grupos de usuários no mundo; JavaOne com mais de 25 mil desenvolvedores; Netbeans open-source 6 Histórico ● Em 2010, a Oracle comprou a Sun MicroSystems 7 Princípios para criação de Java 1. Simples, OO e familiar 2. Robusta e segura 3. Portável e independente de arquitetura 4. Deve ser executável com alta performance 5. Interpretada, multi-tarefa e dinâmica 8 O que você entende por Modelo? 9 Modelos ● São representações simplificadas de objetos, pessoas, itens, tarefas, processos, etc usados comumente por pessoas no seu dia-a-dia – Independente do uso de computadores 10 Modelos ● Modelo: abstração de uma realidade Só é considerado o que é relevante. Algo (entidade) a ser representado no computador. 11 Modelos ● Considere um modelo de um restaurante Restaurante Caseiro Mesa 1 Mesa 2 Mesa 3 Kg refeição Kg refeição Kg refeição Sobremesa Sobremesa Sobremesa Bebida Bebida Bebida 12 Modelos ● Um modelo representa dados e informações – ● Itens e a quantidade dos pedidos; Um modelo contém operações – Inclusão de um pedido; – Modificação do status de um pedido; – Encerramento de um pedido; – Apresentação da conta para os clientes; 13 Modelos ● Modelos podem conter submodelos; ● Modelos podem ser parte de outros modelos; Restaurante Caseiro Mesa 1 Mesa 2 Mesa 3 Kg refeição Kg refeição Kg refeição Sobremesa Sobremesa Sobremesa Bebida Bebida Bebida Submodelo que representa uma mesa 14 Modelos ● Modelos podem simplificar informações; – ● Algumas informações podem (ou devem) ser ocultadas; Em um modelo, informações sobre determinado conceito pode ser feita diferentemente, dependendo do contexto – Pessoa como paciente de uma clínica ● ● – Atributos: nome, o sexo, a idade, a altura, o peso e o históricoConsultas Operação verificaObesidade. Pessoa como contato comercial ● ● Atributos: nome, o telefone, o cargo e a empresa Operação mostrarTelefone. 15 A Programação Orientada a Objetos está intimamente ligada a definição de modelos 16 Programação OO X Programação Estruturada 17 Programação Estruturada ● Baseada em Estruturas sequenciais ● ● + Estruturas de decisão + Estruturas de iteração Vantagens – Fácil compreensão – Execução mais rápida Desvantagens – Baixa reutilização de código – Códigos confusos: dados misturados com comportamento 18 Programação OO ● Baseada em Classes ● ● + Objetos Vantagens – Melhor organização do código – Alto reaproveitamento de código Desvantagens – Desempenho mais baixo do que o paradigma estruturado – Mais difícil compreensão no início 19 Programação OO ● ● Usa classes e objetos criados a partir de modelos para representar e processar dados; Classes são estruturas das linguagens que é um determinado modelo – Possui dados e operações; – São moldes (ou formas) que representam um objeto do mundo real; 20 Programação OO ● Um objeto é uma materialização de uma classe – Pode ser utilizado para representar dados e executar operações; 21 Definição de POO ● Uma “nova” maneira de se pensar problemas usando conceitos do mundo real – ● Uma coleção de objetos do mundo real que interagem entre si Fundamentos do paradigma OO 22 Fundamentos da POO Um modelo é uma abstração de algo do mundo real! 23 Abstração ● ● ● Se concentrar nos aspectos essenciais do problema; Ignorar o que é supérfluo, detalhes; Transformar o que vemos na realidade para a virtualidade; A POO permite representar conceitos do mundo real, sejam eles concretos ou abstratos. 24 Abstração ● ● Concretos – Cachorro; – Carro; – Produto; – Prateleira; Abstratos – Música; – Venda; – Transação Bancária; Classes e Objetos 25 Classes e Objetos ● Classes são modelos que representam determinado objeto do mundo real – Um objeto é uma instância daquele modelo, ou classe; – Classes possuem características (atributos) e comportamentos (métodos, operações); 26 Classes e Objetos OBJETOS CLASSES – – – – – – – Cachorro Carro Produto Prateleira Música Venda Transação Bancária – – – – – – – Laika Fiat Uno Refrigerante Prateleira do corredor 1 Lepo-lepo Venda as 15:32 Transação as 15:32 27 Classes e Objetos ● Classes – Características (atributos) ● – Operações (métodos) ● ● Definem o comportamento de um objeto; Identidade – ● Definem o estado de um objeto; Dois objetos com estado e operações idênticas não são iguais; Quando os atributos de um objeto são modificados, o estado do objeto muda; 28 Métodos e Atributos ● Classe: Cachorro ● Objeto – Atributos ● ● ● – Nome: Laika Raça: Husky Siberiano Sexo: Feminino Métodos ● ● ● Latir Comer Dormir 29 Métodos e Atributos ● Classe: Carro ● Objeto – Atributos ● ● ● – Modelo: Fusca Ano: 1966 Cor: Verde Métodos ● ● ● Acelerar Frear Passar marcha 30 Classes e Objetos ● ● Uma classe é a forma para criação de objetos; Um objeto representa uma instância de uma classe – ● Representação concreta de uma classe; Objetos de uma mesma classe possuem – Características semelhantes; – Comportamento comum; – Capacidade de interagir com outros objetos; 31 Classes e Objetos GATO g1 = new GATO(); g1 Raça: Savannah Nome: Gatuno Peso: 2,5 quilos Idade: 2 anos GATO g2 = new GATO(); g2 Raça: Maine Moon Nome: Listrado Peso: 3 quilos Idade: 5 anos Nome da classe: GATO GATO g3 = new GATO(); g3 Raça: Siamês Nome: Bichano Peso: 4 quilos Idade: 3 anos 32 Classes e Objetos em UML OBJETOS CLASSE 33 Composição 34 Composição ● ● A composição (ou delegação) é um mecanismo de reuso da POO; Com a composição, uma instância de uma classe existente é utilizada como componente de outra classe – Na prática, uma classe é o tipo do atributo de outra classe; 35 Classe Data ● ● Atributos: – dia, mes e ano; – Qual o tipo desses atributos? Métodos: – Data(dia, mes, ano) ● – dataEhValida(dia, mes, ano) ● – Construtor da classe; Avalia se dia, mes e ano são valores que representam uma data válida; toString() ● Método sobreposto da classe Object. 36 “Deus amou tanto o mundo que deu seu Filho, seu único filho, pela seguinte razão: para que ninguém precise ser condenado; para que todos, crendo nele, possam ter vida plena e eterna.” João 3:16 (A Mensagem) 37