1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java classes

Discussão em 'Programação' iniciada por DarkT, 11 de Abril de 2009. (Respostas: 2; Visualizações: 580)

  1. DarkT

    DarkT Power Member

    Tenho aqui a classe base:

    Código:
    package parte3;
    
    public abstract class Exp 
    {
        private final char identificador;
    
        public Exp(char id)
        {
            identificador = id;
        }
    
        public abstract boolean getValor(); 
        public String toString() 
        { 
            return Character.toString(identificador); 
        }
    }
    
    

    e tenho a classe que tenho de construir:

    Código:
    package parte3;
    
    public class Constante extends Exp {
    
        private boolean valor;
        
        public Constante(boolean v)
        {
            super(' ');
            
            this.valor=v;
            
        }
        
        public boolean getValor()
        {
            
            return valor;
            
        }
        
        public static void main(String [] args)
        {
            Exp TRUE = new Constante(true);
            Exp FALSE = new Constante(false);
            
            System.out.println( TRUE + " = " + TRUE.getValor());
            System.out.println( FALSE + " = " + FALSE.getValor());
            
        }
        
    }
    
    
    o meu problema e mesmo no super ...

    o Output devia aparecer

    1 = True

    0 = False;

    mas nao aparece devido ao super..

    tipo se mter super('1');

    da
    1 = true
    1= false

    ajudem ai sff : )

    epa deve ser algo muito estupido mas nao tou a ver o que é ..
     
  2. liquid_shadow

    liquid_shadow Banido

    Construtor do super

    Viva.
    Na invocação do construtor da classe base estás a inicializar a variável "identificador" a ' ', pelo que quando tens o TRUE/FALSE no println(), ele vai-te retornar (space) = true/false...Se queres que ele te devolva '1' ou '0' no toString da classe base, tens de afectar a variável "identificador", por exemplo:

    Código:
    super( ( v ? '1' : '0') );
     
  3. DarkT

    DarkT Power Member

    obrigado podem apagar ta resolvido :D

    tipo nao me lembrei de fazer com operador trenario ..

    tinha feito assim

    if (v)
    super('1');
    else
    super('0');

    Edava erro pois dizia que o super e a 1 isntruçao do construtor.

    Muito obrigado ^^
     

Partilhar esta Página