Slide 1

Slide 1 text

Java + UML Introdução e Conceitos básicos Wallace Espindola

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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]

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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 !!! "); } }

Slide 11

Slide 11 text

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 }

Slide 12

Slide 12 text

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; } }

Slide 13

Slide 13 text

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"); } } }

Slide 14

Slide 14 text

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!

Slide 15

Slide 15 text

15 Dúvidas

Slide 16

Slide 16 text

16 Contatos LinkedIn: https://www.linkedin.com/in/wallaceespindola/ GitHub: https://github.com/wallaceespindola E-mail: [email protected] Twitter: @wsespindola Obrigado!!!