SlideShare uma empresa Scribd logo
Curso de Java
PARTE 03
Estruturas da Linguagem
Classes Wrappers
Operadores Relacionais/Lógicos
Estruturas de Decisão
Estruturas de Repetição
Coleções: List e Map
por: Mário Sergio
mariosergio30@gmail.com
linkedin.com/in/mario-sergio-a1125831
Classes Wrappers (java.lang)
As Classe envólucro (Wrappers) : encapsulam tipos primitivos
Todas essas Classes possuem o método toString() para realizar a
operação inversa, entre outros métodos úteis.
Métodos de conversão a partir de uma String
Ex: Double numero = Double.parseDouble("13.5");
Lembre-se: F1 – para ajuda on-line
Métodos da Classe String
3
Exemplos:
texto.equals(“Accenture");
texto.equalsIgnoreCase(“accenture");
texto.trim();
texto.toUpperCase();
texto.toLowerCase();
texto.contains(“Accenture");
texto.replace(“Brasil",“Japão");
texto.substring(5, 8);
texto.length();
texto.charAt(0);
texto.indexOf("t");
Principais métodos da classe String
https://www.devmedia.com.br/java-string-manipulando-metodos-da-classe-string/29862
Saber mais:
Todos esses métodos retornam valores !
Quais são esses valores para a string abaixo ???
String texto = "Accenture do Brasil";
// Meu Segundo Programa JAVA
// Trabalhando com Números e Operadores Aritméticos
// Baseado em Deitel & Deitel, 2003
// Pacote de extensão Java
import javax.swing.JOptionPane; // import class JOptionPane
public class Adicao {
public static void main( String args[] ) {
String primeiroNumero;// 1o string informado pelo usuário
String segundoNumero; // 2o string informado pelo usuário
int numero1; // primeiro operando da adição
int numero2; // segundo operando da adição
int media; // Resultado da Adição
// ler o primeiro número (na forma string)
primeiroNumero = JOptionPane.showInputDialog("Digite o Primeiro No Inteiro" );
// ler o segundo número (na forma string)
segundoNumero = JOptionPane.showInputDialog( "Digite o Segundo No Inteiro" );
// convertendo os strings em números inteiros
numero1 = Integer.parseInt(primeiroNumero);
numero2 = Integer.parseInt(segundoNumero);
// Somando os números
media = (numero1 + numero2)/2;
// Apresentando os resultados
JOptionPane.showMessageDialog(null, "A media é "+media,"Resultado da media: ",
JOptionPane.PLAIN_MESSAGE);
} // fim do método main()
} // fim da classe Adicao
4
Diálogos com javax.swing
O Pacote swing possui uma biblioteca de Classes para interface
gráfica com o usuário GUI, por enquanto utilizaremos apenas a
classe JOptionPane que oferece caixas de diálogo gráficas
predefinidas que permitem aos programas exibir mensagens aos
usuários:
- O método showMessageDialog() ebite um aviso com inteface gráfica para o
usuário.
- O método showConfirmDialog exibe uma pergunta ao usuário com bobões
OK, NÃO E CANCELAR, e retorna um código de resposta clicada pelo
usuário.
- O método showInputDialog() combina a montagem da janela de edição com
o prompt de digitação do string fornecido pelo usuário.
- As variáveis informadas pelo showInputDialog() aos programas Java são
sempre Strings e devem ser convertidas com o uso das classes wrappers
do pacote java.lang.
5
Diálogos com javax.swing
Mãos à Obra
6
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
Utilize JOptionPane para todas as ações
de interface com usuário.
Operadores de Igualdade e Relacionais
• Todos os operadores relacionais têm o mesmo nível de precedência e associam
da esquerda para a direita.
• São largamente utilizados nas estruturas de controle de decisão e repetição.
• Resultam SEMPRE em um valor lógico, que pode ser atribuido a uma variável do
tipo booleano, ex.:
Operadoralgébricode
igualdadepadrãoou
operador relacional
Operadordeigualdadeou
relacionalemJava
Exemplode
condiçãoemJava
Significadoda
condiçãoemJava
Operadoresdeigualdade
= == x==y xéigualay
<> != x!=y xnãoéigualay
Operadoresrelacionais
> > x>y xémaiorquey
< < x<y xémenorquey
= >= x>=y
xémaiorqueou
igualay
= <= x<=y
xémenorqueou
igualay
7
boolean lAprovado = (media >= 6);
Estruturas de Controle Condicional
8
Também conhecidas como estruturas
decisão, seleção ou de desvio de fluxo.
Seleção
Simples/Composta/Encadeada
Immediate IF
Seleção Múltipla
Estrutura Condicional: if
Sintaxe
if (condição)
comando Java;
[ou {bloco de comandos Java;}]
O Exemplo:
if (media >= 6)
System.out.println(“Aprovado”);
if (media >= 6) {
System.out.print(“Oi Fulano !”);
System.out.println(“Você foi Aprovado”);
} // fim do bloco if
Media >=6 Imprimir “Aprovado”
verdadeiro
falso
9
// Instrução de apenas 1 linha
if (media >= 6){
System.out.print(“O Aluno está”);
System.out.println(“Aprovado”);
} // fim do bloco if
else {
System.out.print(“O Aluno está”);
System.out.println(“Reprovado”);
} // fim do bloco else
Media >=6 Imprimir “Aprovado”
verdadeiro
falso
Imprimir “Reprovado”
10
Estrutura Condicional: if/else
if (media >= 9)
System.out.print(“O Conceito é A”);
else if (media >= 7)
System.out.print(“O Conceito é B”);
else if (media >= 6)
System.out.print(“O Conceito é C”);
else
System.out.print(“O Conceito é D”);
Media >=9 A
verdadeiro
falso
Media >=7 B
verdadeiro
falso
Media >=6 C
verdadeiro
D
falso
Estrutura Condicional: if/else (encadeada)
Mãos à Obra
12
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
informando o resultado final do aluno,
conforme os critérios:
Média:
maior ou igual a 7 - Aprovado
de 4 a 6.9999999.. - Recuperação (não usar operador lógico)
menor que 4 - Reprovado
Operadores de Lógicos
13
Operadores lógicos são largamente utilizados em conjunto com estruturas de controle condicionais.
https://www.tutorialgateway.org/java-logical-operators/
Saber mais:
considerando:
int age;
boolean aprovado;
Lógica Proposicional: Tabela Verdade
Ex: temos as proposições A e B
A: Brasília é a capital do Brasil E B: Lima é a capital do Peru.
A: Gato é um Animal E B: Peixe é um mamífero.
A: Recife é um pais OU B: Olinda é uma cidade
NÃO A: O Japão fica na Ásia
14
Relembrando: Tabela Verdade
Para quem tem
dúvidas...
https://www.tutorialgateway.org/java-logical-operators/
Saber mais:
Mãos à Obra
15
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
adicionando os critérios:
Quantidade de Faltas e trabalho noturno:
Só é permitido ficar em Recuperação se
a quantidade de faltas for menor que 10.
Só é permitido ser aprovado com nota 7
se o aluno tiver menos que 3 faltas ou
comprovar que trabalha a noite. Caso
contrário, só será aprovado direto
com média a partir de 9.
Precedência de operadores
Operadores de Lógicos
Em proposições compostas, é importante respeitarmos a ordem de precedência natural dos operadores:
1º: operador !
2º: conectivo &&
3º: conectivo ||
Portanto, quando desejarmos alterar a ordem das comparações, devemos utilizar parênteses ( )
16
Assim temos: double media = 6.0;
int qtdFaltas = 5;
boolean lTrabalhoNoturno = true;
if (media >= 7 && qtdFaltas < 3 || lTrabalhoNoturno)
resultado = "Aprovado";
if ( (media >= 7) && (qtdFaltas < 3 || lTrabalhoNoturno) )
resultado = "Aprovado";
F F
F F
V
V
F
V
V
F
||
&&
V
F
* Teriamos
aluno aprovado
com média 6 !
• Resultado correto
de acordo com
o problema
proposto
Estrutura Condicional: Immediate-IF
(condição) ? {valor para condição true} : {valor para condição false}
Exemplos:
O operador Ternário ? : retorna um valor dependendo do resultado da condição
17
resultado = (media >= 6) ? "Aprovado" : "Reprovado";
System.out.println((media >= 6) ? "Aprovado" : "Reprovado");
Sintaxe:
Equivalente a: if (media >= 6)
resultado = "Aprovado";
else
resultado = "Reprovado";
Também conhecido como estrutura de seleção múltipla
• O valor a ser testado (condicional) aparece apenas uma vez, diferentemente do que ocorreria com
multiplos if else
• Utilize o comando break para finalizar a execução do switch quando um dos case´s for atendido,
caso contrário, todos os blocos case abaixo serão também executados.
18
Estrutura Condicional: switch / case
É OPCIONAL
Mãos à Obra
19
Baseado no exemplo anterior, crie um novo programa: “Calculadora”
Utilizando a estrutura de seleção múltipla
switch (key) {
case value:
break;
default:
break;
}
20
Estrutura Condicional: switch / case
Um motivo para não usar break
Estruturas de Controle de Repetição
21
Executa trechos de código repetidamente (loops).(lo
Principais Tipos de estruturas de repetição:
- Repetição condicional (indefinida)
while (condition) {
}
Com teste lógico no início
Com teste lógico no final (executa ao menos 1 vez)
Iteração contada
Iteração sobre elementos de uma lista
considerando:
do {
} while (condition);
- Repetição contada (definida) Número pré-determinado
for (int i = 0; condintion over i; i++) {
}
for (String item : list) {
}
List<String> list;
• Essas estruturas de repetição permitem especificar uma ação ou um bloco de ações que devem
permanecer sendo repetidas enquanto determinada condição for verdadeira.
• O corpo da estrutura pode ser uma instrução única ou um bloco de comandos.
• Quando a condição do comando while ou do/while se tornar falsa, a ação (ou bloco) do comando será
pulada. O programa continuará com a ação imediatamente após o comando while.
• IMPORTANTE: você deve sempre prever a ação que tornará falsa a condição do comando while. Caso
contrário seu programa entrará em loop infinito.
22
Estrutura de Repetição: while e do/while
Pode nunca ser executado
boolean lTemVida = true;
while (lTemVida) {
System.out.println("Há Esperança !");
}
int nQtdvidas = 7;
do {
System.out.println("Há Esperança !");
} while (nQtdvidas > 0);
Será executado ao menos 1 vez
Nesses dois exemplos temos problema de looping infinito, pois o valor da VARIAVEL DE CONTROLE não
está sendo alterado dentro do escopo da estrutura.
Mãos à Obra
23
Com base no exercício anterior,
melhore seu “Sistema Escolar”:
Após a exibição do resultado da média do primeiro aluno,
pergunte ao usuário se ele deseja digitar
dados para um novo aluno.
Obs: por enquanto não se preocupe
em armazenar o histórico de todos
alunos/médias
• A estrutura de repetição for permite repetir uma ação ou um bloco de ações em um número definido
de vezes.
• O comando for possui três seções:
24
Estrutura de Repetição: for
for (int x = 0; x < 1000; x++) {
System.out.println("Repetição de numero: " + x);
}
Chamada de Variável de Controle
Será executada EXATAMENTE 1000 vezes
for (inicializadores; condição de continuação; incremento)
{
ação ou bloco de ações no comando;
}
Mãos à Obra
25
Com base no exercício anterior,
melhore seu “Sistema Escolar”:
Precisamos obter mais notas para compor a média, não apenas duas.
Assim, antes de digitar as notas
o usuário precisará informar
quantas notas ele pretende digitar
para cálculo da média do aluno.
Obs: por enquanto não se preocupe
em armazenar o histórico de todos
alunos/médias
Coleções: Listas (java.util.List)
• Uma Lista representa uma coleção de objetos, sendo mais flexivel que
os arrays pois podem variar de tamanho dinamicamente.
- Permitem elementos duplicados
- Permitem valores nulos
- Mantém uma ordenação posicional (por índice)
List<String> listaEstados = new ArrayList<String>();
listaEstados.add("São Paulo");
listaEstados.add("Rio de Janeiro");
listaEstados.add("Minas Gerais");
System.out.println("Segundo elemento da lista :" + listaEstados.get(1));
26https://www.caelum.com.br/apostila-java-orientacao-objetos/collections-framework/
Saber mais:
Exemplos:
Métodos da classe List:
add – Adiciona um item no final da coleção
get – retorna (pega) um item em determinada posição
set – altera o valor de um item em uma determinada posição
size – retona o tamanho atual da coleção
clone – Duplica a ArrayList
contains – busca um valor no array, e retorna true, se o elemento estiver no array;
indexOf – busca um valor no array, mas retorna o índice do elemento encontrado;
lastIndexOf – o mesmo que indexOf mas retorna o último elemento encontrado;
remove – Remove um item da coleção.
27Lembre-se: F1 – para ajuda on-line
Coleções: Listas (java.util.List)
A estrutura de repetição for também permite realizar iterações sobre elementos de uma lista de uma
forma mais direta, sem a necessidade de uma variavel de controle (contador).
28
Estrutura de Repetição: for (com listas)
Para cada iteração, o próximo item da
lista é colocado na variável item,
seguindo a ordem que o item ocupa na
lista (índice).
for (String item : list) {
System.out.println(“Item da lista: " + item);
}
List<String> list;
List<String> listFrutas = new ArrayList<String>();
listFrutas.add("Morango");
listFrutas.add("Abacaxi");
listFrutas.add("Uva");
System.out.println("<<<< Lista de Frutas >>>>>>>");
for (String umaFruta : listFrutas)
System.out.println("Fruta: " + umaFruta);
Exemplo:
Mãos à Obra
29
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
1- Guardar o histórico dos alunos:
nomes, médias, idades, e escolaridade
dos alunos, em quatro objetos do tipo List.
2- Mostrar relatório com nomes, médias, idades,
e escolaridade de TODOS os alunos
no final da execução do programa.
Obs: A escolaridade tem como dominio:
FUNDAMENTAL
MEDIO
SUPERIOR
• Um Map representa uma coleção de objetos, numa estrutura (key,value).
Também conhecida como um PAR (chave,valor). Assim como as listas, podem
variar de tamanho dinamicamente.
- Não permitem elementos duplicados
- Permitem apenas um valor nulo
- Não mantem uma ordenação posicional
- Encontra um valor a partir de sua chave
30
Exemplos:
Map<String,String> mapContatos = new HashMap<>();
mapContatos.put("Tom", "(111)123-4567");
mapContatos.put("Dick", "(222)123-7890");
mapContatos.put("Harry", "(333)373-3703");
String fone = mapContatos.get("Dick");
Coleções: Mapas (java.util.Map)
(222)123-7890
Valor retornado:
31
Iteração sobre todos os elementos de um Map:
for (Map.Entry<String,String> umContato : mapContatos.entrySet()) {
System.out.println("Chave: " + umContato.getKey());
System.out.println("Valor: " + umContato.getValue());
System.out.println("--------------------------------");
}
Coleções: Mapas (java.util.Map)
Busca por uma chave em um Map:
if (mapContatos.containsKey("Harry"))
System.out.println("Telefone:" + mapContatos.get("Harry"));
Telefone: (333)373-3703
saída
Mãos à Obra
32
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
1- Precisamos incluir permissões de acesso para usar o
Sistema escolar. Desejamos que os funcionarios da escola
Realizem login, utilizando usuario e senha antes de iniciar o
cadastro dos alunos.
Dica: Utilize um Map pré-cadastrado (hard-code)
para cadastrar os acessos:
Ex: Chave/valor -> Usuario/senha
PROFESSOR->25413
DIRETOR->felicidade
SECRETARIA->amor1000
COORDENADOR->2018
Instruções: break e continue
• As instruções break e continue modificam o comportamento das estruturas de repetição while, for,
do/while ou switch. .
• A instrução break interrompe o laço (no caso das estruturas de repetição) e impede a execução de
outros casos de um comando switch.
• A instrução continue permite o salto do conjunto de operações, com retorno à expressão condicional
do laço, reiniciando o mesmo (portanto, ao contrário do break, não interrompe o laço).
33
Instruções: break e continue
34
Obrigado !
Referências
Programação de computadores
em Java
Rui Rossi dos Santos
Java 8: Programação de
Computadores - Guia Prático de
Introdução, Orientação e
Desenvolvimento - José Augusto
N. G. Manzano
Slides do Prof. Roberto Pacheco
INE – CTC – UFSC

Mais conteúdo relacionado

PDF
Curso de Java (Parte 4)
PDF
PPTX
PDF
Listas em Prolog
PDF
Programação Orientada a Objetos (POO) com PHP - Parte 1
PDF
Curso de Java: Introdução a lambda e Streams
PDF
Idiomatic Kotlin
PPT
Html & CSS - Best practices 2-hour-workshop
Curso de Java (Parte 4)
Listas em Prolog
Programação Orientada a Objetos (POO) com PHP - Parte 1
Curso de Java: Introdução a lambda e Streams
Idiomatic Kotlin
Html & CSS - Best practices 2-hour-workshop

Mais procurados (20)

PPTX
Java reflection
DOCX
Doble estructura de selección o decisión lógica
PPTX
Programmazione ad oggetti
PPT
Spring AOP
PDF
Monoids - Part 1 - with examples using Scalaz and Cats
PDF
POO - 14 - Vetores
PPTX
Orientação a objetos com PHP
PPTX
Estrutura de dados em Java - Filas com lista encadeada
PDF
Arquitetura Node com NestJS
PPTX
java 8 new features
PPT
Clase 10 Estructuras De Datos Y Arreglos
PPT
Aula Prolog 09 - Listas
PDF
POO - 06 - Encapsulamento
PDF
C Recursion, Pointers, Dynamic memory management
PDF
PHP for Adults: Clean Code and Object Calisthenics
PDF
Estrutura de dados - Implementação de filas com listas
PDF
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...
PDF
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1
PDF
Polymorphism In Java
PDF
Flask Basics
Java reflection
Doble estructura de selección o decisión lógica
Programmazione ad oggetti
Spring AOP
Monoids - Part 1 - with examples using Scalaz and Cats
POO - 14 - Vetores
Orientação a objetos com PHP
Estrutura de dados em Java - Filas com lista encadeada
Arquitetura Node com NestJS
java 8 new features
Clase 10 Estructuras De Datos Y Arreglos
Aula Prolog 09 - Listas
POO - 06 - Encapsulamento
C Recursion, Pointers, Dynamic memory management
PHP for Adults: Clean Code and Object Calisthenics
Estrutura de dados - Implementação de filas com listas
Algebraic Data Types for Data Oriented Programming - From Haskell and Scala t...
Scala 3 by Example - Algebraic Data Types for Domain Driven Design - Part 1
Polymorphism In Java
Flask Basics
Anúncio

Semelhante a Curso de Java (Parte 3) (20)

PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
PPT
Java básico - Módulo 05 - Estruturas de Repetição
PPT
Java Básico :: Introdução
PPT
Java Básico
PDF
Instruções de controle
PDF
Instruções de controle 1
PPT
Aula3
PDF
modulo1.pdf
PDF
Programação estruturada com Java-Aula04
PPT
Java básico - Módulo 04: Estruturas de controle
PPTX
Cópia de 6. Estruturas de controlo de execução.pptx
ODP
Aula03 - JavaScript
PPTX
02 controle de fluxo
PDF
Programação Estruturada com Java-Aula05
PDF
A.S 9 ESTRUTURAS DE CONTROLE pdf 01.pdf
PPT
Algoritmos Aula 06
PPTX
UFCD 0783 - apresentação das aulaC/C++s.pptx
PDF
Aula 1 2
ODP
Java 04 Estrut Controle
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Java básico - Módulo 05 - Estruturas de Repetição
Java Básico :: Introdução
Java Básico
Instruções de controle
Instruções de controle 1
Aula3
modulo1.pdf
Programação estruturada com Java-Aula04
Java básico - Módulo 04: Estruturas de controle
Cópia de 6. Estruturas de controlo de execução.pptx
Aula03 - JavaScript
02 controle de fluxo
Programação Estruturada com Java-Aula05
A.S 9 ESTRUTURAS DE CONTROLE pdf 01.pdf
Algoritmos Aula 06
UFCD 0783 - apresentação das aulaC/C++s.pptx
Aula 1 2
Java 04 Estrut Controle
Anúncio

Mais de Mario Sergio (13)

PDF
Curso de Java (Parte 2)
PDF
Curso Java (Parte 8) Web Service REST
PDF
Curso de Java (Parte 7) Web Application
PDF
Curso de Java (Parte 6) Introdução a Front-end
PDF
Curso de Java (Parte 5)
PDF
Introdução a Banco de Dados (Parte 3)
PDF
Introdução a Banco de Dados (Parte 2)
PDF
Introdução a Banco de Dados (Parte 1)
PDF
Comparação Sintaxe Portugol vs Java
PDF
Curso de Java (Parte 1)
PDF
Introdução à Programação
PDF
Bancode dados modelagem conceitual
ODP
Educação Tecnológica com Raspberry Pi
Curso de Java (Parte 2)
Curso Java (Parte 8) Web Service REST
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 5)
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 1)
Comparação Sintaxe Portugol vs Java
Curso de Java (Parte 1)
Introdução à Programação
Bancode dados modelagem conceitual
Educação Tecnológica com Raspberry Pi

Último (20)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Processos na gestão de transportes, TM100 Col18
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Apple Pippin Uma breve introdução. - David Glotz
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 9 - (Threads) Multitarefas.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

Curso de Java (Parte 3)

  • 1. Curso de Java PARTE 03 Estruturas da Linguagem Classes Wrappers Operadores Relacionais/Lógicos Estruturas de Decisão Estruturas de Repetição Coleções: List e Map por: Mário Sergio mariosergio30@gmail.com linkedin.com/in/mario-sergio-a1125831
  • 2. Classes Wrappers (java.lang) As Classe envólucro (Wrappers) : encapsulam tipos primitivos Todas essas Classes possuem o método toString() para realizar a operação inversa, entre outros métodos úteis. Métodos de conversão a partir de uma String Ex: Double numero = Double.parseDouble("13.5"); Lembre-se: F1 – para ajuda on-line
  • 3. Métodos da Classe String 3 Exemplos: texto.equals(“Accenture"); texto.equalsIgnoreCase(“accenture"); texto.trim(); texto.toUpperCase(); texto.toLowerCase(); texto.contains(“Accenture"); texto.replace(“Brasil",“Japão"); texto.substring(5, 8); texto.length(); texto.charAt(0); texto.indexOf("t"); Principais métodos da classe String https://www.devmedia.com.br/java-string-manipulando-metodos-da-classe-string/29862 Saber mais: Todos esses métodos retornam valores ! Quais são esses valores para a string abaixo ??? String texto = "Accenture do Brasil";
  • 4. // Meu Segundo Programa JAVA // Trabalhando com Números e Operadores Aritméticos // Baseado em Deitel & Deitel, 2003 // Pacote de extensão Java import javax.swing.JOptionPane; // import class JOptionPane public class Adicao { public static void main( String args[] ) { String primeiroNumero;// 1o string informado pelo usuário String segundoNumero; // 2o string informado pelo usuário int numero1; // primeiro operando da adição int numero2; // segundo operando da adição int media; // Resultado da Adição // ler o primeiro número (na forma string) primeiroNumero = JOptionPane.showInputDialog("Digite o Primeiro No Inteiro" ); // ler o segundo número (na forma string) segundoNumero = JOptionPane.showInputDialog( "Digite o Segundo No Inteiro" ); // convertendo os strings em números inteiros numero1 = Integer.parseInt(primeiroNumero); numero2 = Integer.parseInt(segundoNumero); // Somando os números media = (numero1 + numero2)/2; // Apresentando os resultados JOptionPane.showMessageDialog(null, "A media é "+media,"Resultado da media: ", JOptionPane.PLAIN_MESSAGE); } // fim do método main() } // fim da classe Adicao 4 Diálogos com javax.swing
  • 5. O Pacote swing possui uma biblioteca de Classes para interface gráfica com o usuário GUI, por enquanto utilizaremos apenas a classe JOptionPane que oferece caixas de diálogo gráficas predefinidas que permitem aos programas exibir mensagens aos usuários: - O método showMessageDialog() ebite um aviso com inteface gráfica para o usuário. - O método showConfirmDialog exibe uma pergunta ao usuário com bobões OK, NÃO E CANCELAR, e retorna um código de resposta clicada pelo usuário. - O método showInputDialog() combina a montagem da janela de edição com o prompt de digitação do string fornecido pelo usuário. - As variáveis informadas pelo showInputDialog() aos programas Java são sempre Strings e devem ser convertidas com o uso das classes wrappers do pacote java.lang. 5 Diálogos com javax.swing
  • 6. Mãos à Obra 6 Com base no exercício anterior, melhore seu “Sistema Escolar”, Utilize JOptionPane para todas as ações de interface com usuário.
  • 7. Operadores de Igualdade e Relacionais • Todos os operadores relacionais têm o mesmo nível de precedência e associam da esquerda para a direita. • São largamente utilizados nas estruturas de controle de decisão e repetição. • Resultam SEMPRE em um valor lógico, que pode ser atribuido a uma variável do tipo booleano, ex.: Operadoralgébricode igualdadepadrãoou operador relacional Operadordeigualdadeou relacionalemJava Exemplode condiçãoemJava Significadoda condiçãoemJava Operadoresdeigualdade = == x==y xéigualay <> != x!=y xnãoéigualay Operadoresrelacionais > > x>y xémaiorquey < < x<y xémenorquey = >= x>=y xémaiorqueou igualay = <= x<=y xémenorqueou igualay 7 boolean lAprovado = (media >= 6);
  • 8. Estruturas de Controle Condicional 8 Também conhecidas como estruturas decisão, seleção ou de desvio de fluxo. Seleção Simples/Composta/Encadeada Immediate IF Seleção Múltipla
  • 9. Estrutura Condicional: if Sintaxe if (condição) comando Java; [ou {bloco de comandos Java;}] O Exemplo: if (media >= 6) System.out.println(“Aprovado”); if (media >= 6) { System.out.print(“Oi Fulano !”); System.out.println(“Você foi Aprovado”); } // fim do bloco if Media >=6 Imprimir “Aprovado” verdadeiro falso 9 // Instrução de apenas 1 linha
  • 10. if (media >= 6){ System.out.print(“O Aluno está”); System.out.println(“Aprovado”); } // fim do bloco if else { System.out.print(“O Aluno está”); System.out.println(“Reprovado”); } // fim do bloco else Media >=6 Imprimir “Aprovado” verdadeiro falso Imprimir “Reprovado” 10 Estrutura Condicional: if/else
  • 11. if (media >= 9) System.out.print(“O Conceito é A”); else if (media >= 7) System.out.print(“O Conceito é B”); else if (media >= 6) System.out.print(“O Conceito é C”); else System.out.print(“O Conceito é D”); Media >=9 A verdadeiro falso Media >=7 B verdadeiro falso Media >=6 C verdadeiro D falso Estrutura Condicional: if/else (encadeada)
  • 12. Mãos à Obra 12 Com base no exercício anterior, melhore seu “Sistema Escolar”, informando o resultado final do aluno, conforme os critérios: Média: maior ou igual a 7 - Aprovado de 4 a 6.9999999.. - Recuperação (não usar operador lógico) menor que 4 - Reprovado
  • 13. Operadores de Lógicos 13 Operadores lógicos são largamente utilizados em conjunto com estruturas de controle condicionais. https://www.tutorialgateway.org/java-logical-operators/ Saber mais: considerando: int age; boolean aprovado;
  • 14. Lógica Proposicional: Tabela Verdade Ex: temos as proposições A e B A: Brasília é a capital do Brasil E B: Lima é a capital do Peru. A: Gato é um Animal E B: Peixe é um mamífero. A: Recife é um pais OU B: Olinda é uma cidade NÃO A: O Japão fica na Ásia 14 Relembrando: Tabela Verdade Para quem tem dúvidas... https://www.tutorialgateway.org/java-logical-operators/ Saber mais:
  • 15. Mãos à Obra 15 Com base no exercício anterior, melhore seu “Sistema Escolar”, adicionando os critérios: Quantidade de Faltas e trabalho noturno: Só é permitido ficar em Recuperação se a quantidade de faltas for menor que 10. Só é permitido ser aprovado com nota 7 se o aluno tiver menos que 3 faltas ou comprovar que trabalha a noite. Caso contrário, só será aprovado direto com média a partir de 9.
  • 16. Precedência de operadores Operadores de Lógicos Em proposições compostas, é importante respeitarmos a ordem de precedência natural dos operadores: 1º: operador ! 2º: conectivo && 3º: conectivo || Portanto, quando desejarmos alterar a ordem das comparações, devemos utilizar parênteses ( ) 16 Assim temos: double media = 6.0; int qtdFaltas = 5; boolean lTrabalhoNoturno = true; if (media >= 7 && qtdFaltas < 3 || lTrabalhoNoturno) resultado = "Aprovado"; if ( (media >= 7) && (qtdFaltas < 3 || lTrabalhoNoturno) ) resultado = "Aprovado"; F F F F V V F V V F || && V F * Teriamos aluno aprovado com média 6 ! • Resultado correto de acordo com o problema proposto
  • 17. Estrutura Condicional: Immediate-IF (condição) ? {valor para condição true} : {valor para condição false} Exemplos: O operador Ternário ? : retorna um valor dependendo do resultado da condição 17 resultado = (media >= 6) ? "Aprovado" : "Reprovado"; System.out.println((media >= 6) ? "Aprovado" : "Reprovado"); Sintaxe: Equivalente a: if (media >= 6) resultado = "Aprovado"; else resultado = "Reprovado";
  • 18. Também conhecido como estrutura de seleção múltipla • O valor a ser testado (condicional) aparece apenas uma vez, diferentemente do que ocorreria com multiplos if else • Utilize o comando break para finalizar a execução do switch quando um dos case´s for atendido, caso contrário, todos os blocos case abaixo serão também executados. 18 Estrutura Condicional: switch / case É OPCIONAL
  • 19. Mãos à Obra 19 Baseado no exemplo anterior, crie um novo programa: “Calculadora” Utilizando a estrutura de seleção múltipla switch (key) { case value: break; default: break; }
  • 20. 20 Estrutura Condicional: switch / case Um motivo para não usar break
  • 21. Estruturas de Controle de Repetição 21 Executa trechos de código repetidamente (loops).(lo Principais Tipos de estruturas de repetição: - Repetição condicional (indefinida) while (condition) { } Com teste lógico no início Com teste lógico no final (executa ao menos 1 vez) Iteração contada Iteração sobre elementos de uma lista considerando: do { } while (condition); - Repetição contada (definida) Número pré-determinado for (int i = 0; condintion over i; i++) { } for (String item : list) { } List<String> list;
  • 22. • Essas estruturas de repetição permitem especificar uma ação ou um bloco de ações que devem permanecer sendo repetidas enquanto determinada condição for verdadeira. • O corpo da estrutura pode ser uma instrução única ou um bloco de comandos. • Quando a condição do comando while ou do/while se tornar falsa, a ação (ou bloco) do comando será pulada. O programa continuará com a ação imediatamente após o comando while. • IMPORTANTE: você deve sempre prever a ação que tornará falsa a condição do comando while. Caso contrário seu programa entrará em loop infinito. 22 Estrutura de Repetição: while e do/while Pode nunca ser executado boolean lTemVida = true; while (lTemVida) { System.out.println("Há Esperança !"); } int nQtdvidas = 7; do { System.out.println("Há Esperança !"); } while (nQtdvidas > 0); Será executado ao menos 1 vez Nesses dois exemplos temos problema de looping infinito, pois o valor da VARIAVEL DE CONTROLE não está sendo alterado dentro do escopo da estrutura.
  • 23. Mãos à Obra 23 Com base no exercício anterior, melhore seu “Sistema Escolar”: Após a exibição do resultado da média do primeiro aluno, pergunte ao usuário se ele deseja digitar dados para um novo aluno. Obs: por enquanto não se preocupe em armazenar o histórico de todos alunos/médias
  • 24. • A estrutura de repetição for permite repetir uma ação ou um bloco de ações em um número definido de vezes. • O comando for possui três seções: 24 Estrutura de Repetição: for for (int x = 0; x < 1000; x++) { System.out.println("Repetição de numero: " + x); } Chamada de Variável de Controle Será executada EXATAMENTE 1000 vezes for (inicializadores; condição de continuação; incremento) { ação ou bloco de ações no comando; }
  • 25. Mãos à Obra 25 Com base no exercício anterior, melhore seu “Sistema Escolar”: Precisamos obter mais notas para compor a média, não apenas duas. Assim, antes de digitar as notas o usuário precisará informar quantas notas ele pretende digitar para cálculo da média do aluno. Obs: por enquanto não se preocupe em armazenar o histórico de todos alunos/médias
  • 26. Coleções: Listas (java.util.List) • Uma Lista representa uma coleção de objetos, sendo mais flexivel que os arrays pois podem variar de tamanho dinamicamente. - Permitem elementos duplicados - Permitem valores nulos - Mantém uma ordenação posicional (por índice) List<String> listaEstados = new ArrayList<String>(); listaEstados.add("São Paulo"); listaEstados.add("Rio de Janeiro"); listaEstados.add("Minas Gerais"); System.out.println("Segundo elemento da lista :" + listaEstados.get(1)); 26https://www.caelum.com.br/apostila-java-orientacao-objetos/collections-framework/ Saber mais: Exemplos:
  • 27. Métodos da classe List: add – Adiciona um item no final da coleção get – retorna (pega) um item em determinada posição set – altera o valor de um item em uma determinada posição size – retona o tamanho atual da coleção clone – Duplica a ArrayList contains – busca um valor no array, e retorna true, se o elemento estiver no array; indexOf – busca um valor no array, mas retorna o índice do elemento encontrado; lastIndexOf – o mesmo que indexOf mas retorna o último elemento encontrado; remove – Remove um item da coleção. 27Lembre-se: F1 – para ajuda on-line Coleções: Listas (java.util.List)
  • 28. A estrutura de repetição for também permite realizar iterações sobre elementos de uma lista de uma forma mais direta, sem a necessidade de uma variavel de controle (contador). 28 Estrutura de Repetição: for (com listas) Para cada iteração, o próximo item da lista é colocado na variável item, seguindo a ordem que o item ocupa na lista (índice). for (String item : list) { System.out.println(“Item da lista: " + item); } List<String> list; List<String> listFrutas = new ArrayList<String>(); listFrutas.add("Morango"); listFrutas.add("Abacaxi"); listFrutas.add("Uva"); System.out.println("<<<< Lista de Frutas >>>>>>>"); for (String umaFruta : listFrutas) System.out.println("Fruta: " + umaFruta); Exemplo:
  • 29. Mãos à Obra 29 Com base no exercício anterior, melhore seu “Sistema Escolar”, 1- Guardar o histórico dos alunos: nomes, médias, idades, e escolaridade dos alunos, em quatro objetos do tipo List. 2- Mostrar relatório com nomes, médias, idades, e escolaridade de TODOS os alunos no final da execução do programa. Obs: A escolaridade tem como dominio: FUNDAMENTAL MEDIO SUPERIOR
  • 30. • Um Map representa uma coleção de objetos, numa estrutura (key,value). Também conhecida como um PAR (chave,valor). Assim como as listas, podem variar de tamanho dinamicamente. - Não permitem elementos duplicados - Permitem apenas um valor nulo - Não mantem uma ordenação posicional - Encontra um valor a partir de sua chave 30 Exemplos: Map<String,String> mapContatos = new HashMap<>(); mapContatos.put("Tom", "(111)123-4567"); mapContatos.put("Dick", "(222)123-7890"); mapContatos.put("Harry", "(333)373-3703"); String fone = mapContatos.get("Dick"); Coleções: Mapas (java.util.Map) (222)123-7890 Valor retornado:
  • 31. 31 Iteração sobre todos os elementos de um Map: for (Map.Entry<String,String> umContato : mapContatos.entrySet()) { System.out.println("Chave: " + umContato.getKey()); System.out.println("Valor: " + umContato.getValue()); System.out.println("--------------------------------"); } Coleções: Mapas (java.util.Map) Busca por uma chave em um Map: if (mapContatos.containsKey("Harry")) System.out.println("Telefone:" + mapContatos.get("Harry")); Telefone: (333)373-3703 saída
  • 32. Mãos à Obra 32 Com base no exercício anterior, melhore seu “Sistema Escolar”, 1- Precisamos incluir permissões de acesso para usar o Sistema escolar. Desejamos que os funcionarios da escola Realizem login, utilizando usuario e senha antes de iniciar o cadastro dos alunos. Dica: Utilize um Map pré-cadastrado (hard-code) para cadastrar os acessos: Ex: Chave/valor -> Usuario/senha PROFESSOR->25413 DIRETOR->felicidade SECRETARIA->amor1000 COORDENADOR->2018
  • 33. Instruções: break e continue • As instruções break e continue modificam o comportamento das estruturas de repetição while, for, do/while ou switch. . • A instrução break interrompe o laço (no caso das estruturas de repetição) e impede a execução de outros casos de um comando switch. • A instrução continue permite o salto do conjunto de operações, com retorno à expressão condicional do laço, reiniciando o mesmo (portanto, ao contrário do break, não interrompe o laço). 33
  • 34. Instruções: break e continue 34
  • 36. Referências Programação de computadores em Java Rui Rossi dos Santos Java 8: Programação de Computadores - Guia Prático de Introdução, Orientação e Desenvolvimento - José Augusto N. G. Manzano Slides do Prof. Roberto Pacheco INE – CTC – UFSC