Java - Zjednodušení kódu

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Zamčeno
Lukkys4
Level 1.5
Level 1.5
Příspěvky: 120
Registrován: 26 bře 2017 20:14

Java - Zjednodušení kódu

Příspěvek od Lukkys4 »

Zdravím, učím se Javu, napadlo mě zkusit udělat takovou blbůstku na procvičení, jen mě zajímá jestli jde kód níže nějak zjednodušit, především to vypisování všech žáků ve stejné třídě, kde je sčítám, jestli třeba nejde nějak vytvořit metoda, nebo jestli není nějaká metoda, která vezme všechny objekty stejné třídy a "shrne je dohromady". Protože kdyby jich bylo více, strávil bych nad tím vypisováním hodiny což asi není úplně ideální, takže si říkám že musí být nějaká možnost jak to zjednodušit.

public class MainClassa {
public static void main(String[] args) {

Trida prvniA = new Trida();
Trida tretiC = new Trida();

Trida.Zak pepa = prvniA.new Zak();
Trida.Zak milan = prvniA.new Zak();
Trida.Zak karel = prvniA.new Zak();
Trida.Zak radim = prvniA.new Zak();

Trida.Zak ondra = tretiC.new Zak();
Trida.Zak david = tretiC.new Zak();
Trida.Zak michal = tretiC.new Zak();

pepa.inteligence = 14;
milan.inteligence = 2;
karel.inteligence = 15;
radim.inteligence = 40;

ondra.inteligence = 37;
david.inteligence = 44;
michal.inteligence = 41;

prvniA.celkovaInteligence = pepa.inteligence + milan.inteligence + karel.inteligence + radim.inteligence;
tretiC.celkovaInteligence = ondra.inteligence + david.inteligence + michal.inteligence;

if(prvniA.celkovaInteligence > tretiC.celkovaInteligence) {
System.out.println("První A je chytřejší třída.");
} else if(prvniA.celkovaInteligence < tretiC.celkovaInteligence) {
System.out.println("Třetí C je chytřejší třída.");
} else {
System.out.println("Třídy jsou stejně chytré");
}
}
}

Ještě tu dodám ty classy

class Trida {
public int celkovaInteligence;
class Zak {
public int inteligence;
}
}

Pokud by si někdo našel chvilku času, byl by moc hodný :)
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Java - Zjednodušení kódu

Příspěvek od CZechBoY »

Nejdřív bys mohl začít používat zvýrazňovač syntaxe zde na foru, fakt se to nedá moc přečíst jako plain text bez odsazení.

Nevím jestli zjednodušit, ale zkrátit kod by se dal třeba přesunutím vytváření instance žáka a průběžné počítání celkové inteligence do třídy Trida.
Dále by se dalo použít parametr v konstruktoru abys nemusel na jednom řádku vytvářet instanci a na dalším řádku zase přiřazovat hodnotu inteligence. Taky tě kompilátor upozorní když zapomeneš inteligenci přiřadit.

Kód: Vybrat vše

public class MainClassa {
public static void main(String[] args) {

Trida prvniA = new Trida();
Trida tretiC = new Trida();

Trida.Zak pepa = prvniA.novyZak(14);
Trida.Zak milan = prvniA.novyZak(2);
Trida.Zak karel = prvniA.novyZak(15);
Trida.Zak radim = prvniA.novyZak(40);

Trida.Zak ondra = tretiC.novyZak(37);
Trida.Zak david = tretiC.novyZak(44);
Trida.Zak michal = tretiC.novyZak(41);

if(prvniA.celkovaInteligence > tretiC.celkovaInteligence) {
System.out.println("První A je chytřejší třída.");
} else if(prvniA.celkovaInteligence < tretiC.celkovaInteligence) {
System.out.println("Třetí C je chytřejší třída.");
} else {
System.out.println("Třídy jsou stejně chytré");
}
}
}

class Trida {
public int celkovaInteligence = 0;

public Zak novyZak(int zakovaInteligence)
{
this.celkovaInteligence += zakovaInteligence;

return new Zak(zakovaInteligence);
}

class Zak {
public int inteligence;

public Zak(int inteligence)
{
this.inteligence = inteligence;
}
}
}
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Lukkys4
Level 1.5
Level 1.5
Příspěvky: 120
Registrován: 26 bře 2017 20:14

Re: Java - Zjednodušení kódu

Příspěvek od Lukkys4 »

Děkuju moc, toto jsem přesně potřeboval :)
Zamčeno

Zpět na „Programování a tvorba webu“