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

Vnitrni trida a jeji instance – Java – Fórum – Programujte.comVnitrni trida a jeji instance – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Sranda
~ Anonymní uživatel
1 příspěvek
8. 11. 2009   #1
-
0
-

Dobry den, snazim se v Jave pochopit napsani a pouziti vnitrni tridy. Mam Tridu SpravceUctu, jejiz kod vypada takto, vsimnete si prosim vnitrni tridy Prubeh.



package Ucet;

public class SpravceUctu {
public final int POCET_UCTU_MAXIMUM=9999999;
private Ucet[] ucty;

public SpravceUctu() {
inicializujSpravceUctu(POCET_UCTU_MAXIMUM);
}

public SpravceUctu(int kapacita) {
inicializujSpravceUctu(kapacita);
}

private boolean inicializujSpravceUctu(int kapacita) {
if(0<kapacita && kapacita < POCET_UCTU_MAXIMUM) {
this.ucty = new Ucet[kapacita];
return true;
} else {
return false;
}
}


public int VytvorUcet(int cisloUctu,String mena,int vklad) {
int i = NajdiVolnyUcet();
int result;
if(i!=-1) { //povedlo-li se najit novy ucet, tak ho s radosti vytvorim
ucty[i] = new Ucet(cisloUctu,mena,vklad);
result = i;
} else {
result = -1;
}
return result;
}

public int VytvorUcet(int cisloUctu,String mena) {
int i = NajdiVolnyUcet();
int result;
if(i!=-1) { //povedlo-li se najit novy ucet, tak ho s radosti vytvorim
ucty[i] = new Ucet(cisloUctu,mena);
result = i;
} else {
result = -1;
}
return result;
}

public int VytvorUcet(int cisloUctu) {
int i = NajdiVolnyUcet();
int result;
if(i!=-1) { //povedlo-li se najit novy ucet, tak ho s radosti vytvorim
ucty[i] = new Ucet(cisloUctu);
result = i;
} else {
result = -1;
}
return result;
}



public int NajdiVolnyUcet() { //indexVolnyUcet(); -p4, s 50/52
/**
* Humorna pasaz...trochu jsem se potrapil,nez mi napadlo,proc to zakomentovany pod tim nechodi..ted uz to vim...
*/
for (int i = 0; i < ucty.length; i++) {
if(ucty[i]==null) {

return i;

}

}
return -1;
}


// for (int i = 0; i <ucty.length; i++) { //z tohohle je treba sa poucit
// if (ucty[i]==null) {
// k = i;
//
// }
// else {
//
// k=-1; //jestli uz banka nema kapacitu na volny ucty, tak vratit -1
// }
// }
// return k;
// }


public int najdiPodleCislaUctu(int cisloUctu) { //ucel jako metoda najdiUcet v prednasce 4, strana 50/52
for (int i = 0; i < ucty.length; i++) {
if(ucty[i]!= null && ucty[i].getCisloUctu()==cisloUctu) {
return i;
}

}
return -1;
}

public void ZrusUcet(int cisloUctu) {
ucty[cisloUctu] = null;

}
public boolean OverUcet(int cisloUctu) {
if(ucty[cisloUctu]!=null) {
return true;
} else {
return false;
}

}

public Ucet dejUcet(int cisloUctu) {
int index = najdiPodleCislaUctu(cisloUctu);
if(index>0) {
return ucty[index];
} else return null;
}

public void VyberZUctu(int cisloUctu, int castka) {
ucty[cisloUctu].vyber(castka);

}
public void VlozNaUcet(int cisloUctu, int castka) {
ucty[cisloUctu].vloz(castka);
}



private class Prubeh {
int pozice=0;

public boolean jePosledni() {
if(pozice==ucty.length -1) {
return true;
} else
return false;
}

public Ucet aktualni() {
return ucty[pozice];
}

void inkrementovat() {
if(pozice<ucty.length) {
pozice++;
}
}

}//konec tridy prubeh
public Prubeh prubeh(SpravceUctu u) {
return u.new Prubeh();
}


}//konec tridy spravce uctu


Dale mam tridu, kde je funkce main:



package system;

import Ucet.SpravceUctu;


public class BankomatRun {

public static void main(String[] args) {
SpravceUctu spravceJedna = new SpravceUctu(5000);
for (int i = 0; i < 20; i++) {
spravceJedna.VytvorUcet(((int)Math.random()+1)*10000, "CZK", ((int)Math.random()+1)*1000);
// System.out.println("Byl vytvoren ucet s cislem: " +spravceJedna.dej + );
}



Prubeh iterator = new spravceJedna.prubeh(); // ----zde se objevi chyba, ze neni schopen najit tridu Prubeh, ani balicek //spravceJedna ...pritom musim vytvaret instanci vnitrni tridy vzdy z konkretni instance vnejsi, nebo ne?

}

}




Muj problem je popsan v komentari na poslednich radcich, nevi si prosimvas nekdo s timto rady?

Nahlásit jako SPAM
IP: 95.173.207.–
Reklama
Reklama
H4wk.cz0
Newbie
8. 11. 2009   #2
-
0
-

Protoze je ta trida private, tak není vidět mimo třídu, ve které je deklarována. A když bys ji dal public, tak pak se k ní přistupuje přes třídu ve které je, tedy SpravceUctu.Prubeh

Nahlásit jako SPAM
IP: 78.128.196.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
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, 35 hostů

Podobná vlákna

Vnitřní třídy — založil Marek

PHP ping ve vnitrni siti — založil Marek Stejskal

Koule a její části — založil Hráč

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ý