Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações!
Seguinte, no código abaixo está me acontecendo o seguinte output (com exception):
Nome: Vagner Paludo Landskron Idade: 27
Sexo: Masculino
---------
ATRIBUTOS
---------
Exception in thread "main" java.lang.NullPointerException
at testePriv.printFicha(testePriv.java:76)
at testePriv.main(testePriv.java:94)
Mas se eu descomentar o trecho de código onde está a tag [1] (linha 70: //Atributos atr = new Atributos();[1]) o código funciona?
A minha idéia, neste código, foi testar vários conceitos do java, como classes/métodos static, tipo enum, classes aninhadas, packages, etc...
No entanto, não entendo porque ele não aceita a criação dentro do construtor da mesma classe?
obs.: estou usando a versão 1.6 do java
Segue o código:
//package jogo;
enum Sexo { MASCULINO, FEMININO }
class Porrada {
static int getDano(int forca) {
return forca*2;
}
}
public class testePriv {
String nome;
int idade;
Atributos atr;
Sexo sexo;
class Atributos {
int forca;
int destreza;
int vigor;
int magia;
int pvs;
int mana;
Atributos() {
this.forca = 0;
this.destreza = 0;
this.vigor = 0;
this.magia = 0;
this.pvs = 0;
this.mana = 0;
}
int getForca() { return this.forca; }
int getDestreza() { return this.destreza; }
int getVigor() { return this.vigor; }
int getMagia() { return this.magia; }
int getPvs() { return this.pvs; }
int getMana() { return this.mana; }
void setForca(int forca) { this.forca = forca; }
void setDestreza(int destreza) { this.destreza = destreza; }
void setVigor(int vigor) { this.vigor = vigor; }
void setMagia(int mana) { this.magia = magia; }
void setPvs(int pvs) { this.pvs = pvs; }
void setMana(int mana) { this.mana = mana; }
}
testePriv() {
this.nome = "Vagner Paludo Landskron";
this.idade = 27;
setSexo("m");
}
public void inicializar() {
Atributos atr = new Atributos();
}
String getNome() { return this.nome; }
int getIdade() { return this.idade; }
String getSexo() { if (sexo == Sexo.MASCULINO) return "Masculino"; else return "Feminino"; }
void setNome(String nome) { this.nome = nome; }
void setIdade(int idade) { this.idade = idade; }
void setSexo(String sexo) { if (sexo.equals("m")) this.sexo = Sexo.MASCULINO; else this.sexo = Sexo.FEMININO; }
void printFicha() {
//Atributos atr = new Atributos();[1]
System.out.println("Nome: " + getNome() + " Idade: " + getIdade());
System.out.println("Sexo: " + getSexo());
System.out.println("---------");
System.out.println("ATRIBUTOS");
System.out.println("---------");
atr.setForca(12);
System.out.println("For: " + atr.getForca());
System.out.println("Dex: " + atr.getDestreza());
System.out.println("Vig: " + atr.getVigor());
System.out.println("Mag: " + atr.getMagia());
System.out.println("---------");
System.out.println("PVs: " + atr.getPvs());
System.out.println("Mana: " + atr.getMana());
System.out.println("---------");
System.out.println("---LOG---");
System.out.println("Te dei um soco que causou " + Porrada.getDano(atr.getForca()) + " de dano !");
System.out.println("---------");
}
public static void main(String args[]) {
testePriv a = new testePriv();
a.inicializar();
a.printFicha();
}
}Carregando comentários...