PDA

Prikaži potpunu verziju : Eh ta Java


bofi
29.5.2006, 16:09
class A {
public int m(int i) {
if (i <= 0) return 0;
if (i % 3 == 0)
return m(i-1) + 2*i;
else
return m(i-1) - i;

}


}

public class Main {

/** Creates a new instance of Main */
public Main() {
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
A a = new A();
int i = a.m(4);
// System.out.println("Vrednost i je " + i);
}

}

Ovo je jedan od zadataka koji pokusavam da provalim. Pitanje je koliko se rekurzivna metoda m puta poziva i kolio je vrednost i. Ja sam ubacivanjem reda System.out.println("Vrednost i je " + i); saznao da je vrednos i=-1. Po meni m se poziva dva puta da li sam u pravu? Ako neko znam pomagajte.

MG-RAY
29.5.2006, 17:35
pre ce biti nesto ovako:


Return m(i - 1) - i
Return m(i-1) + 2*i
Return m(i - 1) - i
Return m(i - 1) - i
Return 0

znaci - 5 puta, ako sam u pravu...

za neki drugi broj: n+1

bofi
30.5.2006, 17:19
Brate hvala ti puno potpuno si u pravu. Sad mi je mnogo jasnije kako radi ovo. Hvala puno!!!:n_klanja:

bofi
7.6.2006, 17:25
Interesuje me jos jedna stvar pa ako neka zna dobro bi doslo.
Mislim da je ovo cista teorija. Ako na primer imam abstrakrnu klasu A njenu podklasu B i C koja je takodje podklasa klase A. Pitanje je sta znace ove linije:
B b = c;
A a = b;
C c = e1;
Mozda ovo nesto pomogne:
public B(B b) {super (b);...}
public C (C c) {super (c);...}
Ovo mi cisto treba sa teorsike strane ako neko slucajno zna neku adresu bas sto se tice ovoga neka okaci dosta bi mi znacilo.

MG-RAY
7.6.2006, 21:14
predefinisi malo...:D

RaleVuk
7.6.2006, 22:55
Abstraktna klasa ne može da se kreira, recimo ne bi mogao da napišeš
A oa = new A();

Jedino može da se definiše referentni objekat abstraktne klase (A a; ), sto je ustvari onaj tvoj kod.
B b = c;
A a = b;
C c = e1;
Pošto nisi dao ceo kod, mogu samo da pretpostavim da su c, b, e1 objekti konkretne klase. Što znači da su objekti apstraktne klase dobili referencu objekta konkretne klase.
E sad sa tim referentnim objektom može da se pozove članica objekta konkretne klase (recimo neka metoda)...