Stworzenie metody mogacej przyjac argument

0

Da sie swtorzyc taka metode, ze jesli ja wywolam z argumentem to przyjmie ten argument, a jesli bez argumentu to bedzie miala jego domyslna wartos?

0

Tak.

   public void foo(int ile)
   {
      ....
   }
   public void foo()
   {
      foo(33);
   }
0

@up: Na Javie się nie znam, ale chodzi pewnie chodzi co innego. Na przykład procka Cokolwiek ma parametr z wartością domyślną 100. I wtedy wywołania będą takie:

Cokolwiek(70);  //wartość -> 70
Cokolwiek(500); //wartość -> 500
Cokolwiek();    //wartość -> 100

A co do postu: sprawdź, czy nie można tak:

void Cokolwiek(int Costam = 100); //procedura Cokolwiek, parametr Costam z wartością domyślną 100
0

@up, przyznaję Ci rację - na Javie się znasz. Podany przeze mnie przykład, to właśnie jest funkcja foo() z wartoscią domyślną 33. Taki sposób działa zresztą w każdym języku, która dopuszcza przeciążenie nazw funkcji.
@szefoski, propozycji @mnbvcX nie sprawdzaj, szkoda czasu.

0

W Javie nie ma metod z wartosciami domyslnymi parametrow. I tyle, nie da sie. Mozna jednak zrobic wybieg jesli nie podoba ci sie sposob kolegi Bogdansa (ktory powinien ci sie podobac w Javie, nie ma bowiem innego sposobu, no poza tym ponizej).

public void metoda(int... i) {
    int param;
    if (i.length == 0) {
        param = //TUTAJ TWOJA DOMYSLNA WARTOSC;
    } else {
        param = i[0]; // pierwszy int jaki jest, nie interesuje nas czy jest ich 1 czy 500
    }
    // i jakies cuda na wartosci param
}

Wywolujesz tak:

metoda(17);

lub

metoda(); // w tym wypadku twoja domyslna wartosc

Jednakze, mozna ja rowniez wywolac tak:

metoda(10, 20, 30);

i uzyta zostanie pierwsza wartosc, pozostale beda ignorowane. Musisz jeszcze wiedziec ze w tym rozwiazaniu tworzona jest pomocnicza tablica intow podczas wywolania metody.
Ten sposob przyszedl mi do glowy przed chwila i nie podoba mi sie, ale jak chcesz mozna uzyc. Metoda bez parametrow jest lepsza.
Aha, to dopiero od Javy 5, no ale nie wiem czy ktos kto sie uczy Javy ma zainstalowane cos wczesniejszego, jesli tak to sciagaj nowke sztuke.
Sam przechodzac z C++ zastanawialem sie dlacsego nie mozna zrobic domyslnych wartosci parametrow, ale prawde mowiac nie bylo mi to specjalnie potrzebne w dotychczasowej karierze, wiec przestalem ubolewac.
Pozdrawiam.

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