nazwa klasy -> zmienna = (?)

nazwa klasy -> zmienna = (?)
ZoooL
  • Rejestracja:ponad 5 lat
  • Ostatnio:7 miesięcy
  • Postów:62
0

y0y0

mam 3 klasy:
"Imie", "Nazwisko" i "Main"

w klasie "Nazwisko" robie zmienna "Imie imie" jak ona dziala?
jesli robie zmienna typu Int przechowuje liczby, String litery.... a zmienna innej klasy (?)

edytowany 1x, ostatnio: ZoooL
pedegie
  • Rejestracja:około 11 lat
  • Ostatnio:ponad rok
  • Postów:204
1

yoyo

przechowuje inne klasy : D, String to tez taka inna klasa, nawet mozesz w nia wejsc i zobaczyc jak wyglada

edytowany 1x, ostatnio: pedegie
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
1

Bo C to najlepszy język, każdy uczeń ci to powie
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

String litery

Żebyś się nie zdziwił ;) Niemniej gdzie widzisz problem? Masz klasę

Kopiuj
class A{
    private int x;
    private int y;
}

Czemu miałbyś nie móc stworzyć sobie takiego obiektu? Założmy na chwilę ze to jest prosta struktura z C, po prostu twój obiekt to byłby obszar w pamięci w którym byłyby te 2 inty i tyle. Tak samo jak String byłby obszarem w pamięci gdzie są literki.
Zauważ że w komputerze w pamięci nie ma czegoś takiego jak obiekty czy typy. Są bajty i tyle. To jak te bajty interpretujesz to jest twoja sprawa. Np. masz w pamięci AAAA ale równie dobrze można to odczytać jako 4 bajtowego inta 0x41414141 (czyli 1094795585). Analogicznie, zamiast obiektu tej mojej klasy A mógłbyś uznać ze to tablica 2 intów.
Oczywiście java w praktyce dorzuca dużo rzeczy do takiego obiektu, więc to nie jest tak ze masz tam tylko te 2 gołe inty, ale idea jest taka sama.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
elwis
  • Rejestracja:ponad 18 lat
  • Ostatnio:6 dni
1

Inne obiekty innych klas to tylko struktury złożone z kilku typów podstawowych w określonej kolejności. Metody klasy mogą być oddzielnie, tylko kompilator/maszyna wirtualna musi zadbać, że można je wykonywać tylko na obiektach danej klasy i żeby struktura obiektu w pamięci została zachowana.


edytowany 3x, ostatnio: elwis
C.mind
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa
  • Postów:95
DKN
  • Rejestracja:ponad 4 lata
  • Ostatnio:8 miesięcy
  • Postów:128
0

Chłopacy przedstawili jak wyglada sytuacja w podejściu obiektowym.
Jesteś na początku, wiec dobrze wiedzieć, ze są 2 sposoby na dotarcie do danych (tak, w rzeczywistości jest więcej, można przez refleksje i inne magiczne sztuczki, ale proszę sobie darować xd).
Jeden : Stworzenie nowego obiektu.
Dwa : Poprzez statyczna drogę.
Pierwsza droga: Co oznacza taki zapis dla pamięci ram?
Klasa klasa;
Nic. Dosłownie nic, nie tworzysz niczego w tym momencie, a tylko deklarujesz, ze klasa będzie miała jakiś typ.
Dopiero gdy zrobisz
new Klasa();
Pamięć RAM się włączy do zabawy. Jak uruchomisz ten kod, to oznacza, ze stworzyłeś obiekt. Ale chwila, jak tym obiektem operować?
No trzeba połączyć te 2 elementy.
Czyli Klasa klasa = new Klasa();
W tym momencie przypisaliśmy obszar pamięci do zmiennej i mozemy na niej wykonywać operacje.

Druga droga, to statyczna droga. Czyli element statyczny jest inicjalizowany przy uruchomieniu programu i jeżeli nic specjalnego się nie stanie to zostanie on tam do końca. Wiec możesz się dostać do statycznego elementu klasy bez tworzenia obiektu.
Czyli Klasa.x;

Trzecia droga jest przed tobą i jest bardzo długa.


Z każdym dniem czuje się głupszym programista.
edytowany 2x, ostatnio: ŁF

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.