No enclosing instance... – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

No enclosing instance... – Java – Fórum – Programujte.comNo enclosing instance... – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Anonym
~ Anonymní uživatel
429 příspěvků
6. 1. 2009   #1
-
0
-

Mám drobný problém. Zkouším napsat v Javě program na dělení se zbytkem nebo beze zbytku. Kód vypadá takto (vzhledem k tomu, že zkouím Javu první den to asi bude dosti prasárna):



public class Delenisezbytkem {
public class Vydel
{
private int co;
private int cim;
private boolean seZbytkem;
private float vysledek;
private String vyslRetezec;
private int zbytek;
private int bezeZbytku;

public void Nastav(int a, int b, boolean c)
{
co = a;
cim = b;
seZbytkem = c;
}

public void Spocitej()
{
if(seZbytkem = true)
{
zbytek = co % cim;
bezeZbytku = co - zbytek;
vyslRetezec = "Výsledek: " + (bezeZbytku / cim) + "zb: " + zbytek;
System.out.println(vyslRetezec);
}
else
{
vysledek = co / cim;
System.out.println(vysledek);
}

}
}

public static void Main(String[] args)
{
Vydel myDeleni = new Vydel();
myDeleni.Nastav(26, 5, true);
myDeleni.Spocitej();

Vydel druheDeleni = new Vydel();
druheDeleni.Nastav(26, 5, false);
druheDeleni.Spocitej();
}
}


A obě definice instance třídy Vydel mi hází tuto chybu: No enclosing instance of type Delenisezbytkem is accessible. Must qualify the allocation with an enclosing instance of type Delenisezbytkem (e.g. x.new A() where x is instance of Delenisezbytkem). A to je na mě přecejenom trochu moc. Prosil bych o radu.

Nahlásit jako SPAM
IP: 88.100.54.–
Reklama
Reklama
o-lox0
Super člen
6. 1. 2009   #2
-
0
-

Třídu Vydel musíš deklarovat jako statickou
public static class Vydel
protože k ní přistupuješ z nedynamické oblasti funkce main.

dynamicky by to šlo např. v konstruktoru třídy Delenisezbytkem.
Tam bys je přesunul - Jedná se samozřejmě o tyto řádky:
Vydel myDeleni = new Vydel();
myDeleni.Nastav(26, 5, true);
myDeleni.Spocitej();

Vydel druheDeleni = new Vydel();
druheDeleni.Nastav(26, 5, false);
druheDeleni.Spocitej();
Pokud potřebuješ víc instancí, přesměrovávat , ale to v tvém kódu nehrozí, nastuduj si třídu, statickou, atd..

Nahlásit jako SPAM
IP: 85.71.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 31 hostů

Podobná vlákna

Instance — založil ahoj

Zakladani instance — založil Jirka

OOP - instance tridy — založil Abi Poe

Vnitrni trida a jeji instance — založil Sranda

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý