Dziedziczenie Java

2016-01-28 13:49

Rejestracja: 4 lata temu

Ostatnio: 1 rok temu

0

Czytam sobie o dziedziczeniu i tam sa podane pewne przykłady ale wszystko toczy sie w jednym pakiecie.
Gdybym chciał rozszerzyć jakaś klasę z biblioteki javy ale takich klas o takiej samej nazwie jest wiele w całej bibliotece javy.
To muszę do nowej klasy importować tą klase która chce rozszerzyć i dopiero wtedy rozszerzać???
W książce tego nie pisze ani nie ma przykładu takiego ale tak sie domyslam. Niby skąd kompilator ma wiedzieć która klasę chce rozszerzyć.
Dobrze sie domyślam???

Pozostało 580 znaków

2016-01-28 13:54
Moderator

Rejestracja: 16 lat temu

Ostatnio: 35 minut temu

0

ale takich klas o takiej samej nazwie jest wiele w całej bibliotece javy

Nie przesadzajmy.

To muszę do nowej klasy importować tą klase

ZAWSZE jeśli chcesz gdzieś użyć jakiejś klasy to musisz ją importować.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
jakoś java.lang.Integer nie musze - karolinaa 2016-01-28 14:02
java.lang to wyjątek ;) - Shalom 2016-01-28 14:03
@karolinaa w groovym masz jeszcze lepiej z importami ;) - NoZi 2016-01-28 14:08

Pozostało 580 znaków

2016-01-28 14:19

Rejestracja: 4 lata temu

Ostatnio: 1 rok temu

0

ZAWSZE jeśli chcesz gdzieś użyć jakiejś klasy to musisz ją importować

Oki dzieki. Szkoda że tego nie powiedzieli w książce a to ważne jest.
Ale nie całkiem zawsze, gdy mamy ta klase we własnym pakiecie to nie musimy.

Nie przesadzajmy.

Np. zarówno pakiet java.util, jak i java.sql mają klasę Date.
Więc zdarza sie że w różnych pakietach są klasy o takich samych nazwach. A nawet gdybym chciał z jakiegoś pakietu rozszerzyć klase do swojego programu to też muszę zaimportować, bo kompilator niby skąd ma wiedziec.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PYT.2 Gdy tworze nową klasę (A) na podstawie starej klasy (B). I w nowej klasie (A) bede uzywał jakiejś klasy (C) a wiem że w starej klasie (B) była importowana klasa (C) :

  • to w nowej klasie (A) też muszę importować klasę (C) ??
  • czy importy ze starej klasy tez przechodzą do nowej klasy??
edytowany 2x, ostatnio: golec2604, 2016-01-28 14:44

Pozostało 580 znaków

2016-01-28 14:38
Moderator

Rejestracja: 16 lat temu

Ostatnio: 35 minut temu

0

Nie powiedzieli w książce pewnie dlatego że jak programujesz jakimś normalnym IDE a nie lodówką to importy dodaja sie automatycznie i zwykle nie musisz o nich w ogóle myśleć. Tylko jeśli nazwa jest konfliktująca (jak to Date czy np. List) to IDE pyta o którą klasę chodzi.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Pokaż pozostałe 7 komentarzy
Jak ma email edu to może mieć IntelliJ za darmo, przynajmniej na jakiś czas ;) - mariusz_s 2016-01-28 16:27
@katelx sorry ale nie używam tooli ktore nie pozwalają mi wykonać jakichś podstawowych operacji np: push z forcem, zresztą... konsole gita jest taka śliczna ^^ - JasnyPatryk 2016-01-28 16:28
@Shalom sorry ale nie przeładowywanie zmian z gita to nie jest rąbek u spodni tylko poważne issue - JasnyPatryk 2016-01-28 16:29
@mariusz_s serio ? #oniondetection - JasnyPatryk 2016-01-28 16:29
@JasnyPatryk popieram, nic tak nie poprawia samopoczucia jak kilka komend w git bash ;D #oniondetection = true - mariusz_s 2016-01-28 16:30

Pozostało 580 znaków

2016-01-28 15:05

Rejestracja: 4 lata temu

Ostatnio: 1 rok temu

0

Podsumujmy:
Mam rozumieć że dziedziczeniu podczas rozszerzania klasy gdy nazwy nie są kolidujace kompilator IDE (np. eclipse, którego używam) sam sobie doda import a w przypadku kolidujących nazw zapyta o którą chodzi. Dobrze czaje??

==================================

