Jak czytać złożone wywołania? Podstawy Javy.

0

Hej.
Mam takie podstawowe pytanie z Javy. Od razu dam przykład.

System.out.wait(x)
Integer.toString(i).length();

W jaki sposób czyta się te dwie linijki. Nie chodzi mi o sens wywołań tych metod, raczej o to jak to interpretować, szczególnie drugą linijkę. Integer to klasa, ma metodę toString() ale to .length() odnosi się do tego co zwróci ta metoda (w sensie jest metodą z klasy String?)

W pierwszej linijce System to zapewne klasa ale czym technicznie jest "out" polem w klasie? Gdzie więc znajduje się metoda wait()?

0

Po kolei najlepiej:
Integer.toString(i).length();

( ( (Integer).toString(i) ).length() );

Integer -> toString(i) -> length(), czyli zamien liczbe na stringa, a nastepnie zwroc dlugosc tego stringa.

0

Dzięki. To już rozumiem.
Odnośnie pierwszego to wyczytałem, że np.
System.out.println("cos");
System to klasa finalna, out to statyczne finalne pole w tej klasie. Do tego momentu rozumiem odwołanie do pola: System.out ale czemu po kropce jest println() ? W którym miejscu znajduje się ta metoda?

0

Jak zajrzysz do dokumentacji to powinieneś to złapać. out jest polem klasy System i jest statyczne, dlatego odwołania System.out. Ale out, jako pole klasy, ma swój typ i jest to typ PrintStream. Czyli metoda println pochodzi właśnie z tej klasy, ale obiekt, instancja tego strumienia jest polem statycznym klasy System.

0

Kurcze, ja naprawde nie wyciagam informacji z kapelusza, wszystko jest napisane u zrodla.
Klasa System posiada statyczne pole out typu PrintStream, natomiast klasa PrintStream ma metode println() w duzej liczbie wersji.
http://docs.oracle.com/javase/6/docs/api/java/lang/System.html
http://docs.oracle.com/javase/6/docs/api/java/io/PrintStream.html

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