PDS Aula 1.2 Introdução a Java, POO e Composição Prof. Bruno Moreno bruno.moreno@ifrn.edu.br
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