0% acharam este documento útil (0 voto)
47 visualizações78 páginas

1 - Java

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
47 visualizações78 páginas

1 - Java

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Programação Orientada a Objetos – (POO0001)

JAVA

Alexandre Mendonça Fava


[email protected]

Universidade do Estado de Santa Catarina – UDESC


Programa de Pós-graduação em Computação Aplicada – PPGCA
Programação Orientada a Objetos – (POO0001)

JAVA

Alexandre Mendonça Fava


[email protected]

Universidade do Estado de Santa Catarina – UDESC


Programa de Pós-graduação em Computação Aplicada – PPGCA
Programação Orientada a Objetos – (POO0001)

JAVA

Alexandre Mendonça Fava


[email protected]

Universidade do Estado de Santa Catarina – UDESC


Programa de Pós-graduação em Computação Aplicada – PPGCA
Programação Orientada a Objetos – (POO0001)

JAVA

Alexandre Mendonça Fava


[email protected]

Universidade do Estado de Santa Catarina – UDESC


Programa de Pós-graduação em Computação Aplicada – PPGCA
Roteiro
❑ Por que Java?
❑ Paradigmas de Programação
❑ Orientado a Objetos
❑ Imperativa
❑ Funcional
❑ Genérica Hora, hora, hora...
❑ WORA Já vamos começar então.
❑ Configuração
❑ Resumo
❑ Referências Duke, o Mascote do Java
Centro de Ciências Tecnológicas 5/76
Por que Java?

6/76
Por que Java?

7/76
Por que Java?

8/76
Por que Java?
DEITEL, Paul. Java: como programar.

9/76
Por que Java?
https://www.tiobe.com/tiobe-index/

10/76
Por que Java?
https://stackshare.io/java https://stackshare.io/java

11/76
Por que Java?
https://trends.google.com.br/trends

12/76
Por que Java?
SCHILDT, Herbert. Java para iniciantes.

DEITEL, Paul. Java: como programar.

13/76
Por que Java?
SCHILDT, Herbert. Java para iniciantes.

DEITEL, Paul. Java: como programar.

14/76
Por que Java?
Aula de POO
em C++

Muahaha...
Vou fazer tudo
como em C.

15/76
Por que Java?
Aula de POO
em C++
https://pt.wikipedia.org/wiki/C++
Muahaha...
Vou fazer tudo
como em C.

16/76
Por que Java?
Aula de POO
em Java
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programação)

17/76
Paradigma

18/76
Paradigma
A parábola dos
macacos

19/76
Paradigma
Passando giz no taco de

A parábola dos sinuca sem saber o motivo

macacos

20/76
Paradigma
SILVA, Fabricio; LEITE, Márcia; OLIVEIRA, Diego. Paradigmas de Programação.

É um modelo, um padrão
para a solução de problemas

21/76
Paradigma
Todas as linguagens de programação
querem resolver um problema,
logo
todas as linguagens de programação estão
construídas sobre um paradigma.

22/76
Paradigma
Paradigma
(de programação)
Linguagem
(de programação)

É um modelo, um padrão É o vocabulário utilizado


para a solução de problemas para a solução de problemas

23/76
Paradigma
Paradigma
(de programação)
Linguagem
(de programação)

É um modelo, um padrão É o vocabulário utilizado


para a solução de problemas para a solução de problemas
Imperativo
Funcional Genérico
Orientado a Objetos 24/76
Paradigma
Paradigma
(de idioma)
Linguagem
(de idioma)

É um modelo, um padrão É o vocabulário utilizado


para a solução de problemas para a solução de problemas
Fala Português Espanhol
Sinais Tátil LIBRAS BRAILLE
Escrita 漢字 カタカナ25/76
Paradigma

26/76
Paradigma: Imperativo
Exemplo
Ei máquina: Humanos e
faça isso, suas formas
depois isso, imperativas
depois aquilo. de dar ordens.

27/76
Paradigma: Imperativo
Código
1 #include <stdio.h>
2
3 int main() {
4 int i;
5 int lista[9] = {1,2,3,4,5,6,7,8,9};
6 printf("Numeros pares de 1 a 9: ");
7 for(i = 0; i < 9; i++){
8 if(lista[i] % 2 == 0){
9 printf("%d ", lista[i]);
10 }
11 }
12 return 0;
13 }
14 28/76
Paradigma: Funcional
Funções são a base da Uma função pode receber outras
programação funcional funções como argumento

29/76
Paradigma: Funcional
Exemplo
Humanos e
Ei máquina: suas formas
𝑦 matemáticas
λ x : x + x → x[ ].
2
de dar ordens.

