Jazyk Java se používá hlavně pro psanívelké podnikové webové aplikace. Platí to i pro jiné předměty, kde je často nutné pracovat s velmi velkým počtem. Přestože Java má primitivní typy, existují situace, kdy nestačí.
Je známo, že všechny primitivy mají jednonepříjemnou vlastností je přetečení typu, kdy výstup mimo povolené hodnoty vede k nesprávným výpočtům. K tomu je speciální třída s názvem BigInteger. Java by nebyla Java, pokud by neměla samostatnou třídu s funkčností pro tento případ. Zvažme to podrobněji.
Jak jste už věděli, třídu BigIntegershell pro velké celočíselné hodnoty. Chcete-li zapsat číslo do objektu tohoto typu, můžete použít jedno z přetížení jeho konstruktorů nebo metodu statické hodnotyOf. Konstruktor může vzít řetězec nebo pole bajtů jako argument. Chcete-li převést jednoduché typy, které reprezentují celá čísla, použijte metodu statické hodnoty v nástroji BigInteger Java.
Protože Java může přetížitoperátoři jsou nepřítomní, aby bylo možné provádět matematické operace na hodnotách zapouzdřených v této třídě, je poskytnuta odpovídající metoda. Budou se dále diskutovat.
Tato třída má ve svém arzenálu mnohometody, které umožňují manipulovat s číselnými hodnotami a provádět na nich různé matematické operace. Níže je uveden seznam těchto metod.
Analyzujeme metody, které provádějí aritmetické operace:
- add (hodnota) - přidává hodnoty aktuálního objektu s argumentem předaným jako;
- odečíst (odčítací) - odečíst odčítač od aktuální hodnoty;
- násobí (hodnota) - provede násobení;
- dělení (dělič) - dělí aktuální hodnotu na dělič;
- pow (int arg) - zvyšuje hodnotu vyvolaného objektu na hodnotu síly v arg;
- abs () - vrátí absolutní hodnotu volaného objektu;
- negate () - vrátí objekt BigInteger, jehož hodnota má opačný znak.
Podívejme se na jednoduchý příklad provádění aritmetické operace na dvou hodnotách zapouzdřených v objektu:
- BigInteger val1, val2, přidání, dělení, oppositeSign;
- val1 = nový BigInteger ("5");
- val2 = BigInteger.valueOf (10);
- přidání = val1.add (val2);
- dělení = val2.divide (val1);
- oppositeSign = val1.negate ();
Všimněte si, jak vytvořit objekty. Proměnná val1 byla inicializována pomocí konstruktoru, který přijal řetězec, a uloží hodnotu 5. val2 je 10 jako výsledek metody statické hodnotyOf. Hodnota přidané proměnné je výsledkem přidání prvních dvou proměnných a je 15. Proměnná dělení odpovídajícím způsobem ukládá výsledek odečítání. oppositeSign se rovná hodnotě val1 s opačným znaménkem, tj. -5.
Jak můžete vidět, třída Java třídy BigInteger poskytujerůzné nástroje pro operace na velmi velkých počtech. V takovém případě jsou typu overflow eliminovány, jelikož bezpečnost v Javě má jednu z nejvyšších priorit, přirozeně bez kompromisů funkčnosti.
</ p>