[ miljannet @ 10.03.2015. 17:47 ] @
Ukratko, radio sam preklapanje metoda, pa preklapanje konstruktora. To sam savrseno skontao. Sada radim Upotreba objekta kao parametra i nemam blage veze o cemu se ovde radi, nadam se da ce neko od vas iskusnijih da mi pomogne.

Code:

public class Test 
{
    int a, b;
    
    Test(int i, int j)
    {
        a=i;
        b=j;
    }
    
    // Vraca vrednost true ako je objekat o jednak objektu koji je pozvao metodu
    boolean jednakost(Test o)
    {
        if(o.a == a && o.b == b)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}


Code:
 
public class ProslediObjekat 
{
    public static void main(String[] args) 
    {
        Test ob1 = new Test(100, 22);
        Test ob2 = new Test(100, 22);
        Test ob3 = new Test(-1, -1);
        
        System.out.println("ob1 == ob2: "+ob1.jednakost(ob2));
        System.out.println("ob1 == ob3: "+ob1.jednakost(ob3));
        
    }
}


Tekst koji ide uz kod, koji je "objasnjenje"

"Kao sto vidite, metoda jednakost() klase Test ispituje da li su dva objekta medjusobno jednaka i vraca razultat poredjenja.Drugim recima, ona poredi objekat kome pripada sa objektom koji joj se prosledi. Ako oni sadrze iste vrednosti, metoda vraca true. U suprotnom, vraca false. Obratite paznju na to da je parametar o u metodi jednakost() tipa Test. Iako je klasa Test definisana samo u ovom programu, koristi se na isti nacin kao javini ugradjeni tipovi."

Ovaj deo mi je totalno nejasan.
Code:

// Vraca vrednost true ako je objekat o jednak objektu koji je pozvao metodu
    boolean jednakost(Test o) // Test o me zbunjuje ? Mi ovde kreiramo objekat kao parametar ? Ovaj deo mi nije jasan.
    {
        if(o.a == a && o.b == b) // Takodje ovo..
        {
            return true;
        }
        else
        {
            return false;
        }
    }


Kao parametar koristimo objekat o ? Gde smo napravili taj objekat nije mi jasno.. Ako neko moze da mi pojasno.

Code:

                System.out.println("ob1 == ob2: "+ob1.jednakost(ob2));
        System.out.println("ob1 == ob3: "+ob1.jednakost(ob3));


Sta se ovde desava ? pozivamo metodu jednakost preko objekta ob1. a kao parametar saljemo objekte ob2 i ob3 sa kojima se porede one vrednosti u gore navedenom if-u ?

Hvala unapred.

[Ovu poruku je menjao miljannet dana 10.03.2015. u 20:23 GMT+1]
[ miljannet @ 11.03.2015. 23:00 ] @
Mislim da sam skontao jedan deo programa. Ali opet imam jos jednu nejasnocu. Prvo sto uradimo jeste zadamo vrednosti objektima preko konstruktora.
Onda ovaj deo kad radimo:

System.out.println("ob1 == ob2: "+ob1.jednakost(ob2));
Tacnije:
+ob1.jednakost(ob2)

ovde pozivamo metodu preko objekta ob1. a kao parametre zadajemo vrednosti koji smo uneli za objekat ob2. Tacnije ovaj deo je to koriscenje objekta u metodi kao parametar? Onda se porede vrednosti objekta da li su jednake ?
(o.a i o.b) = su vrednosti objekta ob2. dok su (a i b) vrednosti objekta ob1. Ovde je ocigledno da ce se vratiti true jer ob1 i ob2 imaju iste vrednosti.

Nadam se da sam dobro shvatio ovaj deo, a ako nisam mogao bi neko od vas iskusnijih da mi objasni gde sam pogresio ?

Deo koji ne razumem jeste ovo:

boolean jednakost(Test o)

Razumem da nam je "Test o" parametar. Ali posto se nisam nikada susrecao da mi objekat bude parametra, ja predpostavljam da se tako pravi objekat ? Moze li neko
ovaj deo da mi objasni.

Hvala unapred...