Java - UFJF

Propaganda
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-TestingQAInsights.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.
Figura 2 - Disponível em http://gse.ufsc.br/~bezerra/disciplinas/cpp/aulas/Encapsulamento.jpg - Acesso em
03/03/2015
14
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-ejava/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
30
• DrJava – http://www.drjava.org/
Comparação de código Java
com C
• Ambos códigos fazem a mesma função.
Código em C:
Código em Java:
#include<stdio.h>
int main(void) {
printf("Hello World\n");
return 0;
}
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
31
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-sunpor-us-7-4-bilhoes-20042009-5.shl - Acesso em 03/03/2015
35
Referências
• Figura 1 - Disponível em http://qainsights.com/wpcontent/uploads/2012/11/Black-Box-TestingQAInsights.png - Acesso em 03/03/2015
• Figura 2 - Disponível em
http://gse.ufsc.br/~bezerra/disciplinas/cpp/aulas/Encaps
ulamento.jpg - Acesso em 03/03/2015
• Figura 3 - Disponível em
http://www.caelum.com.br/apostila-java-orientacaoobjetos/o-que-e-java/maquinavirtual2.png - Acesso em
03/03/2015
36
Download