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

Post on 07-Nov-2018

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OOP - Java Artur Duque Rossi

Mestrado em Modelagem Computacional

Universidade Federal de Juiz de Fora

1

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

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

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

História do Java

• Baseada em C++;

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

• De Oak à Java;

5

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

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

Programação Orientada à Objetos

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

8

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

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

Programação Orientada à Objetos

• Algumas linguagens OOP:

• C++

• Objective-C

• Smalltalk

• Delphi

• Java

• C#

• Perl

• Python

• Ruby

• PHP

11

Os quatro pilares da OOP

• Abstração

• Encapsulamento

• Herança

• Polimorfismo

12

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

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

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

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

Herança

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

17

Herança - Exemplo

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

18

Herança - Exemplo

• A Solução!

19

Polimorfismo

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

20

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

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

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

As grandes vantagens do Java

• Orientação a objetos;

• Multiplataforma;

• Integração com web;

24

As grandes vantagens do Java

• Muitas bibliotecas gratuitas;

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

• É grátis!

25

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

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

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

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

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

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

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

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

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

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

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

top related