Zmienne w innych klasach

Zmienne w innych klasach
Adrian Lachowicz
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 7 lat
  • Postów:10
1

Witam !!! Mam 2 pytania.

  1. Jak zrobić aby zmienna int ( może się nazywać A ) była widoczna w innych klasach o metodach ( tak aby można było na niej robić operację takie jak dodawanie I odejmowanie) ???
  2. Jak zapisać stan zmiennej w 1 klasie I aby ten stan był widoczny w drugiej ( w pierwszej klasie odejmuje od 300 200 I zapisuję jej stan jako 100. W drugiej klasie jest 100 I mogę dalej robić na niej operację) ???
kiyo
  • Rejestracja:około 8 lat
  • Ostatnio:około 23 godziny
  • Postów:155
2

1.Zastosować akcesory (funkcje set i get).
2.Zmienna może byś statyczna. Wtedy ma ona taką samą wartość dla wszystkich klas.

Adrian Lachowicz
A jak wywołać ją w innej klasie( MainActivity.getIntiger ) coś takiego ???
kiyo
Tak. Ale jeśli chcesz wywołać w taki sposób to metoda getInteger() musi być statyczna.
jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
0

Programowanie obiektowe raczej zabrania klasie B modyfikować pola klasy A. Teoretycznie klasa A powinna raczej udostępniać metody do zmiany swojego stanu, np. dodaj i te metody wykona klasa B. Zwie się to enkapsulacją. Chodzi o to, żeby klasa A sama kontrolowała swoje dane, a nie żeby jakaś obca klasa jej mieszała.


Przeważnie ignoruję niezarejestrowanych użytkowników.
Adrian Lachowicz
A jak takie metody udostępnić I w klasie B je wykonać ???
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Ja bym zaczął jednak od nauki podstaw i od zrozumienia czym różni się KLASA od OBIEKTU, bo bez tego to niestety będzie ciężko...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
jarekr000000
Znowu JavaScript (stary) wygrywa, bo nie robi takich niepotrzebnych problemów :-)
Haskell
  • Rejestracja:prawie 10 lat
  • Ostatnio:12 miesięcy
  • Postów:4700
0
Adrian Lachowicz napisał(a):

Witam !!! Mam 2 pytania.

  1. Jak zrobić aby zmienna int ( może się nazywać A ) była widoczna w innych klasach o metodach ( tak aby można było na niej robić operację takie jak dodawanie I odejmowanie) ???
  2. Jak zapisać stan zmiennej w 1 klasie I aby ten stan był widoczny w drugiej ( w pierwszej klasie odejmuje od 300 200 I zapisuję jej stan jako 100. W drugiej klasie jest 100 I mogę dalej robić na niej operację) ???

Zmień język, w Javie takich rzeczy się nie robi. Może zacznij kodować w Pascalu, zrobisz tam sobie zmienną globalną i z dyńki.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
Zobacz pozostałe 4 komentarze
Patryk27
Tak się składa, że trochę poprogramowałem i w dalszym ciągu nie widzę różnicy - mógłbyś przedstawić?
Haskell
Chociażby taka, że pole statyczne klasy jest nadal elementem tej klasy, a nie zmienną globalną.
Patryk27
Podobnie jak zmienna globalna jest widoczna tylko w obrębie zadeklarowanego modułu, chyba że doda się go do uses (tak jak w Javie byś zaimportował klasę).
Haskell
W Javie trzeba się posłużyć konkretną nazwą klasy, w Pascalu zmienna będzie widoczna wszędzie gdzie będzie użyty moduł i programista nawet nie musi się orientować w którym module to siedzi. Z resztą koncepcja zmiennych globalnych jest sprzeczna z założeniami Javy.
Patryk27
Musi się orientować, bo musi go zaimportować. W jaki sposób koncepcja zmiennych globalnych jest sprzeczna, skoro można je utworzyć bez problemu? (public static)

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.