o.o - java - ufjf | universidade federal de juiz de fora · as grandes vantagens do java...

36
OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1

Upload: vuongkiet

Post on 07-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

OOP - Java Artur Duque Rossi

Mestrado em Modelagem Computacional

Universidade Federal de Juiz de Fora

1

Page 2: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Sumário

• Java – Aviso!

• História do Java

• Programação Orientada à Objetos

• Os quatro pilares da OOP

• Abstração

• Encapsulamento

• Modificadores de acesso

• Herança

• Polimorfismo

• Tratamento de exceções

2

Page 3: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Sumário

• As grandes vantagens do Java

• As desvantagens do Java

• Máquina virtual Java (JVM)

• Exemplos de utilidade da JVM

• JVM, JDK ou JRE, qual baixar?

• IDEs (Integrated Development Enviroment)

• Comparação de código Java com C

• Onde posso aprender Java?

3

Page 4: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Java – Aviso!

• Apesar de parecer pouco produtivo, a premissa de Java é ser utilizada para aplicações de médio e grande porte com um time de desenvolvedores de tamanho variável.

4

Page 5: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

História do Java

• Baseada em C++;

• Em 1991 a empresa Sun Microsystems financiou sua criação;

• De Oak à Java;

5

Page 6: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

História do Java

• Foi anunciado formalmente em 1995;

• Seu sucesso se deu em grande parte por sua compatibilidade com a web;

• Em 2009 a Sun, então proprietária foi comprada pela Oracle por $7,4bi.

6

Page 7: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Programação Orientada à Objetos

• A Programação orientada à objetos (OOP) é um dos paradigmas da linguagem de programação;

• Clareza no código;

• Facilita o desenvolvimento de aplicações em times de programadores em comparação com a programação estruturada.

7

Page 8: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Programação Orientada à Objetos

• Suponha que você possui determinado objeto, no caso uma classe.

8

Page 9: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Programação Orientada à Objetos

• Caso você quisesse utilizar um método ou acessar suas variáveis deveria instanciar esta classe.

• Para usar um método contido nesta classe deveria utilizar esta sintaxe.

9

Page 10: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Programação Orientada à Objetos

• O modificador static (que se aplica antes dos modificadores de acesso) faz com que o objeto e seus atributos dispensem necessidade de serem instanciados.

• Caso a classe Funcionario fosse estática, para acessar o método pagamento seria utilizado o seguinte código.

10

Page 11: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Programação Orientada à Objetos

• Algumas linguagens OOP:

• C++

• Objective-C

• Smalltalk

• Delphi

• Java

• C#

• Perl

• Python

• Ruby

• PHP

11

Page 12: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Os quatro pilares da OOP

• Abstração

• Encapsulamento

• Herança

• Polimorfismo

12

Page 13: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Abstração

• Esconder todas as informações irrelevantes para o usuário, a fim de tornar o código mais direto.

13

Figura 1 - Disponível em http://qainsights.com/wp-content/uploads/2012/11/Black-Box-Testing-QAInsights.png - Acesso em 03/03/2015

Page 14: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Encapsulamento

• Separar o as informações em conjuntos para que o programa fique mais flexível, sendo mais fácil de se manipular;

• Restringir o acesso de determinados objetos em alguns casos. 14

Figura 2 - Disponível em http://gse.ufsc.br/~bezerra/disciplinas/cpp/aulas/Encapsulamento.jpg - Acesso em 03/03/2015

Page 15: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Modificadores de acesso

• Public:

• Pode ser acessado por outro código do programa do mesmo assembly ou outro assembly que referencia o objeto.

• Private

• Só pode ser acessado pela mesma classe ou estrutura que o criou.

15

Page 16: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Modificadores de acesso

• Protected

• Pode ser acessado pela mesma classe ou estrutura que o criou e classes derivadas.

• Internal

• Pode ser acessado por outro código somente do mesmo assembly.

• Protected Internal

• Pode ser acessado por qualquer código no mesmo assembly ou por qualquer classe derivada em outro assembly.

16

Page 17: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Herança

• É a capacidade de um objeto herdar características de outro.

17

Page 18: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Herança - Exemplo

• Note que o Gerente é um Funcionário e ambos compartilham determinadas variáveis.

18

Page 19: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Herança - Exemplo

• A Solução!

19

Page 20: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Polimorfismo

• Polimorfismo é a possibilidade de um objeto ser referenciado de várias maneiras.

20

Page 21: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Polimorfismo - Exemplo

• Considere a classe gerente que herdou características de um funcionário no exemplo de herança e uma determinada classe a seguir.

