webForumDet fria alternativet

this

Java

1 svar · 369 visningar · startad av Tobias

Medlem sedan jan. 200133 inlägg
Frågan#1

Se följande kod:

public class BinaryTree
{

public void merge( Object rootItem, BinaryTree t1, BinaryTree t2 )
{
    if( t1.root == t2.root && t1.root != null )
    {
        System.err.println( "leftTree==rightTree; merge aborted" );
        return;
    }

        // Allocate new node
    root = new BinaryNode( rootItem, t1.root, t2.root );

        // Ensure that every node is in one tree
    if( this != t1 )
        t1.root = null;
    if( this != t2 )
        t2.root = null;
}

private BinaryNode root;

}

Vad är this i denna kontext? Brukar ju användas som this.nånting ?

------------------
Med vänliga hälsningar

Tobias Bohlin

Medlem sedan mars 20007 896 inlägg
#2

this är den egna klassen.
I if-satserna jämför man this med t1, och t1 är av typen BinaryTree, vilket även this motsvarar.

Alltså jämför man en instans av den egna klassen med sig själv, för att se om de är lika.

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

[Redigerat av SPiN den 31 maj 2001]

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)