30/76
Paradigma: Funcional
Código
1 verificandoPar :: [Integer] -> [Integer]
2 verificandoPar lista = [n | n <- lista, even n]
3
4 main :: IO ()
5 main = do
6 let lista = [1..9]
7 putStr $ "Numeros pares de 1 a 9: "
8 print (verificandoPar lista)
9
10
11
12
13
14 31/76
Paradigma: Genérico
O tipo dos dados de entrada são Linguagens de tipagem dinâmicas
irrelevantes para a solução meio que já fazem isso

A linguagem de programação C++ usa template como um tipo


genérico (ou seja, ele poder ser: int, float, char, bool, etc...)

32/76
Paradigma: Genérico
Exemplo
Ei máquina: Humanos e
faça isso, não suas formas
importa a entrada, genéricas de
dá teu jeito. dar ordens.

33/76
11 }

Paradigma: Genérico
12
13
}
return pares;
14 }
15 Código
16 int main() {
17 list<int> numeros = {1, 2, 3, 4, 5, 6, 7, 8, 9};
18 list<int> pares = filtrarPares(numeros);
19
20 cout << "Numeros pares de 1 a 9: ";
21 for (int numero : pares) {
22 cout << numero << " ";
23 }
24 cout << endl;
25
26 return 0;
27 }
28
34/76
Paradigma: Genérico
Código
1 #include <iostream>
2 #include <list
3
4 using namespace std;
5 template <typename T>
6 list<T> filtrarPares(list<T> lista){
7 list<T> pares;
8 for (T numero : lista){
9 if (numero % 2 == 0){
10 pares.push_back(numero);
11 }
12 }
13 return pares;
14 } 35/76
Paradigma: Orientado a Objetos
Tudo é um objeto, e todo objeto é Os objetos podem interagir uns
constituído de atributos e métodos com os outros

36/76
Paradigma: Orientado a Objetos
Exemplo
Ei máquina: Humanos e
faça isso, com base suas formas de
naquilo e com um reaproveitar
pouco disso. ordens.

37/76
Paradigma: Orientado a Objetos
Exemplo
Ei máquina: Humanos e
faça isso, com base suas formas de
naquilo e com um reaproveitar
pouco disso. ordens.

DEITEL, Paul. Java: como programar.

38/76
Paradigma: Orientado a Objetos

Polimorfismo Herança Composição Encapsulamento

39/76
Paradigma: Orientado a Objetos

Polimorfismo Herança Composição Encapsulamento

Abstração 40/76
Paradigma: Orientado a Objetos
Código (Main.java)
1 import java.util.ArrayList;
2 import java.util.List;
3
4 public class Main {
5 public static void main(String[] args) {
6 List<Integer> numeros = new ArrayList<>();
7 for (int i = 1; i <= 9; i++) {
8 numeros.add(i);
9 }
10 Lista lista = new Lista(numeros);
11 lista.imprimirNumerosPares();
12 }
13 }
14 41/76
Paradigma: Orientado a Objetos
Código (Lista.java)
1 public class Lista{
2 private List<Integer> numeros;
3 public Lista(List<Integer> numeros){
4 this.numeros = numeros;
5 }
6 public void imprimirNumerosPares(){
7 System.out.print("Numeros pares de 1 a 9: ");
8 for(Integer numero : numeros){
9 if (numero % 2 == 0){
10 System.out.print(numero + " ");
11 }
12 }
13 }
14 } 42/76
Paradigmas de Programação
Define uma sequência de passos
Imperativo para a solução de um problema

Define objetos em termos de


Orientação atributos e métodos
a Objetos

Define uma função matemática


Funcional
para a solução de um problema

Define tipos de dados genéricos


Genérico que independem da entrada
43/76
Paradigmas de Programação
Define uma sequência de passos
Imperativo para a solução de um problema

Define objetos em termos de


Orientação atributos e métodos
a Objetos

Define uma função matemática


Funcional
para a solução de um problema

Define tipos de dados genéricos


Genérico que independem da entrada
44/76
Paradigmas de Programação
Funcional Orientação a
Imperativo
Objetos

Classes & Objetos


Sequência de Passos Funções

Desenvolvimento

Variáveis Mutáveis Dados Imutáveis Herança &


Polimorfismo

Estruturas de Funções Compostas


Encapsulamento
Controle 45/76
Paradigmas de Programação
Estruturas de
Controle
Funções Compostas
Encapsulamento

Execução em
Instanciação de
Sequência
Objetos

Funções Validadas

Execução
Troca de Variáveis
Mudanças de Estado

Execução em Execução Paralela Controle de Herança


Nível de Máquina

46/76
WORA

47/76
Write Once, Run Anywhere

48/76
Escreva uma vez, execute em qualquer lugar

