Escolar Documentos
Profissional Documentos
Cultura Documentos
ESTRUTURA DE DADOS
Aula 2 – Vetores, Objetos e
Classes em Java
Dia Aula
Introdução a Linguagem
17/ago
de Programação Java
ANOTAÇÕES
Sistema Banco
Construa um código que simule uma Conta em um banco.
As operações que deverão ser realizadas são:
Depósito
Saque
Cliente
Consulta
Saldo
3
3
CaixaEletronico.java
import java.util.Scanner;
public class CaixaEletronico {
public static void main(String[] args) {
Scanner le = new Scanner(System.in);
double saldo;
double valor; // valor a ser depositado ou sacado
// Abrindo a conta
System.out.println("Abrindo Conta de Andre");
saldo=0;
// Depositando
System.out.print("Informe valor para deposito: ");
valor = le.nextDouble();
saldo=saldo+valor;
// Imprimindo saldo
System.out.println("Saldo atual: R$ " + saldo);
// Sacando
System.out.print("Informe valor para saque: ");
saldo = saldo - valor;
// Imprimindo saldo
System.out.println("Saldo atual: R$ " + saldo);
}
}
4
do {
System.out.print("Informe valor para deposito: ");
valor = le.nextDouble();
if (valor<=0) {
System.out.println("Informe valor positivo acima de 0");
}
} while(valor<=0);
saldo = saldo + valor; // depositando o valor
// Continua ...
6
// Continuação...
// Fim.
7
7
Consulta
Saldo Imprimir saldo na tela
9
9
Funções em Java
As funções em Java são declaradas dentro da classe principal e
usualmente abaixo do programa principal usando também a palavra
reservada public static.
10
11
11
// Continua ...
12
12
// Continuação ...
public static void depositar() {
Scanner le = new Scanner(System.in);
double valor;
do {
System.out.print("Informe valor para deposito: ");
valor = le.nextDouble();
if (valor<=0) System.out.println("Valor deve ser acima de 0");
} while(valor<=0);
saldo = saldo + valor;
}
13
14
14
Abertura
de Conta Conta
- saldo: double
Depósito + abrir_conta(): void
+ saldo_atual(): void
+ depositar(): void
Saque + sacar(): void
Cliente
Figura Classe Conta
Consulta
Saldo
15
15
16
// Continua...
17
// Continuação...
public void sacar() {
Scanner le = new Scanner(System.in);
double valor;
System.out.print("Informe valor para saque: ");
valor = le.nextDouble();
if (saldo<valor) {
System.out.println("Saldo insuficiente.");
} else {
saldo = saldo - valor;
}
} Instanciando a Classe Conta e
criando o objeto Andre
} // FIM DA CLASSE CONTA
18
Método Construtor
O método construtor é aquele que executa automaticamente assim que
uma classe é instanciada.
Método abrir_conta
public void abrir_conta() { saldo = 0; }
Nesse caso, está iniciando o atributo saldo atribuindo a ele o valor zero.
19
19
Sendo assim:
public void abrir_conta() { saldo = 0; }
Conta Conta
20
// Continua...
21
// Continuação...
public void sacar() {
Scanner le = new Scanner(System.in);
double valor;
System.out.print("Informe valor para saque: ");
valor = le.nextDouble();
if (saldo<valor) {
System.out.println("Saldo insuficiente.");
} else {
saldo = saldo - valor;
}
}
22
Objetos
Nesse exemplo, dentro do programa principal, criamos o objeto Andre.
Vamos criar mais objetos? Nesse caso, vamos abrir uma conta para
outro Cliente. Vamos criar uma conta para Ana.
public class CaixaEletrClasse {
public static void main(String[] args) {
System.out.println("Abrindo Conta Comum de Andre");
Conta Andre = new Conta();
System.out.println("Abrindo Conta Comum de Ana");
Conta Ana = new Conta();
System.out.print("Andre - "); Andre.depositar();
System.out.print("Ana - "); Ana.depositar();
System.out.print("Ana - "); Ana.saldo_atual();
System.out.print("Andre - "); Andre.saldo_atual();
System.out.print("Andre - "); Andre.sacar();
System.out.print("Ana - "); Ana.sacar();
System.out.print("Ana - "); Ana.saldo_atual();
System.out.print("Andre - "); Andre.saldo_atual();
}
}
23
23
A classe é uma
abstração de
entidades
existentes no
mundo real.
24
24
A classe é uma
abstração de
entidades
existentes no
mundo real.
25
25
A classe é uma
abstração de
entidades André
existentes no
mundo real.
Ana
Conta
- saldo: double
+ saldo_atual(): void
+ depositar(): void João
+ sacar(): void
26
27
27
Vetores
Estrutura de armazenamento de dados mais comumente usada.
28
Inserção
Inserir um item no vetor é fácil, usamos a sintaxe normal de vetor
e também controlamos quantos itens inserimos no vetor com a
variável n.
VetorInt[0] = 77;
VetorInt[1] = 55;
n = 2;
Exibição
Considerando que a variável n contem o número de elementos
do vetor. Exibir todos os elementos é simples, percorremos o
vetor acessando cada elemento com VetorInt[i] e exibimo-los.
Construa um código que simule uma estrutura de dados do tipo vetor, ela
deve conter além do vetor uma variável n que irá indicar o número de
itens adicionados no vetor e uma variável inteira TAM_MAX que irá
indicar o tamanho máximo do vetor. Esse código deve possuir as
seguintes funcionalidades:
Inserção VetorApp
Exibição
Pesquisa Inserção
Remoção
Exibição
Exibição
Pesquisa
Usuário
Remoção
30
30
Pesquisa
Considerando que a variável chave contem o valor que estamos
procurando. Para pesquisar um item, percorremos o vetor
comparando a chave com cada elemento. Se o contador i
atingir a ultima célula ocupada sem nenhuma coincidência
encontrada, o valor procurado não se encontra no vetor.
31
31
Remoção
A remoção começa com a pesquisa do item especificado (chave).
Caso ele se encontre no vetor movemos todos os itens de índice
mais alto para baixo e diminuímos o numero de elementos.
chave = 55; // remover item com chave 55
32
Programa VetorApp.java
public class VetorApp {
public static void main(String[] args) {
// Inserindo 10 itens
v[0]=77; v[1]=99; v[2]=44; v[3]=55; v[4]=22;
v[5]=88; v[6]=11; v[7]=0; v[8]=66; v[9]=33;
n=10;
// Mostrando itens
System.out.println(" >>> Mostrando itens ");
for(i=0; i<n; i++)
System.out.print(" " + v[i]);
System.out.println();
// Continua ... 33
33
// Continuação ...
chave=66; // Procurando itens
System.out.println(" >>> Procurando a chave " + chave);
for(i=0;i<n;i++)
if(v[i]==chave) break; // Encontrou o item → sai
if(i==n) System.out.println("Nao encontrei essa chave");
else System.out.println("Chave encontrada");
34
// Continuação...
// Mostrando itens
System.out.println(" >>> Mostrando itens ");
for(i=0; i<n; i++)
System.out.print(" " + v[i]);
System.out.println();
VetorAppFunc
36
36
Programa VetorAppFunc.java
public class VetorAppFunc { tamanho máximo da estrutura de dados
// Inserindo 10 itens
System.out.println("Inserindo 10 elementos no vetor");
inserir(77); inserir(99); inserir(44); inserir(55); inserir(22);
inserir(88); inserir(11); inserir(0); inserir(66); inserir(33);
// Mostrando itens
System.out.println(" >>> Mostrando itens do vetor");
mostrar(); Bloco de comandos do
programa principal
37
// Removendo item
chave=18;
System.out.println(" >>> Removendo a chave " + chave);
remover(chave);
// Mostrando itens
System.out.println(" >>> Mostrando itens do vetor"); mostrar();
} // Fim programa principal
38
39
Classes
Podemos organizar o VetorApp.java de uma nova forma,
deixando ele mais Orientado a Objeto.
40
VetorAppFunc
TAM_MAX
vetor[ ]
n
Vetor
Inserção
- v: long[]
- n: int
- TAM_MAX: int
Exibição
+ inserir(valor: long): void
+ buscar(chave: long): int
+ exibir(): void
Pesquisa
+ remover(chave: long): void
Remoção
41
41
Programa VetorAppClass.java
42
// Inserindo 10 itens
System.out.println("Inserindo 10 elementos no vetor");
v.inserir(77); v.inserir(99); v.inserir(44); v.inserir(55); v.inserir(22);
v.inserir(88); v.inserir(11); v.inserir(0); v.inserir(66); v.inserir(33);
43
// Mostrando itens
System.out.println(" >>> Mostrando itens do vetor");
v.mostrar();
// Procurando itens
chave = 66;
System.out.println(" >>> Procurando a chave " + chave);
int encontrou = v.buscalinear(chave);
if (encontrou==-1) System.out.println("Nao encontrei essa chave");
else System.out.println("Chave encontrada na posicao: " + encontrou);
// Removendo item
chave=18;
System.out.println(" >>> Removendo a chave " + chave);
v.remover(chave);
// Mostrando itens
System.out.println(" >>> Mostrando itens do vetor");
v.mostrar();
// Fim.
44
44
46
48
50
52
Classe Vetor
Atributos Construtor
private int TAM_MAX = 100; public Vetor() {
private long[] v = new long[TAM_MAX]; n = 0;
private int n; }
Métodos
inserir: Insere um item no vetor
busca_linear: Retorna -1 caso não encontre o item
buscado ou a posição no vetor onde o item se encontra.
remover: Remove um item do vetor
mostrar: Exibe na tela todos os itens
53
53
54
56
57
Textos de Apoio
Para que você possa melhorar seus estudos, consulte também os
seguintes sites:
58
Vídeo Aulas
Para que você possa melhorar seus estudos, consulte também as vídeos
aulas:
59
59
Questionários
60
60
Fim Aula 2
61
61
Exercícios de Apoio
Escrever programas para resolver os projetos de programação ajuda a
solidificar sua compreensão do material e demonstra como aplicar os
conceitos da aula.
1- Desenvolva um programa em Java que leia do usuário um conjunto de
10 elementos do tipo String a partir do teclado, armazene-os na variável A
e depois os imprima o conteúdo de A na tela.
62
63
63