Beruflich Dokumente
Kultur Dokumente
BlueJ:
● Ambiente de aprendizagem dos conceitos de OO utilizando a
linguagem Java:
● http://www.bluej.org/
NetBeans:
● Ambiente de Desenvolvimento Integrado (IDE) Java:
● https://netbeans.org/
BlueJ
NetBeans
Construção de Classes
Linguagem de POO
Conteúdo
1. Ambiente de desenvolvimento;
2. Construção de classes:
a. Construtores;
b. Definição de atributos e métodos;
c. Objetos - Instâncias;
3. Aspectos básicos da linguagem:
a. Tipos primitivos e operadores;
b. Arrays e Strings;
c. Estruturas de controle;
d. Recursividade;
e. Organizando o código: API, projeto e pacotes de
classes;
Construção de Classes
Retomando a Classe Dado definida
anteriormente:
Construção de Classes
● Abra o BlueJ;
● Crie um novo Projeto:
○ Clique no menu: “Projeto”;
○ “Novo Projeto”;
○ Escolha uma pasta nova e vazia para gravar o
seu projeto;
● Crie uma “Nova Classe…”
○ Nome da Classe: Dado
○ Tipo da Classe: Classe
● Clique em “Compilar”.
Construção de Classes
Construção de Classes
Construção de Classes
Construtores
● Compilar!
● Botão direito na classe Dado:
○ new Dado();
○ Nome da instância: meuDado;
○ Duplo clique em “meuDado”;
○ Observe o numeroAtual:
}
Definindo um atributo
public class Dado {
public int numeroAtual;
}
Definindo o construtor
public class Dado {
public int numeroAtual;
public Dado() {
numeroAtual = 1;
}
}
Definindo um método
public class Dado {
public int numeroAtual;
public Dado() {
numeroAtual = 1;
}
public void rolar() {
numeroAtual = …;
}
}
Atividade Prática
Vamos construir o restante do jogo de
tabuleiro modelado nos slides anteriores:
Tabuleiro
Atividade Prática
Vamos construir o restante do jogo de
tabuleiro modelado nos slides anteriores:
Jogador
Atividade Prática
Vamos construir o restante do jogo de
tabuleiro modelado nos slides anteriores:
Jogo
Exercícios
1. Crie uma classe “Carro”:
a. Hodômetro: km;
b. Consumo: km/L;
c. Capacidade do tanque de combustível: L;
d. Disponibilidade de combustível: L;
e. Abastecer (L);
f. Percorrer (km);
Exercícios
2. Crie uma classe “Cartão de Crédito”:
a. Limite máximo (obtido durante a construção);
b. Saldo disponível;
c. Efetuar compra (informar valor);
d. Pagar a fatura:
i. Total;
ii. Parcial (informar valor);
Exercícios
3. Crie uma classe “Cartão de Crédito”:
a. Limite máximo (obtido durante a construção);
b. Saldo disponível;
c. Efetuar compra (informar valor);
d. Pagar a fatura:
i. Total;
ii. Parcial (informar valor);
e. Crie uma classe “Loja”:
i. Ao comprar com o cartão, informe também a loja;
ii. Realizar vendas;
iii. Caixa (montante recebido em vendas);
Exercícios
4. Crie uma classe “Caixa Eletrônico”:
a. Tem uma quantidade de cédulas de:
R$ 50,00, R$ 20,00, R$ 10,00 e R$ 5,00
● Abra o NetBeans;
Comparação parcial.
Strings
● Comparando strings:
String str1 = "Fulano";
String str2 = "Beutrano";
String str3 = "Fulano";
str1.compareTo(str2) //int positivo
str2.compareTo(str3) //int negativo
str1.compareTo(str3) //neutro
Comparação de ordem alfabética.
Strings
Outros métodos notáveis:
● length(): int
● charAt(int i): char
● isEmpty(): boolean
● toLowerCase(): String
● toUpperCase(): String
● Mensagem gráfica:
JOptionPane.showMessageDialog(null,
String);
● Diálogo gráfico:
String texto =
JOptionPane.showInputDialog(String);
double y;
int x = (int)(y);
---------------------------------------------------
System.out.println("a="+ 12/7 );
System.out.println("b="+ 12.0/7 );
System.out.println("c="+ 12/7.0 );
System.out.println("d="+ 12.0/7.0 );
System.out.println("e="+ (double)(12)/7 );
System.out.println("f="+ 12/(double)(7) );
System.out.println("g="+ (double)(12)/(double)(7) );
Atividade 01 - Leitura/Conversão
public static void main(String[] args) {
String str = JOptionPane.showInputDialog("Valor 1:");
int v1 = Integer.parseInt(str);
str = JOptionPane.showInputDialog("Valor 2:");
double v2 = Double.parseDouble(str);
boolean b = (v1 == v2);
System.out.println(b);
}
Estruturas de Controle
Estruturas de Decisão/Seleção:
● if()
● switch/case
● ternário;
Estruturas de Repetição:
● for()
● while()
● do while()
Estrutura de Decisão - if
Atal
hos:
if (cláusula) { iff
+ ta
ifel b
se +
//Primeiro if é true tab
} else if (cláusula) {
//Apenas o segundo if é true
} else {
//Quando nenhum if for true
}
Obs.: Os else são opcionais!
Estrutura de Repetição - for
for (inicialização; condição; incremento) {
//Repete
}
Ex. inicialização: int x = 0
Atal
Ex. condição: x < 10 ho:
fori
+ ta
Ex. incremento: x++ b
Exemplo completo:
for (int x = 0; x < 10; x++) {
//Repete 10 vezes com x de 0 até 9
}
Exercício de revisão em
NetBeans
Construa um programa em Java que:
1. Solicite um número N de produtos:
a. Para cada um dos N produtos: 1) leia o valor; e
2) leia um percentual de desconto;
b. Informe o novo valor de cada produto;
c. Ao final do programa, forneça as seguintes
informações:
i. A soma dos valores originais dos produtos;
ii. A soma dos novos valores dos produtos;
iii. O maior novo valor de um produto;
iv. O menor novo valor de um produto;
Estruturas de Controle
Estruturas de Decisão/Seleção:
● if()
● switch/case
● ternário;
Estruturas de Repetição:
● for()
● while()
● do while()
Estrutura de Decisão - switch
switch(chave) {
case valor1:
//Caso chave == valor1
break; Atal
ho:
... sw +
tab
default:
//Quando nenhum case
break;
}
Obs.: Utilize qualquer número de case
Estrutura de Decisão - ternário
O operador ternário realiza uma decisão
sobre o valor que deve ser atribuído à
uma variável:
variável = (clásula) ? valorT : valorF;
Exemplo:
int v1=20, v2=10;
int valorMenor = (v1 < v2) ? v1 : v2;
//valorMenor será 10
Obs.: Os parenteses são opcionais.
Estrutura de Repetição - dowhile
Atal
ho:
do +
tab
do {
//Executa ao menos uma vez
//Repete enquanto a cláusula resultar true
} while (cláusula);
Estrutura de Repetição - while
Atal
ho:
wh +
tab
while (cláusula) {
//Executa e repete somente enquanto
//a cláusula resultar true
}
Arrays e Listas
Linguagem de POO
Arrays
● Arrays na linguagem Java são objetos:
● Exemplos:
int[] numeros = new int [5];
int[][] matriz = new int [5][6];
String[] nomes = new String [10];
Pessoa[] pessoas = new Pessoa[3];
● Onde:
○ tipo [] nome = new tipo [N];
■ tipo: tipo de dado ou classe de objetos;
■ nome: identificação do array;
■ new: comando de construção de novo objeto;
■ N: número (inteiro) de elementos do array;
ArrayList
● A API do Java disponibiliza uma classe para gerenciar
listas de elementos alocados dinamicamente (com
tamanho variável):
○ Classe: java.util.ArrayList
● Exemplos:
ArrayList<Integer> numeros = new ArrayList();
ArrayList<String> nomes = new ArrayList();
ArrayList<Pessoa> pessoas = new ArrayList();
● Onde:
ArrayList<Classe> nome = new ArrayList();
○ ArrayList: classe utilizada para gerenciar listas;
○ <Classe>: Que tipo de objeto será armazenado;
○ nome: variável da instância;
○ new ArrayList(): comando de construção de novo objeto
lista;
for para conjuntos (for each)
for (Classe nome : conjunto) { Atal
ho:
fore
//Repete + ta
b
}
Ex. Classe nome: String nomeAtual
Ex. conjunto: nomes (vetor ou lista)
Exemplo completo:
ArrayList<String> nomes = new ArrayList();
for (String nomeAtual : nomes) {
//Repete com cada nome da lista
}
Variáveis: valores e
referências
Linguagem de POO
Variáveis em Java
x 0
200
Variáveis em Java - referência
● Já ao declararmos uma variável associada a alguma classe,
seu valor (conteúdo) será uma referência a um objeto
existente em algum outro lugar na memória. Este conceito
pode ser considerado análogo ao funcionamento de um
ponteiro.
Pessoa p1;
Pessoa p2 = new Pessoa();
Memória:
p2
200 *ref*
p1 null
Variáveis em Java - referência
● Mas o que é esta referência?
○ É uma ligação, um apontamento para um determinado
objeto existente em outro lugar na memória.
Pessoa p2 = new Pessoa();
Memória:
p2
200 *ref*
p1 null
p2
200 *ref*
p1 *ref*
200 *ref*
p1 *ref*
public Frota() {
case 1:
placa = JOptionPane.showInputDialog("Informe a placa:");
consumo = Double.parseDouble(JOptionPane.showInputDialog("Informe o consumo: "));
capacidade = Double.parseDouble(JOptionPane.showInputDialog("Informe a capac: "));
frota.adicionarCarro(new Carro(placa, consumo, capacidade));
break;
(1/4)
case 2:
placa = JOptionPane.showInputDialog("Informe a placa: ");
carroAux = frota.pesquisarPlaca(placa);
if (carroAux == null) {
JOptionPane.showMessageDialog(null, "Carro não encontrado");
} else {
JOptionPane.showMessageDialog(null, "Hodômetro: " + carroAux.hodometro
+ "\nCombustível: " + carroAux.dispCombustivel);
}
break;
case 3:
placa = JOptionPane.showInputDialog("Informe a placa: ");
carroAux = frota.pesquisarPlaca(placa);
if (carroAux == null) {
JOptionPane.showMessageDialog(null, "Carro não encontrado");
} else {
frota.removerCarro(carroAux);
}
break;
(2/4)
case 4:
placa = JOptionPane.showInputDialog("Informe a placa: ");
carroAux = frota.pesquisarPlaca(placa);
if (carroAux == null) {
JOptionPane.showMessageDialog(null, "Carro não encontrado");
} else {
km = Double.parseDouble(JOptionPane.showInputDialog("Informe a KM: "));
kmAux = carroAux.percorrer(km);
if (km > kmAux) {
JOptionPane.showMessageDialog(null, "Acabou combustível no km " + kmAux);
} else {
JOptionPane.showMessageDialog(null, "KM percorrida!");
}
}
break;
case 5:
placa = JOptionPane.showInputDialog("Informe a placa: ");
carroAux = frota.pesquisarPlaca(placa);
if (carroAux == null) {
JOptionPane.showMessageDialog(null, "Carro não encontrado");
} else {
litros = Double.parseDouble(JOptionPane.showInputDialog("Informe L: "));
litrosAux = carroAux.abastecer(litros);
JOptionPane.showMessageDialog(null, "Abastecidos " + litrosAux + " litros");
}
break;
(3/4)
case 0:
break;
default:
JOptionPane.showMessageDialog(null, "Opção inválida!");
break;
} //Fim do main
}//Fim da classe
(4/4)
010001010111100001
100101011100100110
001111000011101011
010110001101101001
0110111101110011
Exercícios
Linguagem de POO
Exercício 01
Implemente o jogo de tabuleiro para funcionar em
um aplicativo Java desenvolvido em NetBeans:
MENU
1 - Iniciar nova partida
2 - Executar jogada
3 - Informar posições
0 - Sair
Exercício 02
Construa um programa de agenda de compromissos: