[Java] - Para liczb - metody - problem z kolejnością...

ŚwIeRsZcZ
Użytkownik
Użytkownik
Posty: 232
Rejestracja: 8 paź 2006, o 16:21
Płeć: Mężczyzna
Lokalizacja: Wawa
Podziękował: 121 razy
Pomógł: 1 raz

[Java] - Para liczb - metody - problem z kolejnością...

Post autor: ŚwIeRsZcZ »

Witam ! Mam taki problem, którego nie wiem jak rozwiązać:

Kod: Zaznacz cały

public class Main {

   
    public static void main(String[] args) {

        Para p1 = new Para(5, 10);
        
        p1.add(5,6); //daje wynik (10, 16)
        
        p1.add(3); // daje wynik (13 , 19) , a chcę żeby metoda odwoływała się
                   // do pary wywołanej przy konstruktorze. - (5,10)
      }

}

class Para {

    int a;
    int b;
  
    Para(int x , int y){ //Konstruktor inicjujacy pare l.calkowitych
        a=x;
        b=y;
        }
    void add(int i){    //metoda - do obu skladników pary dodaje podaną liczbę

        a+=i;
        b+=i;
        System.out.println("("+a+","+b+")");
        
    }
    void add(int i, int k){ //metoda - pierwsza podana liczbe

        a+=i;
        b+=k;
        System.out.println("("+a+","+b+")");
    }
}
Jak zrobić żeby kolejna metoda odwoływała się do pary wywołanej na samym początku programu ? Muszę utworzyć nowy obiekt o tych samych wartościach ?? czyli napisać: Para p2 =new Para(5,10) i dopiero wtedy wywołać metodę p2.add(3); itd. ?? :/

I jeszcze taka sprawa: jak dodać metodę : void add(Para p) - która będzie dodawała do pary na rzecz której wywołano metodę, parę podaną jako argument ?? ;/

Dziękuję za pomoc +.
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

[Java] - Para liczb - metody - problem z kolejnością...

Post autor: spajder »

a nie lepiej po prostu utworzyć dwa obiekty typu para?

Kod: Zaznacz cały

Para p1 = new Para(5, 10);
Para p2 = new Para(5, 10);

p1.add(5,6);
p2.add(3);
inaczej tego po prostu nie zrobisz. Nie możesz nawet napisać:

Kod: Zaznacz cały

Para p2 = p1;
bo kopiowanie w javie odbywa się przez referencję i te nazwy będą wskazywały na ten sam obszar pamięci.
ŚwIeRsZcZ
Użytkownik
Użytkownik
Posty: 232
Rejestracja: 8 paź 2006, o 16:21
Płeć: Mężczyzna
Lokalizacja: Wawa
Podziękował: 121 razy
Pomógł: 1 raz

[Java] - Para liczb - metody - problem z kolejnością...

Post autor: ŚwIeRsZcZ »

Jeszcze mam takie pytanie, jak będzie wyglądał kod metody typu : p1.add(p2); ?? (mówiąc słowami , metody która będzie dodawała dwie , wcześniej utworzone obiekty-pary ? ;/
spajder
Użytkownik
Użytkownik
Posty: 735
Rejestracja: 7 lis 2005, o 23:56
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 2 razy
Pomógł: 133 razy

[Java] - Para liczb - metody - problem z kolejnością...

Post autor: spajder »

Kod: Zaznacz cały

void add(Para p)
{
    a += p.a;
    b += p.b;
}
ODPOWIEDZ