Class obj = Jsoup.connect();
Odnośnie tej llinijki na jakiej zasadzie jest tworzony obiekt z metody innej klasy.
Class obj = Jsoup.connect();
Odnośnie tej llinijki na jakiej zasadzie jest tworzony obiekt z metody innej klasy.
Jeżeli Class = jakaś nazwa klasy (bo zakładam, że nie jest tutaj użyta klasa Class z java.lang), to:
Dla kogo ten wywiad?
Prawdodpobnie w klasie Jsoup jest statyczna metoda connect(). która "coś" zwraca
Tylko tyle da się wyczytać (a i to prawdopodobnie) z tego fragmentu
Odnośnie tej llinijki na jakiej zasadzie jest tworzony obiekt z metody innej klasy.
O ile jest tworzony - bo tego nie wiemy - to ewentualnie byłby tworzony tej metodzie. Potem co najwyżej jest kopiowana referencja do niego.
Z całą pewności nie jest tworzony "z metody". Jest, i to da się powiedzieć z pewnością, pprzypisywana referencja
ZrobieDobrze napisał(a):
Prawdodpobnie w klasie Jsoup jest statyczna metoda connect(). która "coś" zwraca
Tylko tyle da się wyczytać (a i to prawdopodobnie) z tego fragmentuOdnośnie tej llinijki na jakiej zasadzie jest tworzony obiekt z metody innej klasy.
O ile jest tworzony - bo tego nie wiemy - to ewentualnie byłby tworzony tej metodzie. Potem co najwyżej jest kopiowana referencja do niego.
Z całą pewności nie jest tworzony "z metody". Jest, i to da się powiedzieć z pewnością, pprzypisywana referencja
Document document = Jsoup.connect("Adres");
public static Connection connect(String url) {
return HttpConnection.connect(url);
}
public static Connection connect(URL url) {
Connection con = new HttpConnection();
con.url(url);
return con;
}
Ps. sorrki nowy na forum jestem i tak nie ogarniam zbytnio jeszcze
Powiedz czy dobrze to rozumiem: "Tworzymy obiekt document z klasy Document
który przyjmuje wartość z tego wyrażenia Jsoup.connect(String);
czyli ta metoda zwraca nam HttpConnection.connect(url)
gdzie jest tworzony obiekt con
i to wlasnie przyjmuje ten document
".
froggson napisał(a):
Powiedz czy dobrze to rozumiem: "Tworzymy obiekt document z klasy
Document
który przyjmuje wartość z tego wyrażeniaJsoup.connect(String);
czyli ta metoda zwraca namHttpConnection.connect(url)
gdzie jest tworzony obiektcon
i to wlasnie przyjmuje tendocument
".
Lewa strona podstawienia ma sens: przypisujemy referencje a nie "tworzymy obiekt". Zmienne obiektowe w javie są (aż i tylko). referencjami (wskaznikami) do obeioktów, które są gdzieś (na heapie - stercie).
Inaczej mówiąc zadeklarowanie zmiennej (referencyjnej)
Dokument document
tworzy tylko zmienną (he he) referencyjną - w momencie gdy to zachodzi (wejście wykonania kodu w to miejsce) istnienie obiektu już jest od jakiegoś czasu
Więc dla zmiennych w typie jakiejś klasy, sama znienna to tylko referencja - dla zmiennych typów prostych (prymitywnych . primitive) jak int, double, bool itd, rzeczywiście zmienna jest tak jak się spodziewasz, sama liczbą, wartością logiczną itd ... tak dualizm jest w Javie.
w szczególności:
Document document1 = ....
Document doc2 = document1;
Są dwie referencje wskazujace na ten sam obiekt. Tak jakbyś dwóm ludziom dał karteczkę z adresem (class Address), gdzie mieszkasz (ew jedna skserowała drugiej). Karteczki dwie, ale faktu mieszkania to nie zmienia.
Z profesjonalnym czytaniu tego kodu przeszkadzają mi głęboko odmienne typy, Connection to raczej w rozsądnych warunkach nie będzie nijak kompatybilne z Document - ale to kwestia biblioteki a nie formalności języka. Przeczuwam, przykład się źle skleił z niezależnych fragmentów
Spodziewałbym się błędu ClassCastException albo czegoś podobnego.
ZrobieDobrze napisał(a):
froggson napisał(a):
Powiedz czy dobrze to rozumiem: "Tworzymy obiekt document z klasy
Document
który przyjmuje wartość z tego wyrażeniaJsoup.connect(String);
czyli ta metoda zwraca namHttpConnection.connect(url)
gdzie jest tworzony obiektcon
i to wlasnie przyjmuje tendocument
".Lewa strona podstawienia ma sens: przypisujemy referencje a nie "tworzymy obiekt". Zmienne obiektowe w javie są (aż i tylko). referencjami (wskaznikami) do obeioktów, które są gdzieś (na heapie - stercie).
Inaczej mówiąc zadeklarowanie zmiennej (referencyjnej)
Dokument document
tworzy tylko zmienną (he he) referencyjną - w momencie gdy to zachodzi (wejście wykonania kodu w to miejsce) istnienie obiektu już jest od jakiegoś czasu
Więc dla zmiennych w typie jakiejś klasy, sama znienna to tylko referencja - dla zmiennych typów prostych (prymitywnych . primitive) jak int, double, bool itd, rzeczywiście zmienna jest tak jak się spodziewasz, sama liczbą, wartością logiczną itd ... tak dualizm jest w Javie.w szczególności:
Document document1 = ....
Document doc2 = document1;
Są dwie referencje wskazujace na ten sam obiekt. Tak jakbyś dwóm ludziom dał karteczkę z adresem (class Address), gdzie mieszkasz (ew jedna skserowała drugiej). Karteczki dwie, ale faktu mieszkania to nie zmienia.
Z profesjonalnym czytaniu tego kodu przeszkadzają mi głęboko odmienne typy, Connection to raczej w rozsądnych warunkach nie będzie nijak kompatybilne z Document - ale to kwestia biblioteki a nie formalności języka. Przeczuwam, przykład się źle skleił z niezależnych fragmentów
Spodziewałbym się błędu ClassCastException albo czegoś podobnego.
Dziekuje bardzo w idealny sposób mi to przedstawiłeś i teraz zrozumiałem wszystko