PYT.2 Gdy tworze nową klasę (A) na podstawie starej klasy (B). I w nowej klasie (A) bede uzywał jakiejś klasy (C) a wiem że w starej klasie (B) była importowana klasa (C) :

  • to w nowej klasie (A) też muszę importować klasę (C) ??
  • czy importy ze starej klasy tez przechodzą do nowej klasy??
edytowany 1x, ostatnio: golec2604, 2016-01-28 15:07

Pozostało 580 znaków

2016-01-28 15:07
Moderator

Rejestracja: 16 lat temu

Ostatnio: 35 minut temu

0

W każdym pliku importujesz wszystko co mu jest potrzebne. Nie ma znaczenia co importowały pliki które importujesz. Analiza jests przeprowadzana per plik więc plik musi zawierać kompletną informacje.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-01-28 15:12

Rejestracja: 4 lata temu

Ostatnio: 1 rok temu

0

A mógłbyś odpowiedzieć na podsumowanie?? Oraz w pytaniu drugim pytam jak jest z importami w dziedziczeniu. Jeśli klasa A rozszerza klase B to czy importy klasy B przechodza do klasy A ??

Pozostało 580 znaków

2016-01-28 15:15
Moderator

Rejestracja: 16 lat temu

Ostatnio: 35 minut temu

1

Przykro mi ale musisz zacząć wreszcie używać mózgu i czytać ze zrozumieniem. Udzieliłem odpowiedzi na wszystkie twoje wątpliwości.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2016-01-28 15:32

Rejestracja: 4 lata temu

Ostatnio: 1 rok temu

0

Napisałeś tak:

Nie ma znaczenia co importowały pliki które importujesz.

A mnie nie interesują pliki które importuje tylko pliki które dziedzicze. Zadałem proste pytanie na temat importów w dziedziczeniu:

Gdy tworze nową klasę (A) na podstawie starej klasy (B). I w nowej klasie (A) bede uzywał jakiejś klasy (C) a wiem że w starej klasie (B) była importowana klasa (C) :

  • to w nowej klasie (A) też muszę importować klasę (C) ??
  • czy importy ze starej klasy tez przechodzą do nowej klasy??

I na to pytanie nie odpowiedziałes.

edytowany 2x, ostatnio: golec2604, 2016-01-28 15:34

Pozostało 580 znaków

2016-01-28 15:36

Rejestracja: 5 lat temu

Ostatnio: 1 rok temu

0
golec2604 napisał(a):

Oraz w pytaniu drugim pytam jak jest z importami w dziedziczeniu. Jeśli klasa A rozszerza klase B to czy importy klasy B przechodza do klasy A ??

Plik źródłowy jako taki nie ma większego związku z klasami w nim zdefiniowanymi, tj. w jednym pliku możesz zdefiniować wiele klas (choć wg. konwencji zwykle jest jedna klasa w jednym pliku).
Importy robisz per plik źródłowy, a nie per klasa.
Zatem nie ma znaczenia w jakim pliku została zdefiniowana klasa i jakie importy były tam użyte. Ty musisz wskazać każdą użytą klasę (spoza pakietu i pakietu java.lang) używając pełnej nazwy lub ją sobie zaimportować.

Pozostało 580 znaków

2016-01-28 15:43
Moderator

Rejestracja: 16 lat temu

Ostatnio: 35 minut temu

0

A mnie nie interesują pliki które importuje tylko pliki które dziedzicze.

To jakaś nowość chyba to dziedziczenie plików...

Zadałem proste pytanie na temat importów w dziedziczeniu:

A ja już dwa razy napisałem że NIE MA znaczenia czy dziedziczysz, czy po prostu używasz jakiejs klasy czy cokolwiek innego. Konieczność importu pozostaje.

I na to pytanie nie odpowiedziałes.

Odpowiedziałem, po prostu nie potrafisz czytać ze zrozumieniem.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
<quote>A ja już dwa razy napisałem że NIE MA znaczenia czy dziedziczysz, czy po prostu używasz jakiejs klasy czy cokolwiek innego </quote> No właśnie nie powiedziałeś tego wcześniej. - golec2604 2016-01-28 15:45
O RLY? A to: ZAWSZE jeśli chcesz gdzieś użyć jakiejś klasy to musisz ją importować. to się samo napisało? Napisałem wyraźnie każde UŻYCIE. No ale ty przecież nie umiesz czytać... - Shalom 2016-01-28 15:47

Pozostało 580 znaków

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