
import java.util.*;


public class atribuicao {
	
	
	public static void main(String[] args) {
		
	  atribuicao roda = new atribuicao();	  
	  roda.teste();
	}	
	

	public void teste() {
	
	  Object a, b;
	
	  a = new Vector();
	  b = new Date();
	  
	  
	  System.out.println("------- 1 parte ----------\n" );
	  System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" );
      System.out.println("b eh instancia de Date? "+ (b instanceof Date) + "\n" );
      	
	  metodo_atribuicao(a, b);
	
	  //Apos o metodo_atribuicao, o objeto a nao esta "apontando" para o objeto b
	  //ou seja, o objeto a continua como Vector e o objeto b como Date.
	
	    a = b;
	    
	    System.out.println("------- 2 parte ----------\n" );
	    System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" );
        System.out.println("b eh instancia de Date? "+ (b instanceof Date) + "\n" );        

	 
	  //Agora sim o objeto a "aponta" para o objeto b
	  //ou seja, o objeto a agora é Date e o objeto b tambem
	}
	
	
	public void metodo_atribuicao(Object a, Object b) {
		
	  a = b;
	  
	  System.out.println("------- 3 parte ----------\n" );
	  System.out.println("a eh instancia de Vector? "+ (a instanceof Vector) + "\n" );
      System.out.println("b eh instancia de Date? "+ (b instanceof Date) );      
	}
	
}
