Java - Zjednodušení kódu Vyřešeno

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

Lukkys4
Level 1.5
Level 1.5
Příspěvky: 120
Registrován: březen 17
Pohlaví: Muž
Stav:
Offline

Java - Zjednodušení kódu  Vyřešeno

Příspěvekod Lukkys4 » 29 kvě 2020 00:07

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ý :)

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Java - Zjednodušení kódu

Příspěvekod CZechBoY » 29 kvě 2020 15:43

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.

Code: [Vybrat vše] [Zobrazit/Skrýt] [Download] (Bez_jmena.java)
  1. public class MainClassa {
  2.     public static void main(String[] args) {
  3.  
  4.         Trida prvniA = new Trida();
  5.         Trida tretiC = new Trida();
  6.  
  7.         Trida.Zak pepa = prvniA.novyZak(14);
  8.         Trida.Zak milan = prvniA.novyZak(2);
  9.         Trida.Zak karel = prvniA.novyZak(15);
  10.         Trida.Zak radim = prvniA.novyZak(40);
  11.  
  12.         Trida.Zak ondra = tretiC.novyZak(37);
  13.         Trida.Zak david = tretiC.novyZak(44);
  14.         Trida.Zak michal = tretiC.novyZak(41);
  15.  
  16.         if(prvniA.celkovaInteligence > tretiC.celkovaInteligence) {
  17.            System.out.println("První A je chytřejší třída.");
  18.         } else if(prvniA.celkovaInteligence < tretiC.celkovaInteligence) {
  19.             System.out.println("Třetí C je chytřejší třída.");
  20.         } else {
  21.             System.out.println("Třídy jsou stejně chytré");
  22.         }
  23.     }
  24. }
  25.  
  26. class Trida {
  27.     public int celkovaInteligence = 0;
  28.  
  29.     public Zak novyZak(int zakovaInteligence)
  30.     {
  31.         this.celkovaInteligence += zakovaInteligence;
  32.  
  33.         return new Zak(zakovaInteligence);
  34.     }
  35.  
  36.     class Zak {
  37.         public int inteligence;
  38.  
  39.         public Zak(int inteligence)
  40.         {
  41.             this.inteligence = inteligence;
  42.         }
  43.     }
  44. }
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: březen 17
Pohlaví: Muž
Stav:
Offline

Re: Java - Zjednodušení kódu

Příspěvekod Lukkys4 » 29 kvě 2020 17:21

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Java vers. Java Příloha(y)
    od Fanobrel » 11 čer 2023 15:15 » v Vše ostatní (sw)
    3
    1175
    od petr22 Zobrazit poslední příspěvek
    11 čer 2023 15:45

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

Kdo je online

Uživatelé prohlížející si toto fórum: Majestic-12 [Bot] a 6 hostů