Odwołanie do zmiennej w innej klasie

0

Mam 2 klasy w pierwszej mam zmienną o nazwie ilość, a w drugiej mam funkcje która zwiększa tą zmienną. W jaki sposób mogę odnieść się do tej zmiennej w drugiej klasie, ale nie zmieniając jej na statyczną?

klasa 1

 public class Pierwsza {
    public  int ilosc = 100;
    }

klasa2

 public class Druga {
    public void zwieksz()
    {
       ilosc++
    }
0

Musisz najpierw zrozumieć czym różni się klasa od obiektu, bo jest to dość kluczowa kwestia. Jeśli zmienna nie jest statyczna to należy do OBIEKTU a nie do KLASY. To oznacza że takich zmiennych jest tyle ile utworzonych obiektów!

Pierwsza p1 = new Pierwsza();
Pierwsza p2 = new Pierwsza();
Pierwsza p3 = new Pierwsza();

Druga d1 = new Druga();
Druga d2 = new Druga();

d1.zwieksz(); // i co się to ma niby stać?

Jakiego efektu spodziewałbyś się po wykonaniu takiego kodu? ;]

0

Zostanie wywołana funkcja zwieksz zmiennej dl klasy Druga?

0

Ja to bym spytał inaczej - @Axel121 napisz przede wszystkim co chcesz osiągnąć - bo takie programowanie dla programowania to chyba nie ma sensu. Podaj konkretną sytuację, bo obecnie Twoje pytanie powoduje że nie można dać jednoznacznej i prawidłowej odpowiedzi.

0

Chce zrobić program który ma przycisk i pole w którym coś się wyświetla.Po kliknięciu w ten przycisk ma wywołać się funkcja która zwiększy tą zmienna która wyświetli sie w tym polu

0

Najprościej będzie chyba zrobić w pierwszej klasie funkcję do zwiększania tej zmiennej, a w drugiej ją wywołać. Albo uczynić te klasy zaprzyjaźnionymi, wtedy druga będzie miała dostęp do zmiennych pierwszej.

0

Zdefiniuj klasę której obiekt(w twoim przypadku "Druga") umieścisz w formie w której będziesz miał ten przycisk. Pod zdarzenie naciśnięcia przycisku dodajesz wywołanie metody "zwiększ".

0

@Axel121 nie zrozumiałeś mojego pytania chyba. Masz w tym moim kodzie 3 obiekty klasy Pierwsza. Każdy ma SWÓJ WŁASNY LICZNIK. Moje pytanie brzmi: który z nich miałby się zwiększyć i dlaczego akurat ten.

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