Programação Orientada a Objetos – (POO0001)
[Link]
Alexandre Mendonça Fava
[Link]@[Link]
Universidade do Estado de Santa Catarina – UDESC
Programa de Pós-graduação em Computação Aplicada – PPGCA
Roteiro
❑ [Link] ❑ Operadores
❑ Comentários ❑ Aritméticos
❑ Pacotes ❑ Relacionais
❑ Saída padrão ❑ Lógicos
❑ Tipos de dados ❑ Estruturas de Controle
❑ Operadores ❑ if
❑ Declaração de variáveis ❑ if...else
❑ switch
❑ Estruturas de Controle
❑ Estruturas de Repetição
❑ Estruturas de Repetição
❑ while
❑ Resumo ❑ do...while
❑ Referências ❑ for
Centro de Ciências Tecnológicas 2/78
Comentários
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 }
8 // Comentário de fim de linha
9 /*
10 * Comentários tradicionais
11 */
12 /**
13 * Comentários Javadoc
14 */ 3/78
Comentários
5 [Link]("Olá, Mundo!");
6 }
}
7
8 // Comentário de fim de linha
9 /*
10 * Comentários tradicionais
11 */
12 /**
13 * Comentários Javadoc
14 */
DEITEL, Paul. Java: como programar.
4/78
[Link]
É um pacote que contém os recursos básicos da linguagem
É indispensável para executar qualquer programa Java
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 } 5/78
[Link] =
É um pacote que contém os recursos básicos da linguagem
É indispensável para executar qualquer programa Java
Código ([Link])
São mecanismos para a organização
1 import [Link];
e reutilização de código
2
3 public class Main{
4 DEITEL, [Link]
public static Java: como programar..
main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 } 6/78
[Link]
Pacote
import [Link]
= Biblioteca
#include <stdio.h>
São mecanismos para a organização
e reutilização de código
7/78
[Link]
Pacote
import [Link]
Biblioteca #include <stdio.h>
É um esquema de diretórios É um arquivo responsável por
responsável por organizar as gerenciar as funções da
classes fundamentais da entrada e saída padrão
linguagem Java da linguagem C
É possível importar pacotes Todas as funções da
inteiros ou apenas partes biblioteca são importadas*
*após a compilação apenas as funções utilizadas são mantidas
8/78
[Link]
Pacote
import [Link]
Biblioteca #include <stdio.h>
É um esquema de diretórios É um arquivo responsável por
SANTOS, Rafael. Introdução à Programação Orientada a Objetos usando Java.
responsável por organizar as gerenciar as funções da
classes fundamentais da entrada e saída padrão
linguagem Java da linguagem C
É possível importar pacotes Todas as funções da
inteiros ou apenas partes biblioteca são importadas*
*após a compilação apenas as funções utilizadas são mantidas
9/78
[Link]
Pacote
import [Link]
Biblioteca
#include <stdio.h>
System scanf() printf()
10/78
[Link]
fgetc() fclose()
Pacote
import [Link]
Biblioteca
#include <stdio.h>
puts()
getc()
fread()
tmpfile() sprintf()
System scanf() putc() fwrite()
fdopen() ungetc() perror()
printf() tmpnam() fgets()
remove() sscanf() fprintf()
fscanf() fputc() ferror()
fread() fsetpos() fflush()
vscanf() putchar() ftell()
fseek() vsscanf() setbuf()
11/78
[Link]
Process Enum Class fgetc() fclose()
Thread
Void
Pacote
import [Link]
Biblioteca
#include <stdio.h>
puts()
getc()
Runtime fread()
ClassLoader Character tmpfile() sprintf()
ClassValue Compiler String scanf() putc() fwrite()
StrictMath StringBuilder fdopen() ungetc() perror()
SecurityManager System printf() tmpnam() fgets()
StackTraceElement Number remove() sscanf() fprintf()
Long StringBuffer Math fscanf() fputc() ferror()
InheritableThreadLocal fread() fsetpos() fflush()
ThreadLocal ProcessBuilder vscanf() putchar() ftell()
Throwable Package Object fseek() vsscanf() setbuf()
12/78
[Link]
Process Enum Class fgetc() fclose()
[Link]
Thread
Void
Pacote
import [Link]
Biblioteca
#include <stdio.h>
puts()
getc()
Runtime fread()
ClassLoader Character tmpfile() sprintf()
ClassValue Compiler String scanf() putc() fwrite()
StrictMath StringBuilder fdopen() ungetc() perror()
SecurityManager System printf() tmpnam() fgets()
StackTraceElement Number remove() sscanf() fprintf()
Long StringBuffer Math fscanf() fputc() ferror()
InheritableThreadLocal fread() fsetpos() fflush()
ThreadLocal ProcessBuilder vscanf() putchar() ftell()
Throwable Package Object fseek() vsscanf() setbuf()
13/78
[Link]
DEITEL, Paul. Java: [Link]
[Link] como programar..
14/78
[Link]
DEITEL, Paul. [Link]
[Link] Java: como programar..
Os pacotes são
um recurso
tanto
organizacional,
quanto de
controle de
acesso
15/78
[Link]
[Link] [Link]
Os pacotes são
um recurso
tanto
organizacional,
quanto de
controle de
acesso
16/78
Saída padrão
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 }
17/78
Saída padrão
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 }
SCHILDT, Herbert. Java para iniciantes.
Olá,
Mundo!
Sistema [Link]ída [Link]í[Link]
18/78
Saída padrão
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 [Link]("Olá, Mundo!");
6 }
7 }
Olá,
Mundo!
Sistema [Link]ída [Link]í[Link]
19/78
Saída padrão
DEITEL, Paul. Java: como programar.
20/78
Saída padrão
[Link]
DEITEL, Paul. Java: como programar.
21/78
Saída padrão
SCHILDT,
DEITEL, Herbert. Javacomo
paraprogramar.
iniciantes.
[Link]
Paul. Java:
22/78
Saída padrão: Exemplos
Código ([Link]) Saída
1 import [Link]; Linha 1
2 Linha 2
3 public class Main{
4 public static void main(String[] args){ Linha 3
5 [Link]("Linha 1\n"); Linha 4"Linha 5"
6 [Link]("Linha 2\n");
7 [Link]("Linha \t3\n"); Linha 6
8 [Link]("Linha 4"); Linha
9 [Link]("\"Linha 5\""); 7
10 [Link]("\n\nLinha 6");
11 [Link]("%n%s%n%s", "Linha", "7");
12 }
}
23/78
Saída padrão: Exemplos
Código ([Link]) Saída
1 import [Link]; Linha 1
2 Linha 2
3 public class Main{
4 public static void main(String[] args){ Linha 3
5 [Link]("Linha 1\n"); Linha 4"Linha 5"
6 [Link]("Linha 2\n");
7 [Link]("Linha \t3\n"); Linha 6
8 [Link]("Linha 4"); Linha
9 [Link]("\"Linha 5\""); 7
10 [Link]("\n\nLinha 6");
11 [Link]("%n%s%n%s", "Linha", "7");
12 }
}
24/78
Saída padrão: Exemplos
Código ([Link]) Saída
1 import [Link]; Linha 1
DEITEL, Paul. Java: como programar.
2 Linha 2
3 public class Main{
4 public static void main(String[] args){ Linha 3
5 [Link]("Linha 1\n"); Linha 4"Linha 5"
6 [Link]("Linha 2\n");
7 [Link]("Linha \t3\n"); Linha 6
8 [Link]("Linha 4"); Linha
9 [Link]("\"Linha 5\""); 7
10 [Link]("\n\nLinha 6");
11 [Link]("%n%s%n%s", "Linha", "7");
12 }
}
25/78
Tipo de dados
O que é um dado?
26/78
Tipo de dados
O que é um dado?
Um dado é uma
valor ou atributo
sem significado
27/78
Tipo de dados
PINTO, Rafael; et. al. Estrutura de Dados.
O que é um dado?
Um dado é uma
valor ou atributo
sem significado
28/78
Tipo de dados
Console
❑ Número Inteiro >: 10
>: JAVA
❑ Cadeia de Caracteres >: 10.5
❑ Número Fracionário >: ESC
❑ Comando Lógico
*existem outros mas esses são os principais
29/78
Tipo de dados
Console
❑ Número Inteiro >: 10
>: JAVA
❑ Cadeia de Caracteres >: 10.5
❑ Número Fracionário >: ESC
❑ Comando Lógico
*existem outros mas esses são os principais
SCHILDT, Herbert. Java para iniciantes.
30/78
Tipo de dados
ORIENTADOS
PRIMITIVOS NÃO-PRIMITIVOS
PORAREFERÊNCIA
OBJETOS
String
Array
List
...
31/78
Tipo de dados
PRIMITIVOS
Lógico Inteiro Real Caractere
boolean int float char
short double
byte
long
32/78
Tipo de dados
PRIMITIVOS
Lógico Inteiro Real Caractere
boolean int float char
DEITEL, Paul.
short Java: como
doubleprogramar.
byte
long
33/78
Tipo de dados
PRIMITIVOS
Lógico Inteiro Real Caractere
boolean int float char
DEITEL, Paul.
short Java: como
doubleprogramar.
byte
long
34/78
Tipo de dados
PRIMITIVOS
Lógico Inteiro Real Caractere
boolean int float char
SCHILDT,
DEITEL, Herbert.
Paul. Javacomo
short Java: para iniciantes.
doubleprogramar.
byte
long
35/78
Tipo de dados
Inicialização
Tipo Tamanho Limite
Padrão
boolean 1 bit*
*depende do sistema operacional (JVM)
true – false . false
byte 1 byte -2⁷ – 2⁷-1 . 0
char 2 bytes 0 – 2¹⁶-1 . '\u0000'
short 2 bytes -2¹⁵ – 2¹⁵-1 . 0
int 4 bytes -2³¹ – 2³¹-1 . 0
float 4 bytes -2¹⁴⁹ – (2-2⁻²³)·2¹²⁷ 0.0f
long 8 bytes -2⁶³ – -2⁶³-1 . 0L
double 8 bytes -2¹⁰⁷⁴ – (2-2⁻⁵²)·2¹⁰²³ 0.0d
36/78
Tipo de dados
Inicialização
Tipo Tamanho Limite
Padrão
1 bit*Herbert.
SCHILDT,
boolean true –Java
falsepara .iniciantes.
*depende do sistema operacional (JVM)
false
byte 1 byte -2⁷ – 2⁷-1 . 0
char 2 bytes 0 – 2¹⁶-1 . '\u0000'
short 2 bytes -2¹⁵ – 2¹⁵-1 . 0
int 4 bytes -2³¹ – 2³¹-1 . 0
float 4 bytes -2¹⁴⁹ – (2-2⁻²³)·2¹²⁷ 0.0f
long 8 bytes -2⁶³ – -2⁶³-1 . 0L
double 8 bytes -2¹⁰⁷⁴ – (2-2⁻⁵²)·2¹⁰²³ 0.0d
37/78
Operadores
O que é um operador?
Operadores são símbolos
especiais que executam operações
específicas sobre um certo
conjunto de operandos, de modo
a retornar algum resultado
38/78
Operadores
SCHILDT, Herbert. Java para iniciantes.
O que é um operador?
Operadores são símbolos
especiais que executam operações
específicas sobre um certo
conjunto de operandos, de modo
a retornar algum resultado
39/78
Operadores: Aritméticos
ADIÇÃO (+) MULTIPLICAÇÃO (*)
SUBTRAÇÃO (-) DIVISÃO (/)
MÓDULO OU RESTO (%)
40/78
Operadores: Aritméticos
Código ([Link]) Saída
1 import [Link]; 8
2 15
3 public class Main{ 2
4 public static void main(String[] args){ 1
5 [Link](5+3); // ADIÇÃO 2
6 [Link](5*3); // MULTIPLICAÇÃO 1.6666666666666667
7 [Link](5-3); // SUBTRAÇÃO 0.30000000000000004
8 [Link](5/3); // DIVISÃO
9 [Link](5%3); // RESTO
10 [Link](5.0/3.0); // DIVISÃO
11 [Link](0.1+0.2); // ADIÇÃO
12 }
13 }
41/78
Operadores: Aritméticos
Código ([Link]) Saída
1 import [Link]; 8
2 15
3 public class Main{ 2
4 public static void main(String[] args){ 1
5 [Link](5+3); // ADIÇÃO 2
6 [Link](5*3); // MULTIPLICAÇÃO 1.6666666666666667
7 [Link](5-3); // SUBTRAÇÃO 0.30000000000000004
8 [Link](5/3); // DIVISÃO
9 [Link](5%3); // RESTO
10 [Link](5.0/3.0); // DIVISÃO
11 [Link](0.1+0.2); // ADIÇÃO
12 }
13 }
42/78
Operadores: Relacionais
MAIOR QUE (>) MENOR QUE (<)
MAIOR OU IGUAL (>=) MENOR OU IGUAL (<=)
IGUAL A (==) DIFERENTE (!=)
43/78
Operadores: Relacionais
Código ([Link]) Saída
1 import [Link]; true
2 false
3 public class Main{ true
4 public static void main(String[] args){ false
5 [Link](5>3); // MAIOR false
6 [Link](5<5); // MENOR true
7 [Link](5>=3); // MAIOR IGUAL
8 [Link](5<=3); // MENOR IGUAL
9 [Link](5==3); // IGUAL
10 [Link](5!=3); // DIFERENTE
11
12 }
13 }
44/78
Operadores: Lógicos
E (&&) OU (||) NÃO (!)
E (&) OU (|) OU EXCLUSIVO (^)
*bitwise
45/78
Operadores: Lógicos
Código ([Link]) Saída
1 import [Link]; true
2 false
3 public class Main{ true
4 public static void main(String[] args){ true
5 [Link](true && true); // E false
6 [Link](true && false); // E true
7 [Link](true || true); // OU
8 [Link](true || false); // OU
9 [Link](!true); // NEGAÇÃO
10 [Link](!false); // NEGAÇÃO
11
12 }
13 }
46/78
Operadores: Lógicos *bitwise
Código ([Link]) Saída
1 import [Link]; true
2 false
3 public class Main{ true
4 public static void main(String[] args){ true
5 [Link](true & true); // E false
6 [Link](true & false); // E true
7 [Link](true | true); // OU
8 [Link](true | false); // OU
9 [Link](!true);
SCHILDT, Herbert. Java//para NEGAÇÃO
iniciantes.
10 [Link](!false); // NEGAÇÃO
11
12 }
13 }
47/78
Operadores: Lógicos *bitwise
Código ([Link]) Saída
1 import [Link]; false
2 true
3 public class Main{ true
4 public static void main(String[] args){ true
5 [Link](true ^ true); // XOU false
6 [Link](true ^ false); // XOU true
7 [Link](true | true); // OU
8 [Link](true | false); // OU
9 [Link](!true);
SCHILDT, Herbert. Java//para NEGAÇÃO
iniciantes.
10 [Link](!false); // NEGAÇÃO
11
12 }
13 }
48/78
Operadores: Precedência
maior
precedência
menor
49/78
Operadores: Resumo
Operadores
Aritméticos Relacionais Lógicos Condicionais Atribuição Bitwise Outros
Unário Binário Binário Unário Binário Ternário Binário Unário Binário Unário Binário
+ * < ! && ? : = - & sizeof comma
- / > || += << |
++ % <= -= >> ^
-- + >= *=
- == /=
!= %=
50/78
Operadores: Resumo
Operadores
Aritméticos Relacionais Lógicos Condicionais Atribuição Bitwise Outros
Unário Binário Binário Unário Binário Ternário Binário Unário Binário Unário Binário
+ * < ! && ? : = - & sizeof comma
- / > || += << |
++ % <= -= >> ^
-- + >= *=
- == /=
!= %=
51/78
Declaração de Variáveis
Java proíbe o uso de suas palavras-chave na declaração de nomes de variáveis
SCHILDT, Herbert. Java para iniciantes.
52/78
Declaração de Variáveis
DEITEL, Paul. Java: como programar.
Java proíbe o uso de suas palavras-chave na declaração de nomes de variáveis
SCHILDT, Herbert. Java para iniciantes.
53/78
Declaração de Variáveis
54/78
Declaração de Variáveis
Normalmente
usada em:
❑ nomes de
classes
❑ nomes de
método
❑ nomes de
variável
DEITEL, Paul. Java: como programar..
55/78
Declaração de Variáveis
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int variavel = 10;
6 [Link]("Olá, Mundo!");
7 }
8 }
Variáveis guardam literais
56/78
Declaração de Variáveis
Variáveis guardam literais
Variáveis são nomes Literais são os valores
simbólicos definidos numéricos, textuais ou
pelo programador que lógicos, normalmente
serão associados a atribuídos a variáveis
endereços de memória ou constantes
SCHILDT, Herbert. Java para iniciantes.
57/78
Declaração de Variáveis
Tipo Identificador Literal
int variavel = 10;
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int variavel = 10;
6 [Link]("Olá, Mundo!");
7 }
8 }
58/78
Declaração de Variáveis
Tipo Identificador Literal
int variavel = 10;
Código ([Link])
1 import [Link];
2 SCHILDT, Herbert. Java para iniciantes.
3 public class Main{
4 public static void main(String[] args){
5 int variavel = 10;
6 [Link]("Olá, Mundo!");
7 }
8 }
59/78
Declaração de Variáveis
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int variavel_1 = 10;
6 byte variavel_2 = 10;
7 short variavel_3 = 10;
8 float variavel_4 = 10.0F;
9 double variavel_5 = 10.0D;
10 long variavel_6 = 10L;
11 char variavel_7 = 'A';
12 boolean variavel_8 = true;
13 }
14 } 60/78
Declaração de Variáveis *coerção (ou casting)
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int variavel_1 = (int) 10;
6 byte variavel_2 = (byte) 10;
7 short variavel_3 = (short) 10;
8 float variavel_4 = (float) 10.0;
9 double variavel_5 = (double) 10.0;
10 long variavel_6 = (long) 10;
11 char variavel_7 = (char) 'A';
12 boolean variavel_8 = (boolean) true;
13 }
14 } 61/78
Declaração de Variáveis *coerção (ou casting)
Para:
byte char short int long float double
De:
byte (char) implícito implícito implícito implícito implícito
char (byte) (short) implícito implícito implícito implícito
short (byte) (char) implícito implícito implícito implícito
int (byte) (char) (short) implícito implícito implícito
long (byte) (char) (short) (int) implícito implícito
float (byte) (char) (short) (int) (long) implícito
double (byte) (char) (short) (int) (long) (float)
Algumas conversões podem gerar perda de precisão
62/78
Estruturas
❑ Estruturas de Controle
SCHILDT, Herbert. Java para iniciantes.
❑ Estruturas de Repetição
SCHILDT, Herbert. Java para iniciantes.
63/78
Estruturas de Controle
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6 if(x > 6){
Saída
7 [Link]("1"); 3
8 }else{
9 if(y < 8){
10 [Link]("2");
11 }else{
12 [Link]("3");
13 }
14 } 64/78
Estruturas de Controle A solução dos if...else aninhados
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6 if(x > 6)
Saída
7 [Link]("1"); 3
8 else if(y < 8)
9 [Link]("2");
10 else
11 [Link]("3");
12
13 }
14 } 65/78
Estruturas de Controle Problema do else oscilante
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6 if(x > 3)
Saída
7 if(y < 8) ALI
8 [Link]("AQUI");
9 else
10 [Link]("ALI");
11
12SCHILDT,
} Herbert. Java para iniciantes.
13 }
14 66/78
Estruturas de Controle
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6 switch(x){
Saída
7 case 5: Faz
8 [Link]("Faz");
9 break;
10 DEITEL, default:
Paul. Java: como programar.
11 [Link]("Não faz");
12 break;
13 }
14 67/78
Estruturas de Repetição
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6
7 while(x < y){
8 x = x+1; Testar antes de executar
9 } o bloco de código
10
11 do{
12 x++; Executar o bloco de
13 }while(x < y); código, depois testar
14 68/78
Estruturas de Repetição
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6
7 for(;;){
8 x = x+1;
9 }
10
11 DEITEL,.Paul. Java: como programar.
12
13
14 69/78
2
Estruturas de Repetição
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6
7 for(;;){
8 x = x+1;
9 }
10
11 DEITEL,.Paul. Java: como programar.
12
13
14
SCHILDT,
} Herbert. Java para iniciantes.
}
70/78
13
Estruturas de Repetição
14
SCHILDT,
} Herbert. Java para iniciantes.
}
DEITEL, Paul. Java: como programar.
71/78
Estruturas de Repetição
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int x = 5, y = 10;
6
7 for(x = 0, y = 0; (x<3 || y<5); x++, y++){
8 [Link](x + " " + y + "\n");
9 }
10
11
12
13
14 72/78
Estruturas de Repetição
Código ([Link])
1 import [Link];
2
3 public class Main{
Saída
4 public static void main(String[] args){
0 0 5 int x = 5, y = 10;
1 1 6
2 2 7 for(x = 0, y = 0; (x<3 || y<5); x++, y++){
3 3 8 [Link](x + " " + y + "\n");
4 4 9 }
10
11SCHILDT, Herbert. Java para iniciantes.
12
13
14 73/78
Estruturas de Repetição
Código ([Link])
1 import [Link];
2
3 public class Main{
Saída
4 public static void main(String[] args){
Fazendo:1
5 int x = 0;
Fazendo:3
6
7 for(x = 0; x<5; x++){
8 if (x%2 == 0){
9 continue;
10 }
11 [Link]("Fazendo:" + x + "\n");
12 DEITEL, } Paul. Java: como programar.
13
14 74/78
Estruturas de Repetição APRIMORADA
A instrução for aprimorada itera sobre cada um
dos item de um arranjo sem extrapolar seu limite
DEITEL, Paul. Java: como programar.
75/78
Estruturas de Repetição APRIMORADA
Código ([Link])
1 import [Link];
2
3 public class Main{
4 public static void main(String[] args){
5 int[] arranjo = {87, 68, 94, 100};
6 int soma = 0;
7
8 for(int item : arranjo){
9 soma = soma + item;
10 //soma += item;
11 }
12 }
13
14 76/78
Atribuição Abreviada
SCHILDT, Herbert. Java para iniciantes.
77/78
Resumo
❑ Pacotes: A base da linguagem é o [Link], porém outros pacotes
fornecem muitos outros recursos adicionais.
❑ Linguagem livre: Java não se preocupa com indentação.
❑ Estruturas: No Java tanto o if, if...else e switch quanto o while,
do...while e for são praticamente idênticos a qualquer outra linguagem.
❑ Fortemente tipada: Quaisquer variáveis devem pertencer a algum tipo.
❑ Sensível ao texto: A linguagem Java diferencia maiúsculas de
minúsculas (case-sensitive).
❑ Declaração: Além da declaração de variáveis, Java permite a declaração
de objetos (será visto em aulas futuras).
78/78
Referências
SCHILDT, Herbert. Java para iniciantes: crie, compile e execute. 6. ed.
Porto Alegre: Bookman, 2015. Disponível em:
<[Link]
SILVA, Fabricio; LEITE, Márcia; OLIVEIRA, Diego. Paradigmas de
Programação. Porto Alegre: SAGAH, 2019. Disponível em:
<[Link]
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 79/78
Programação Orientada a Objetos – (POO0001)
[Link]
Alexandre Mendonça Fava
[Link]@[Link]
Universidade do Estado de Santa Catarina – UDESC
Programa de Pós-graduação em Computação Aplicada – PPGCA