» »

Java, cannot find symbol (Razredi)

DirectX11 ::

Meni se to zdi smiselno, vendar ne dela ker ne najde atributa od Marjetice. Kako, sej sem preveril če je objekt od Marjetice, kar je potem bi moral tudi izpisat tisti atribut STcvetov.






class Roza{
    String barva;
    int visina;
    
    Roza(String barva, int visina){
        this.barva = barva;
        this.visina = visina;
    }
}

class Marjetica extends Roza{
    int stCvetov;
    
    Marjetica(String barva, int visina, int stCvetov){
        super(barva,visina);
        this.stCvetov = stCvetov;
    }
}


//class Vrtnica

//... itd.



public class Test{
    
    public static void main(String args[]){
        Roza TabelaRoz[] = new Roza[2];
        TabelaRoz[0] = new Marjetica("bela", 10, 30);
        TabelaRoz[1] = new Marjetica("bela", 15, 32);
        
        for(int i=0; i < TabelaRoz.length; i++){
            if (TabelaRoz[i] instanceof Marjetica)
                //tale vrstica: cannot find symbol
                System.out.println(TabelaRoz[i].stCvetov);
        }
        
    }
        
}

icurk ::

Mislim da v Javi je po defaultu private modifikator. Tako da postavi spremenljivke na public.

infiniteLoop ::

Instanceof keyword in downcast. Zdaj pa googlat zakaj uporaba instanceof vecinokrat pomeni, da si ga nekje polomil pri modeliranju.


class Roza{
    String barva;
    int visina;
    
    Roza(String barva, int visina){
        this.barva = barva;
        this.visina = visina;
    }
}

class Marjetica extends Roza{
    int stCvetov;
    
    Marjetica(String barva, int visina, int stCvetov){
        super(barva,visina);
        this.stCvetov = stCvetov;
    }
}


//class Vrtnica

//... itd.



public class Test{
    
    public static void main(String args[]){
        Roza TabelaRoz[] = new Roza[2];
        TabelaRoz[0] = new Marjetica("bela", 10, 30);
        TabelaRoz[1] = new Marjetica("bela", 15, 32);
        
        for(int i=0; i < TabelaRoz.length; i++){
            if (TabelaRoz[i] instanceof Marjetica)
                //tale vrstica: cannot find symbol
                if (TabelaRoz[i] instanceof Marjetica) {
                    System.out.println(((Marjetica)TabelaRoz[i]).stCvetov);
                }                
        }
        
    }
        
}

None of us is as dumb as all of us.

Zgodovina sprememb…

DirectX11 ::

Odlično, hvala, sedaj dela. Zanimivo da je treba samo tisto dodati

Spura ::

icurk je izjavil:

Mislim da v Javi je po defaultu private modifikator. Tako da postavi spremenljivke na public.

Default access je package access. Drugace pa itak naj ne bi dostopal do memberjev direktno kot je v OP.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java: tabela problem

Oddelek: Programiranje
13261 (204) Cancer
»

[JAVA]Barvni string v labeli

Oddelek: Programiranje
8449 (377) Infinity
»

Vodni udar (java)

Oddelek: Programiranje
6910 (608) Nuke_H2
»

JAVA-NALOGA- Pomoc NUJA!!!!!

Oddelek: Programiranje
6649 (572) bijonda
»

[Java][Naloga] Skladi

Oddelek: Programiranje
5869 (668) bijonda

Več podobnih tem