Klasy i metody

0

BufferedReader buffread = new BufferedReader(new FileReader(new File("file.dat"))

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

Co znaczy metoda umieszczona w nawiasie ? Nie chodzi mi o to co znaczy (new InputStreamReader, tylko co znaczy umieszczenie metody w nawiasie ?

new BufferedReader**(new InputStreamReader(System.in));
**

0

To nie jest metoda, tylko przekazanie do konstruktora nowej instancji danej klasy, pomijając przy tym niepotrzebne tworzenie zmiennej, która by ją przechowywała.
System.in natomiast, to przypuszczam, że enumerator(bzdura, to zwykle pole statyczne) wskazujący na tryb pracy Readera, którego instancję przekazujesz.

Ale głowy nie dam, bo ja Javy nie znam i tylko tu sprzątam.

I... Znaczniki. Kod w znaczniki. Proszę, błagam. Żałuję.

0
Klojtex napisał(a):

To nie jest metoda, tylko przekazanie do konstruktora nowej instancji danej klasy, pomijając przy tym niepotrzebne tworzenie zmiennej, która by ją przechowywała.
System.in natomiast, to przypuszczam, że enumerator(bzdura, to zwykle pole statyczne) wskazujący na tryb pracy Readera, którego instancję przekazujesz.

Ale głowy nie dam, bo ja Javy nie znam i tylko tu sprzątam.

I... Znaczniki. Kod w znaczniki. Proszę, błagam. Żałuję.

Ale co to znaczy **przekazanie do konstruktora nowej instancji danej klasy
**
co to po prostu robi i czemu służy umieszczanie czegoś takiego w nawiasie

0
BufferedReader buffread = new BufferedReader(new FileReader(new File("file.dat"))

To to samo co:

File file = new File("file.dat");
FileReader fileRead = new FileReader(file);
BufferedReader buffread = new BufferedReader(fileRead);

Najpierw tworzysz obiekt File i przypisujesz do zmiennej. By stworzyć FileReader potrzebujesz do tworzenia (do konstruktora) przekazać File, robisz to w nawiasie, tworzysz FileReader przekazując mu wcześniej stworzony File. Następnie BufferedReader przyjmuje na wejściu FileReader, przekazujesz mu więc FileReader stworzony przed chwilą.

1

Polecam lekturę wzorca projektowego "Dekorator", bo w kontekście tych klas właśnie mamy z nim do czynienia. Obiekt klasy File jest dekorowany FileReaderem, by zapewnić możliwość odczytywania z pliku, a BufferedReader zapewnia buforowanie (bez buforowania każde wywołanie read() to czytanie z pliku, konwersja do character i zwrócenie wartości co może być niewydajne).

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