• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie instancji klasy i odwoływanie się do niej !?!

0 głosów
519 wizyt
pytanie zadane 9 maja 2016 w Algorytmy przez Rafał Matuszczak Początkujący (340 p.)

Witam

Mam pytanie ogólne z jakby procedury tworzenia / korzystania z techniki objektowej, a więc :

Przypuśćmy że mamy klasę Pojazd, klasa ta zawiera atrybut prywatny (_float stan_zbiornika) oraz dwie metody Set_StanZbiornika(float value) i Get_StanZbiornika() dla wyjaśnienia jedna ustawia stan druga zwraca stan aktualny.

 no i jeśli chcę wykorzystać tę klasę to oczywiście tworzę jej instancje np w jakimś startowym main:

Pojazd p = new Pojazd ()   

i ustawiam wartość zbiornika na 500 L

p.Set_StanZbiornika(500)

no i pięknie mamy w klasie ustawioną wartość , gdzie banalnie korzystając z metody Get_StanZbiornika() w tej samej instancji klasy uzyskamy wartość 500

Ale powiedzmy że muszę stworzyć instancję nową klasy Pojazd w innym miejscu programu, gdzie chciałbym sprawdzić stan zbiornika pojazdu i oczywiście metoda Get_StanZbiornika() da nam 0 jeśli jej wcześniej nie ustawimy.... 

i moje pytanie... Jak zastosować przykład do rozwiązania takiego, aby utworzenie nowe instacji klasy w innym miejscu programu odwoływało się do jakiegoś "zbiornika danych" które raz ustawione w programie (np. na początku) będzie nam zwracało wyniki bez ponownego ustawiania... chciałbym aby ten zbiornik był np. ArrayList..

jeśli błądzę gdzieś z samym projektowaniem to proszę naprowadźcie mnie na prostą...

Z góry dzięki za odp

 

1 odpowiedź

+1 głos
odpowiedź 9 maja 2016 przez niezalogowany
Jeżeli stan_zbiornika ma być wspólną wartością dla wszystkich pojazdów jakie stworzysz to niech atrybut będzie statyczny

https://msdn.microsoft.com/en-us/library/aa691162(v=vs.71).aspx
komentarz 9 maja 2016 przez Rafał Matuszczak Początkujący (340 p.)
dobry pomysł, ale chyba z tego co w testach wyszło mi że zmienną static mogłem zdeklarować tylko w metodach/funkcjach klasy, a nie globalnie w klasie, ale przyjrzałem się opcji SHARED i to bym chyba wykorzystał bardziej z powodzeniem, ponieważ zbudowałem strukturę Pojazd gdzie Stan_Zbiornika jest Shared i to daje mi efekt. Tylko że hermetyzacja trochę słaba w takim rozwiązaniu co ? Ale dziękuje za podpowiedź \m/

Podobne pytania

0 głosów
1 odpowiedź 634 wizyt
pytanie zadane 2 czerwca 2017 w C# przez Szymek_sw Początkujący (420 p.)
0 głosów
0 odpowiedzi 842 wizyt
0 głosów
1 odpowiedź 474 wizyt
pytanie zadane 26 listopada 2016 w C i C++ przez Caishen Nowicjusz (210 p.)

93,800 zapytań

142,768 odpowiedzi

323,461 komentarzy

63,421 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...