21

Page 22: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Polimorfismo - Exemplo

• Caso o seguinte código seja escrito, ao ser compilado e rodado o programa irá rodar sem nenhum erro, pois gerente é um funcionário.

22

Page 23: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Tratamento de exceções

• Em muitas linguagens OOP o tratamento de exceções em código ficou facilitado.

• A sintaxe de um código com tratamento de exceções genérico é:

23

Page 24: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

As grandes vantagens do Java

• Orientação a objetos;

• Multiplataforma;

• Integração com web;

24

Page 25: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

As grandes vantagens do Java

• Muitas bibliotecas gratuitas;

• A máquina virtual Java é uma especificação, e não um software.

• É grátis!

25

Page 26: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

As desvantagens de Java

• A pré-compilação exige tempo;

• Não condiz com a implementação de pontos flutuantes da maioria dos processadores;

• Os bytecodes gerados podem ser usados em engenharia reversa;

• Não suporta herança múltipla de implementação nem ponteiros.

26

Page 27: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Máquina virtual Java (JVM)

27

Figura 3 - Disponível em http://www.caelum.com.br/apostila-java-orientacao-objetos/o-que-e-java/maquinavirtual2.png - Acesso em 03/03/2015

Page 28: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Exemplos de utilidade da JVM

• Roda sobre o sistema operacional;

• Otimiza o código através de hotspots;

• Utiliza o Just in Time Compiler para isso;

28

Page 29: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

JVM, JDK ou JRE, qual baixar?

• JVM (Java Virtual Machine) é apenas máquina virtual, ela vem junto com o JDK ou JRE;

• JRE (Java Runtime Enviroment) é o ambiente de execução Java;

• JDK (Java Development Kit) é o JRE com o compilador Java e outras ferramentas;

29

Page 30: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

IDEs (Integrated Development Enviroment) • Netbeans – https://netbeans.org/

• Eclipse – https://eclipse.org/

• Jcreator – http://www.jcreator.com/

• Processing – https://www.processing.org/

• BlueJ – http://www.bluej.org/

• Jbuilder – http://www.embarcadero.com/br/products/jbuilder

• DrJava – http://www.drjava.org/

30

Page 31: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Comparação de código Java com C

• Ambos códigos fazem a mesma função.

31

Código em C: #include<stdio.h> int main(void) { printf("Hello World\n"); return 0; }

Código em Java: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }

Page 32: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Onde posso aprender Java?

• Livros:

• Lewis, John; Loftus, William Java Software Solutions Foundations of Programming Design. Pearson Education.

• Deitel, Paul; Deitel, Harvey. Java Como programar Pearson Education.

32

Page 33: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Onde posso aprender Java?

• Sites:

• http://www.caelum.com.br/apostila-java-orientacao-objetos/ - Apostila online

• http://stackoverflow.com/ - Comunidade de programação internacional

• http://www.guj.com.br/ - Comunidade de programação brasileira

• http://www.codeproject.com/ - Repositório de programas com explicação do código

33

Page 34: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Onde posso aprender Java?

• Sites:

• https://code.google.com/ - Repositório de códigos de programas

• https://github.com/ - Repositório de códigos de programas (Muitos open sources)

• Se nada der certo... Ou se der muito certo!

• https://www.elance.com/ - Site de freelancers desenvolvedores, designers.

34

Page 35: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Referências

• Lewis, John; Loftus, William (2012). Java Software Solutions Foundations of Programming Design 7th ed. Pearson Education.

• Deitel, Paul; Deitel, Harvey (2010). Java Como programar 8ª ed. Pearson Education.

• http://www.caelum.com.br/apostila-java-orientacao-objetos/ - Acesso em 03/03/2015

• http://info.abril.com.br/noticias/negocios/oracle-compra-sun-por-us-7-4-bilhoes-20042009-5.shl - Acesso em 03/03/2015

35

Page 36: O.O - Java - UFJF | Universidade Federal de Juiz de Fora · As grandes vantagens do Java •Orientação a objetos; ... As desvantagens de Java ... •

Referências

• Figura 1 - Disponível em http://qainsights.com/wp-content/uploads/2012/11/Black-Box-Testing-QAInsights.png - Acesso em 03/03/2015

• Figura 2 - Disponível em http://gse.ufsc.br/~bezerra/disciplinas/cpp/aulas/Encapsulamento.jpg - Acesso em 03/03/2015

• Figura 3 - Disponível em http://www.caelum.com.br/apostila-java-orientacao-objetos/o-que-e-java/maquinavirtual2.png - Acesso em 03/03/2015

36