Avatar 0 Denunciar post Postado Maio 27, 2009 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(); } } Compartilhar este post Link para o post Compartilhar em outros sites
Avatar 0 Denunciar post Postado Maio 27, 2009 Valeu pessoal, já resolvi. Forte abraço, ps.: o código ficou assim: /** * */ //package br.jogo; /** * @author Vagner * */ enum Sexo { MASCULINO, FEMININO } strictfp class Porrada { static int getDano(int forca) { double res; res = forca*2.19204890128490122190481239048123489298349021834901283; return (int)res; } } public class Jogador { String nome; int idade; Atributos atr = new Atributos(); 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.mana = mana; } void setPvs(int pvs) { this.pvs = pvs; } void setMana(int mana) { this.mana = mana; } } Jogador() { setNome( "Vagner Paludo Landskron" ); setIdade( 27 ); setSexo( "m" ); //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(); System.out.println("Nome: " + getNome() + " Idade: " + getIdade()); System.out.println("Sexo: " + getSexo()); System.out.println("---------"); System.out.println("ATRIBUTOS"); System.out.println("---------"); 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[]) { Jogador a = new Jogador(); a.atr.setForca(12); a.printFicha(); } } Compartilhar este post Link para o post Compartilhar em outros sites