this

Java

1 svar · 378 visningar · startad av Tobias

Medlem sedan jan. 200133 inlägg
Trådstart#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 ?

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.

257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)