Stránka 1 z 1

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

Napsal: 29 kvě 2020 00:07
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ý :)

Re: Java - Zjednodušení kódu

Napsal: 29 kvě 2020 15:43
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.

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. }

Re: Java - Zjednodušení kódu

Napsal: 29 kvě 2020 17:21
od Lukkys4
Děkuju moc, toto jsem přesně potřeboval :)