Jag vill, beroend av vad användaren väljer skapa ett nytt objekt. jag har två överlagrade konstruktorer, en som tar en parameter, en som tar två. Jag stöter på problem när jag skapar det nya objektet inne i min if-sats. Problemet är att när jag sedan försöker använda objektet och anropa metoder med det nya objektet så verkar det som om namnet på objektet inte känns igen. Jag antar att det beror på att jag skapar det nya objektet inom måsvingar i if-satsen? definiera (eller vad det nu heter) c1 och c2 före ifsatsen Nu har jag testad med det här. Jag vill skapa två objekt, en med varje konstruktor så jag la allt i en while-loop. felet jag får vid körning är: Rookiefråga Java
System.out.println("välj 1 om ....., annars välj 2");
val = Integer.parseInt(in.readLine());
if (val == 1)
{
System.out.println("ange radie i heltal!");
radie = Integer.parseInt(in.readLine());
System.out.println("ange färg!");
färg = in.readLine();
Cirkel c1 = new Cirkel(radie, färg);
}
else
if (val == 2)
{
System.out.println("ange radie i heltal!");
radie = Integer.parseInt(in.readLine());
Cirkel c2 = new Cirkel(radie);
}
c1.någonMetod(); el, c2.någonMetod(); // här blir det fel!
Vore väldigt tacksam om någon kunde tipsa mig om hur jag löser detta på bästa sätt.
Tack på förhand
/Andreas
Sv: Rookiefråga Java
Cirkel c1;
Cirkel c2;
if (...) {
...
c1 = new Cirkel(radie, färg);
} else {
...
c2 = new Cirkel(radie);
}
...
Har du annars behov av både c1 och c2, annars har man normalt bara ena, (som då alltid är != null) när du kallar på .någonMetod()
Sv:Rookiefråga Java
TestCirkel.java:65: variable c1 might not have been initialized
omkrets = c1.omkrets();
^
TestCirkel.java:71: variable c2 might not have been initialized
omkrets = c2.omkrets();
Cirkel c1;
Cirkel c2;
int räknare = 0;
double omkrets;
while (räknare < 2)
{
if (...) {
...
c1 = new Cirkel(radie, färg);
} else {
...
c2 = new Cirkel(radie);
}
räknare++;
}
omkrets = c1.omkrets();
System.out.println(omkrets);
omkrets = c2.omkrets();
System.out.println(omkrets);