49/76
Execução

50/76
Execução

51/76
Execução

52/76
Execução

53/76
Execução
Compilação Execução
Executável
0100010110
1110111110
1110111001
1101100001
0000111011

Código Fonte
Executável
0100010110
1110111110
1110111001
1101100001
0000111011

54/76
Execução
Compilação Execução javac Execução
Executável
0100010110
1110111110
1110111001
1101100001
0000111011

java.class

Código Fonte bytecode


Executável
Código Fonte
0100010110
1110111110
1110111001
1101100001
0000111011

55/76
Execução
DEITEL, Paul.
Compilação Java: como javac
Execução programar. Execução
Executável
0100010110
1110111110
1110111001
1101100001
0000111011

java.class

Código Fonte bytecode


Executável
Código Fonte
0100010110
1110111110
1110111001
1101100001

DEITEL, Paul. Java: como programar.


0000111011

56/76
Execução
Compilação Execução javac Execução
Executável
0100010110
1110111110
1110111001
1101100001
0000111011

java.class

Código Fonte bytecode


Executável
Código Fonte
0100010110
1110111110
1110111001
1101100001
0000111011

57/76
Execução
SCHILDT, Herbert. Java para iniciantes.

58/76
Execução

SILVA, Fabricio; LEITE, Márcia; OLIVEIRA, Diego. Paradigmas de Programação.

59/76
Execução

SCHILDT, Herbert. Java para iniciantes.

60/76
Execução
SCHILDT, Herbert. Java para iniciantes.

SCHILDT, Herbert. Java para iniciantes.

61/76
Execução

62/76
Execução

Código Fonte Código Fonte

Desenvolvimento
Compilador Compilador

Código de Bytecode
Máquina 63/76
Execução Código de
Máquina
Bytecode

Bytecode

Código de
Máquina

Sistema
Tempo de
Operacional
execução

Código de
Máquina Sistema
Hardware Operacional

Hardware
64/76
Execução
Brij kishore Pandey

Ambiente de Código Fonte


Desenvolvimento

Bytecode

Bibliotecas

Binário Execução 65/76


Configuração
https://www.oracle.com/br/java/technologies/downloads/#jdk21-windows

66/76
Configuração
https://www.oracle.com/br/java/technologies/downloads/#jdk21-windows

67/76
Configuração
SCHILDT, Herbert. Java para iniciantes.

https://www.oracle.com/br/java/technologies/downloads/#jdk21-windows

68/76
Configuração

SCHILDT, Herbert. Java para iniciantes.

69/76
Configuração

70/76
Configuração
DEITEL, Paul. Java: como programar.

71/76
Configuração
https://moodle.joinville.udesc.br/

72/76
Configuração
https://moodle.joinville.udesc.br/

73/76
Configuração
https://moodle.joinville.udesc.br/

74/76
Configuração
https://netbeans.apache.org/front/main/download/nb20/

75/76
Resumo
❑ Paradigma de Programação: Define um modelo para solução de
problemas.
❑ Programação Orientada a Objetos: O paradigma da orientação a
objetos é inseparável da linguagem Java, embora possa não ser muito
perceptível em programas pequenos.
❑ Ambiente de Desenvolvimento: Quando instalado e configurado, os
códigos em Java podem ser escritos em softwares mais simples como
blocos de notas, até softwares mais avanças como NetBeans.
❑ Independência de plataforma: O código Java é compilado para
bytecode, que é executado pela Máquina Virtual Java (JVM).
❑ Orientação a Objetos: Não é apenas uma linguagens de programação,
mas também uma filosofia de desenvolvimento de software (e.g. UML).
76/76
Referências
SCHILDT, Herbert. Java para iniciantes: crie, compile e execute. 6. ed.
Porto Alegre: Bookman, 2015. Disponível em:
<https://app.minhabiblioteca.com.br/reader/books/9788582603376>.

SILVA, Fabricio; LEITE, Márcia; OLIVEIRA, Diego. Paradigmas de


Programação. Porto Alegre: SAGAH, 2019. Disponível em:
<https://app.minhabiblioteca.com.br/reader/books/9788533500426>.

DEITEL, Paul. Java: como programar. 4. ed. Porto Alegre: Bookman, 2003.

DEITEL, Paul. Java: como programar. 10. ed. São Paulo: Pearson Education
do Brasil, 2017.

Centro de Ciências Tecnológicas 77/76


Programação Orientada a Objetos – (POO0001)

JAVA

Alexandre Mendonça Fava


[email protected]

Universidade do Estado de Santa Catarina – UDESC


Programa de Pós-graduação em Computação Aplicada – PPGCA

Você também pode gostar