Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apresentação Java e UML - Instituto de Tecnolog...

Apresentação Java e UML - Instituto de Tecnologia Infnet RJ Jun-2016

Esta apresentação aborda a integração entre Java e UML (Unified Modeling Language), destacando como essas ferramentas podem ser utilizadas em conjunto no desenvolvimento de sistemas orientados a objetos. Ministrada no Instituto de Tecnologia Infnet, no Rio de Janeiro, em junho de 2016, a palestra explora conceitos fundamentais de UML, como diagramas de classes, sequências e casos de uso, e demonstra sua aplicação prática na modelagem de soluções em Java. Ideal para estudantes e profissionais que desejam aprimorar suas habilidades em design de software e programação.

Wallace Espindola

June 14, 2016
Tweet

More Decks by Wallace Espindola

Other Decks in Technology

Transcript

  1. 2 História ▪ Criada na década de 90 pela Sun

    Microsystems ▪ Nasceu como Oak, uma solução proposta para controlar televisões e vídeo por demanda ▪ Foi adaptado para internet e lançado em 1995 rebatizado para Java
  2. 3 História ▪ Em 2004, quase 10 anos após lançada

    Java já tinha mais de 3 milhões de desenvolvedores em todo o mundo ▪ Foi concebida para rodar em ambientes heterogêneos, podia ser executada em diversos browsers diferentes através dos Applets Java, o que o popularizou rapidamente pelo mundo
  3. 4 História ▪ Em 2006/2007 a Sun lançou o Java

    como Software Livre sob os termos da GNU General Public License (GPL) ▪ A Sun foi comprada pela Oracle em 2009 e o Java com ela ▪ É a linguagem mais utilizada no mundo em 2015/2016 [Fontes: TIOBE / PYPL]
  4. 5 Características ▪ Orientação a objetos ▪ Portabilidade - Independência

    de plataforma - "escreva uma vez, execute em qualquer lugar" ("write once, run anywhere") - ambiente de execução (JVM) ▪ Recursos de Rede - extensa biblioteca de rotinas que facilitam uso com protocolos TCP/IP, como HTTP e FTP ▪ Segurança - Pode executar programas via rede com restrições de execução
  5. 6 Outras Características ▪ Sintaxe similar a C/C++ ▪ Facilidades

    de Internacionalização - Suporta nativo Unicode ▪ É distribuída com um vasto conjunto de bibliotecas (APIs) ▪ Possui facilidades para criação de programas distribuídos e multitarefa (múltiplas linhas de execução/threads) ▪ Desalocação de memória automática via processo de coletor de lixo (Garbage Collector) – evolução em relação ao C/C++ ▪ Carga Dinâmica de Código – programas são formados por uma coleção de classes armazenadas independentemente e que podem ser carregadas em tempo de execução pelo ClassLoader
  6. 7 A Máquina Virtual Java (JVM) ▪ Programa compilado ▪

    Bytecode gerado ▪ Bytecode é interpretado diretamente pelas JVMs, o que o torna independente de plataforma, pois não é necessário recompilar para outras plataformas / sistemas operacionais
  7. 8 Procedural x Orientado a Objetos Envio de Mensagem Chamada

    de Função Operação / Método Função / Procedimento Objeto / Instância Variável Classes Tipos de Dados Paradigma de Objetos Paradigma Procedural
  8. 9 Orientação a Objetos • Java é uma linguagem orientada

    a objetos, baseada em Classes/Objetos/Métodos, e esse paradigma fundamenta-se em 4 pilares básicos: • Abstração • Encapsulamento • Herança • Polimorfismo
  9. 10 Classes e Métodos public class OlaMundo { // Declaração

    de Classe // Declaração de Método public static void main(String[] args) { // Imprime na tela/console a frase System.out.println(" Olá Mundo !!! "); } }
  10. 11 Classes Abstratas abstract class Funcionario { protected double salario;

    public abstract double getBonificacao(); } class Presidente extends Funcionario { public double getBonificacao() { return this.salario * 1.5; } } class Gerente extends Funcionario { public double getBonificacao() { return this.salario * 1.2; } } class Diretor extends Gerente { //etc }
  11. 12 Interfaces interface Tributavel { public double calculaTributos(); } class

    Conta { // etc } class Poupanca extends Conta { // etc } class ContaCorrente extends Conta implements Tributavel { public double calculaTributos() { return this.getSaldo() * 0.15; } } class SeguroDeVida implements Tributavel { public double calculaTributos() { return 47.5; } }
  12. 13 Classes Internas (Inner Classes) public class Cavalo extends Animal

    { public void fazerBarulho() { System.out.println("RIINCH!"); } // Classe interna e privada. // Existe somente no contexto da classe "Cavalo". private class Parasita extends Animal { public void fazerBarulho() { System.out.println("SQRRT"); } } }
  13. 14 Polimorfismo public abstract class Animal { public abstract void

    fazerBarulho(); } public class Cachorro extends Animal { public void fazerBarulho() { System.out.println("AuAu!"); } } public class Gato extends Animal { public void fazerBarulho() { System.out.println("Miau!"); } } public class Teste { // Roda o programa public static void main(String[] args) { // Polimorfismo Animal a1 = new Gato(); a1.fazerBarulho(); } } Saída da execução: >> Miau!