Czemu w Javie nie korzystamy z klas dla zmiennych?

0

Witam mam pytanie czemu w javie używamy boolean, int, double a nie ich class Boolean, Integer i inne. Poczytałem trochę dokumentacje i te klasy mają pełno fajnych metod.

0

Skąd wniosek, że „nie używamy”?

0

Ok, źle się wyraziłem ale w książkach na tutorialach zawsze jest int boolean ale nigdy ich klas. I stąd moje pytanie

0

Poczytaj se o typach primitywnych a obiektach. To są po prostu wrapery.

0

@87kelthuzad: bo naukę zaczyna się od rzeczy najbardziej podstawowych. ;)

1

Bo obiekty mają narzut zarówno na nagłówek obiektu jak i referencję do niego.

Na 64-bitowej Javie int zajmuje 4 bajty, ale obiekt Integer już 16 bajtów, przy czym każda referencja do tego obiektu zajmuje 64 bity czyli 8 bajtów.

te klasy mają pełno fajnych metod.

Klasa np java.lang.Integer ma więcej metod statycznych niż instancyjnych. Zrób sobie import static java.lang.Integer.*; i potem możesz używać tych metod statycznych np compare(int1, int2).

Poza tym prymitywy mają jeszcze jedną fajną właściwość - nie da się do nich przypisać nulla, więc operując na nich nie dostaniemy NullPointerException.

1

<flame>Bo Java jest błędnie zaprojektowana.</flame> :)

0
koszalek-opalek napisał(a):

<flame>Bo Java jest błędnie zaprojektowana.</flame> :)

Znam tylko jeden język, gdzie int udaje klasę na etapie kompilacji, ale na etapie wykonania już nie - ten język to C#. Jaki to daje zysk? Że zamiast np abs(5) można napisać 5.abs(). Czy to jest jakiś wielki szał? No nie wiem, można popatrzeć do kodu C# i zobaczyć w ilu miejscach mamy wywołania metod na intach i innych prymitywach (czy jak kto tam woli prostych klasach wartościowych).

3
Wibowit napisał(a):
koszalek-opalek napisał(a):

<flame>Bo Java jest błędnie zaprojektowana.</flame> :)

Znam tylko jeden język, gdzie int udaje klasę na etapie kompilacji, ale na etapie wykonania już nie - ten język to C#. Jaki to daje zysk? Że zamiast np abs(5) można napisać 5.abs().

Zysk daje taki, że nie trzeba się zastanawiać gdzie ma być int a gdzie Integer.

1 użytkowników online, w tym zalogowanych: 0, gości: 1