Não consigo fazer a classe funcionar

3 respostas
K

Obrigado pela sua atenção, já fiz as 3 classes, todas compilam mas a classe aplicacação nao roda:

1ª classe:

public abstract class Projeto{

private String codigo;

private String responsavel;

private String departamento;

public Projeto(String pc, String pr, String pd){

codigo = pc;

responsavel = pr;

departamento = pd;

}

public void setCodigo(String pc){

codigo = pc;

}

public String getCodigo(){

return (codigo);

}

public void setResponsavel(String pr){

responsavel = pr;

}

public String getResponsavel(){

return (responsavel);

}

public void setDepartamento(String pd){

departamento = pd;

}

public String getDepartamento(){

return (departamento);

}

public abstract void imprimir ();{

}

}

2ª classe:

import <a href="http://java.io">java.io</a>.<em>;

import java.text.</em>;

public class ProjetoEspecial extends Projeto{

private int orcamento;

public ProjetoEspecial(String pc, String pr, String pd, int pe){

super(pc, pr,pd);

orcamento = pe;

}

public void setOrcamento(int pe) {

orcamento = pe;

}

public int getOrcamento(){

return orcamento;

}

public void imprimir(){

System.out.println("\nCódigo: “+getCodigo()+”\nResponsável: “+getResponsavel()+”\nDepartamento: “+getDepartamento()+”\nOrçamento: "+orcamento);

}

}

3ª classe:

import javax.swing.<em>;

import <a href="http://java.io">java.io</a>.</em>;

import java.lang.<em>;

import java.text.</em>;

public class Aplicacao {

public static void main(String[] args){

String a,b,c,d;

ProjetoEspecial []pe;

pe = new ProjetoEspecial[10];

for (int i=0; i<=10; i++){

a = JOptionPane.showInputDialog("Entre com o Código: ");

pe[i].setCodigo(a);

b = JOptionPane.showInputDialog("Entre com o Responsavel: ");

pe[i].setResponsavel(b);

c = JOptionPane.showInputDialog("Entre com o Departamento: ");

pe[i].setDepartamento©;

d = JOptionPane.showInputDialog("Entre com o Orcamento: ");

pe[i].setOrcamento(Integer.parseInt(d));		

}

for (int i=0; i<=10; i++){

pe[i].imprimir();

}

}

}

acontece o siguinte erro:

Exception in thread “main” java.lang.NullPointerException
at Aplicacao.main(Aplicacao.java:16)

3 Respostas

M

æ kakaoliver,

Olha só o seu problema está em não estanciar os elementos do array.

Depois do:

for (int i=0; i<=10; i++){

e antes do na classe Aplicacao:

a = JOptionPane.showInputDialog("Entre com o Código: ");

voce deve por:
pe[i] = new ProjetoEspecial();

fica:



for (int i=0; i<=10; i++){

pe[i] = new ProjetoEspecial();

a = JOptionPane.showInputDialog("Entre com o Código: ");


isso faz com que o elemento do array é instanciado, só o fato de por pe = new ProjetoEspecial[10] não vai instanciar os elementos, só vai especificar a quantidade de elementos e o tipo de elementos que o array vai ter.

Hah quanto a dar um “pe[i] = new ProjetoEspecial();” ou vc usa o contrutor que vc tem existente na classe passando parametros, ou vc cria um contrutor vazio, tanto no Projeto quanto no ProjetoEspecial.

Qualquer coisa só postar…
Abraço,
Maicon

M

Olá!

Só uma observação… Para um array de 10 posições deve-se tirar o igual (=) dor loop for…

:arrow: for (int i=0; i<=10; i++){

deve ficar assim:
:arrow: for (int i=0; i<10; i++){

OK?! Falow…

B

se vc deixar sem = ele percorre da posição 0 à 9 (10 posições)…
se vc deixar com = ele percorre da 0 a 10 (11 posições)

ok ?

Criado 28 de setembro de 2004
Ultima resposta 30 de set. de 2004
Respostas 3
Participantes 4