Erro estranho

3 respostas
M
import java.util.Scanner;

public class Relogio{
    int hora=0;
	 int minuto=0;
	 int segundo=0;
	Scanner entrada = new Scanner(System.in);
	Relogio obj = new Relogio();
	
/*	public void Relogio(){  //contrutor do relogio
	hora=0;
	minuto=0;
	segundo=0;
	}
	
*/
	
	public void imprimeEstado(){
		System.out.println("\n\nConfiguração do relógio: ");
		System.out.println("Hora...: "+hora);
		System.out.println("Minuto.: "+minuto);
		System.out.println("Segundo: "+segundo);
	}
	
	public void entradaDados(){
		System.out.println("Informe as horas:");
		System.out.printf("Hora: ");
    	obj.setHora(entrada.nextInt());
		System.out.printf("Minuto: ");
		obj.setMinuto(entrada.nextInt());
    	System.out.printf("Segundo: ");
    	obj.setSegundo(entrada.nextInt());		
	}
	
	public int getHora(){
		return hora;
	}
		
	public int getMinuto(){
		return minuto;
	}
			
	public int getSegundo(){
		return segundo;
	}
	
    public void setHora(int hora) {   
        if(hora < 0 || hora > 23)   
            this.hora = 0;   
        else   
            this.hora = hora;   
    }   
  
    public void setMinuto(int minuto) {   
        if(minuto < 0 || minuto > 59)   
            this.minuto = 0;   
        else   
            this.minuto = minuto;   
    }   
  
    public void setSegundo(int segundo) {   
        if(segundo < 0 || segundo > 59)   
            this.segundo = 0;   
        else   
            this.segundo = segundo;   
    }   
	
}
public class ExecutaRelogio{
	public static void main(String[] args){
		Relogio obj = new Relogio();
	
		obj.imprimeEstado();
		

    
	}
}

Exception in thread "main" java.lang.StackOverflowError
at java.lang.String.(String.java:216)
at java.lang.StringBuffer.toString(StringBuffer.java:585)
at java.text.DecimalFormat.expandAffix(DecimalFormat.java:2021)
at java.text.DecimalFormat.expandAffixes(DecimalFormat.java:1961)
at java.text.DecimalFormat.applyPattern(DecimalFormat.java:2646)
at java.text.DecimalFormat.(DecimalFormat.java:445)
at java.text.NumberFormat.getInstance(NumberFormat.java:752)
at java.text.NumberFormat.getNumberInstance(NumberFormat.java:390)
at java.util.Scanner.useLocale(Scanner.java:1161)
at java.util.Scanner.(Scanner.java:567)
at java.util.Scanner.(Scanner.java:590)
at Relogio.(Relogio.java:7)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)
at Relogio.(Relogio.java:8)

fica fazendo isso um monte de vez!!!

alguem sabe o que pode ser...

3 Respostas

MarcioCasteloBranco

Para que vc esta declarando e instacindo um objeto relogio dentro da classe relogio na linha 08 ?

MarcioCasteloBranco

Não precisa e so invoca os metodos!!!
linha 28 , 30 , 32!!

MarcioCasteloBranco

Da uma olhada no codigo para ver se era isto que vc queria fazer?

public class Relogio {

    private int hora = 0;
    private int minuto = 0;
    private int segundo = 0;
    Scanner entrada = new Scanner(System.in);


    /*  public void Relogio(){  //contrutor do relogio
    hora=0;
    minuto=0;
    segundo=0;
    }
    
     */
    public void imprimeEstado() {
        System.out.println("\n\nConfiguração do relógio: ");
        System.out.println("Hora...: " + hora);
        System.out.println("Minuto.: " + minuto);
        System.out.println("Segundo: " + segundo);
    }

    public void entradaDados() {
        System.out.println("Informe as horas:");
        
        System.out.printf("Hora: ");
        setHora(entrada.nextInt());
       
        System.out.printf("Minuto: ");
        setMinuto(entrada.nextInt());
        
        System.out.printf("Segundo: ");
        setSegundo(entrada.nextInt());
    }

    public int getHora() {
        return hora;
    }

    public int getMinuto() {
        return minuto;
    }

    public int getSegundo() {
        return segundo;
    }

    public void setHora(int hora) {
        if (hora < 0 || hora > 23) {
            this.hora = 0;
        } else {
            this.hora = hora;
        }
    }

    public void setMinuto(int minuto) {
        if (minuto < 0 || minuto > 59) {
            this.minuto = 0;
        } else {
            this.minuto = minuto;
        }
    }

    public void setSegundo(int segundo) {
        if (segundo < 0 || segundo > 59) {
            this.segundo = 0;
        } else {
            this.segundo = segundo;
        }
    }
}
public class Main {

    
    public static void main(String[] args) {
        Relogio obj = new Relogio();
        obj.entradaDados();
        obj.imprimeEstado();
    }
}

vlw!!

Criado 22 de outubro de 2009
Ultima resposta 22 de out. de 2009
Respostas 3
Participantes 2