Sou iniciante em java e tô fazendo um programa que gerencia um banco monetário aqui e uma das classes é a gerencia agência bancária. Eu to inicializando as variáveis igualando elas a “null” . è assim mesmo que faz a inicialização das variáveis?tá dando o erro: “o valor desginado nunca é utilizado”. Alguém sabe o porquê disso acontecer?
[code]package sistbancario;
import java.util.Scanner;
/**
*
@author Home
*/
public class GerenciaAgencia {
private int num=2;
int entrada3;
Scanner e = new Scanner(System.in);
Agencia ficharioAgencia[];
public GerenciaAgencia() {
this.ficharioAgencia = new Agencia[num];
}
for (int i=0; i<num; i++){
ficharioAgencia[i] = new Agencia();
System.out.println("codigo:"+codigo);
codigo=e.next();
ficharioAgencia[i].setCodigo(codigo);
[O resto dos getters e setters]
System.out.println("As agencias cadastradas são:");
for (i = 0; i < ficharioAgencia.length; i++) {
ficharioAgencia[i].consultaAgencia();
}
}
}
essa é uma parte do codigo só… nessa parte eu ininializo as variaveis da agencia para serem usadas pelos getters e setters e por outras partes do programa… eu li no deitell que tem que igualar ela a null para inicializar, mas dá sempre esse erro aí… eu não sei se é desse jeito que inicializa nesse caso tbem… to bem perdido kkk
Vou a clase inteira… Nessa parte eu faço os métodos para semrem chamados em um menu mais pra frente. Esse meodos cadastram agencias, exclui agencias e tal… mas o preocuado com esses ‘null’, eu não sei ao certo o que eles significam e estão causando muitos problemas na execução do programa inteiro… até a excessão “Exception in thread “main” java.lang.NullPointerException” tá aparecendo nele e tem a ver com esses ‘null’
[code]package sistbancario;
import java.util.Scanner;
/**
*
@author Home
*/
public class GerenciaAgencia {
private int num = 2;
int entrada3;
Scanner e = new Scanner(System.in);
Agencia ficharioAgencia[] = new Agencia[num];
public void cadastraAgencia() {
String codigo = null, nome = null, rua = null, bairro = null, cidade = null, estado = null, cep = null;
for (int i = 0; i < num; i++) {
ficharioAgencia[i] = new Agencia();
System.out.println("codigo:" + codigo);
codigo = e.next();
ficharioAgencia[i].setCodigo(codigo);
System.out.println("nome:");
nome = e.next();
ficharioAgencia[i].setNome(nome);
System.out.println("rua:");
rua = e.next();
ficharioAgencia[i].setRua(rua);
System.out.println("bairro:");
bairro = e.next();
ficharioAgencia[i].setBairro(bairro);
System.out.println("cidade:");
cidade = e.next();
ficharioAgencia[i].setCidade(cidade);
System.out.println("estado:");
estado = e.next();
ficharioAgencia[i].setEstado(estado);
System.out.println("cep");
cep = e.next();
ficharioAgencia[i].setCep(cep);
System.out.println("As agencias cadastradas são:");
for (i = 0; i < ficharioAgencia.length; i++) {
ficharioAgencia[i].consultaAgencia();
}
}
}
public void pesquisaAgencia() {
String entrada4;
boolean g, cont2 = false;
int auxi, i3 = 0;
System.out.println(“1- Ver todas as agencuas cadastradas\n2- Fazer uma busca pelo codigo”);
auxi = e.nextInt();
if (auxi == 1) {
System.out.println("\nAs agencias cadastrados são:");
for (int i = 0; i < num; i++) {
i3 += 1;
System.out.println("\nAgencias " + i3 + ":");
ficharioAgencia[i].consultaAgencia();
}
}
if (auxi == 2) {
System.out.println("\nDigite o codigo: ");
entrada4 = e.next();
for (int i = 0; i < num; i++) {
g = entrada4.equals(String.valueOf(ficharioAgencia[i].getCodigo()));
if (g == true) {
cont2 = true;
ficharioAgencia[i].consultaAgencia();
}
}
if (cont2 == false) {
System.out.println("\n\tAgencia não encontrado");
}
}
System.out.println("\nAs agencias cadastrados são:");
for (int i3 = 0; i3 < num; i3++) {
i3 += 1;
System.out.println("\nAgencia " + i3 + “:”);
ficharioAgencia[i3].consultaAgencia();
System.out.println("\nDigite o número da agencia a ser alterado:");
entrada3 = e.nextInt();
for (int i = 0; i < num; i++) {
if (entrada3 == i + 1) {
System.out.print("\nAtualize o codigo: ");
codigo = e.next();
System.out.print("Atualize o nome: ");
nome = e.next();
System.out.print("Atualize a rua: ");
rua = e.next();
System.out.print("Atualize o bairro: ");
bairro = e.next();
System.out.print("Atualize a cidade: ");
cidade = e.next();
System.out.println("Atualiza o estado");
estado = e.next();
System.out.print("Atualize o cep: ");
cep = e.next();
ficharioAgencia[i].alteraAgencia(codigo, nome, rua, bairro, cidade, estado, cep);
}
}
System.out.println("Atualização feita com sucesso");
}
/**
*
*/
}
public void excluiAgencia() {
int i2 = 0;
System.out.println("\nAs agencias são:");
for (int i = 0; i < num; i++) {
i2 += 1;
System.out.println("\nCliente " + i2 + “:”);
ficharioAgencia[i].consultaAgencia();
}
System.out.println("\nDigite o número da agencia a ser excluída:");
entrada3 = e.nextInt();
for (int i = 0; i < num; i++) {
if (entrada3 == i + 1) {
ficharioAgencia[i] = null;
num -= 1;
}
}
[quote=GuilhermeENGMAT]Vou a clase inteira… Nessa parte eu faço os métodos para semrem chamados em um menu mais pra frente. Esse meodos cadastram agencias, exclui agencias e tal… mas o preocuado com esses ‘null’, eu não sei ao certo o que eles significam e estão causando muitos problemas na execução do programa inteiro… até a excessão “Exception in thread “main” java.lang.NullPointerException” tá aparecendo nele e tem a ver com esses ‘null’
erro “o valor desgnado nunca é utilizado” na linha 17…
[code]package sistbancario;
import java.util.Scanner;
/**
*
@author Home
*/
public class GerenciaAgencia {
private int num = 2;
int entrada3;
Scanner e = new Scanner(System.in);
Agencia ficharioAgencia[] = new Agencia[num];
public void cadastraAgencia() {
String codigo = null, nome = null, rua = null, bairro = null, cidade = null, estado = null, cep = null;
for (int i = 0; i < num; i++) {
ficharioAgencia[i] = new Agencia();
System.out.println("codigo:" + codigo);
codigo = e.next();
ficharioAgencia[i].setCodigo(codigo);
System.out.println("nome:");
nome = e.next();
ficharioAgencia[i].setNome(nome);
System.out.println("rua:");
rua = e.next();
ficharioAgencia[i].setRua(rua);
System.out.println("bairro:");
bairro = e.next();
ficharioAgencia[i].setBairro(bairro);
System.out.println("cidade:");
cidade = e.next();
ficharioAgencia[i].setCidade(cidade);
System.out.println("estado:");
estado = e.next();
ficharioAgencia[i].setEstado(estado);
System.out.println("cep");
cep = e.next();
ficharioAgencia[i].setCep(cep);
System.out.println("As agencias cadastradas são:");
for (i = 0; i < ficharioAgencia.length; i++) {
ficharioAgencia[i].consultaAgencia();
}
}
}
public void pesquisaAgencia() {
String entrada4;
boolean g, cont2 = false;
int auxi, i3 = 0;
System.out.println(“1- Ver todas as agencuas cadastradas\n2- Fazer uma busca pelo codigo”);
auxi = e.nextInt();
if (auxi == 1) {
System.out.println("\nAs agencias cadastrados são:");
for (int i = 0; i < num; i++) {
i3 += 1;
System.out.println("\nAgencias " + i3 + ":");
ficharioAgencia[i].consultaAgencia();
}
}
if (auxi == 2) {
System.out.println("\nDigite o codigo: ");
entrada4 = e.next();
for (int i = 0; i < num; i++) {
g = entrada4.equals(String.valueOf(ficharioAgencia[i].getCodigo()));
if (g == true) {
cont2 = true;
ficharioAgencia[i].consultaAgencia();
}
}
if (cont2 == false) {
System.out.println("\n\tAgencia não encontrado");
}
}
System.out.println("\nAs agencias cadastrados são:");
for (int i3 = 0; i3 < num; i3++) {
i3 += 1;
System.out.println("\nAgencia " + i3 + “:”);
ficharioAgencia[i3].consultaAgencia();
System.out.println("\nDigite o número da agencia a ser alterado:");
entrada3 = e.nextInt();
for (int i = 0; i < num; i++) {
if (entrada3 == i + 1) {
System.out.print("\nAtualize o codigo: ");
codigo = e.next();
System.out.print("Atualize o nome: ");
nome = e.next();
System.out.print("Atualize a rua: ");
rua = e.next();
System.out.print("Atualize o bairro: ");
bairro = e.next();
System.out.print("Atualize a cidade: ");
cidade = e.next();
System.out.println("Atualiza o estado");
estado = e.next();
System.out.print("Atualize o cep: ");
cep = e.next();
ficharioAgencia[i].alteraAgencia(codigo, nome, rua, bairro, cidade, estado, cep);
}
}
System.out.println("Atualização feita com sucesso");
}
/**
*
*/
}
public void excluiAgencia() {
int i2 = 0;
System.out.println("\nAs agencias são:");
for (int i = 0; i < num; i++) {
i2 += 1;
System.out.println("\nCliente " + i2 + “:”);
ficharioAgencia[i].consultaAgencia();
}
System.out.println("\nDigite o número da agencia a ser excluída:");
entrada3 = e.nextInt();
for (int i = 0; i < num; i++) {
if (entrada3 == i + 1) {
ficharioAgencia[i] = null;
num -= 1;
}
}
obrigado cara! já ajudaria bastante se vc me esclarecesse a utilidade desse null… ele parece ser igual quando vc iguala uma variável int a 0… é mais ou menos isso ou eu to viajando?
Deixa só eu entender uma coisa… você tem a Classe Agencia com atributos e getters e setters certo? e na Classe GerenciaAgencia você irá implementar os métodos cadastraAgencia, atualizaAgencia e excluiAgencia, é isso?
Se for isso, está errado! pq a Classe Agencia deve conter os atributos, getters e setters (se houver necessidade) e os métodos de sua responsabilidade! - como por exemplo o cadastraAgencia(); e etc…
Respondendo seu pergunta: Não, pq são variáveis de instância, ou seja não precisam ser inicializadas!
Segue um exemplo básico para você cadastrar (inserir) uma agência num ArrayList:
Classe Agencia:
public class Agencia {
private int codigo;
private String nome;
private String rua;
private String bairro;
private String cidade;
private String estado;
private String cep;
// sempre que instanciar a classe Agencia, uma lista será criada, se não
// quiser que isso aconteça, modifique, o atributo abaixo!
List<Agencia> list = new ArrayList<Agencia>();
// Construtor padrão, não era necessário implementar, pois o Java te dá de
// graça
public Agencia() {
super();
// TODO Auto-generated constructor stub
}
// método sobrescrito da Classe Object, para imprimir Strings, ao invés de referência no Array
@Override
public String toString() {
return "Código Agência: " + codigo + " - Nome: " + nome + " - Bairro: " + bairro;
// demais atributos que quiser imprimir
}
// método para adicionar uma agência no ArrayList
public void adicionaAgencia(Agencia agencia) {
list.add(agencia);
}
// getters e setters
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public List<Agencia> getList() {
return list;
}
public void setList(List<Agencia> list) {
this.list = list;
}
}
Classe de Teste, para testar seus métodos:
public class TesteAgencia {
public static void main(String[] args) {
Agencia agencia = new Agencia();
// se for capturar dados do usuário, instancie a classe Scanner aqui, e
// pegue os dados, para popular o objeto Agencia...
agencia.setCodigo(001);
agencia.setBairro("Centro");
agencia.setNome("Bradesco Prime Centro");
agencia.adicionaAgencia(agencia); //chamando o método adicionaAgencia da Classe Agencia
System.out.println("Agencia: " + agencia.getList().toString()); //implementar o método toString();
}
}
Ao rodar essa Classe de Teste, o resultado no console foi esse:
Agencia: [Código Agência: 1 - Nome: Bradesco Prime Centro - Bairro: Centro]