Equals, compare, ereditarietà, ecc.

public class EqualsEtc{
	public static void main(String[] arg){
		Object o1=new MioOggetto("pippo");
		Object o2=new MioOggetto("pluto");
		Object o3=new Object();
 
		System.out.println(o1);
		System.out.println(o2);
		//System.out.println(o1=o2);
		System.out.println(o1==o2); // confronta solo i reference
		System.out.println(o1.equals(o2)); // confronta "tutto"
 
		//System.out.println(o1.equals(o3)); // confronta "tutto"
 
		Object o4=new AltraClasse();
		System.out.println(o1.equals(o4)); // confronta "tutto"
 
		//int ciao=7;		
		//System.out.println(ciao=8);
	}
}
 
class MioOggetto{
	private String nome, cognome, targa, orario;
 
	public MioOggetto(String nome){
		this.nome=nome;
	}
 
	public boolean equals(Object altro){
 
		// 1)
		//return altro instanceof MioOggetto; // criterio di uguaglianza un po' lasco
 
		// 2)
		if(altro instanceof MioOggetto)
			return ((MioOggetto)altro).nome==nome;		
		return false;		
 
	}
}
 
 
 
class AltraClasse{
	String nome;
}
 
class Sopra{
	String valore;
	public String toString(){
		return "sopra: "+valore;
	}
}
 
class Sotto extends Sopra{
	int valore;
	public String toString(){
		return super.toString()+", sotto: "+valore;
	}
}
 
class TestCastIncasinati{
	public static void main(String[] arg){
		/*
		Object o=new Sotto();
		((Sopra)o).valore="contenuto";
		((Sotto)o).valore=7;
		System.out.println(o);
		*/
 
		/*
		Sopra o=new Sotto();
		o.valore=7;
		o.valore="contenuto";
		System.out.println(o);
		*/
 
		Sotto o=new Sotto();
		o.valore=7;
		((Sopra)o).valore="contenuto";
		System.out.println(o);
	}
}
import java.util.*;
 
public class CompareTo{
	public static void main(String[] arg){
		ArrayList<Contenuto> lista = new ArrayList<Contenuto>();
 
		/*		
		for(int i=1;i<15000;i+=3000){
			lista.add(new Contenuto(i));
		}
		*/
 
		lista.add(new Contenuto("uno"));
		lista.add(new Contenuto("due"));
		lista.add(new Contenuto("tre"));
		lista.add(new Contenuto("quattro"));
		lista.add(new Contenuto("cinque"));
		lista.add(new Contenuto("sei"));
		lista.add(new Contenuto("dodici"));
		lista.add(new Contenuto("trentasette"));
 
		System.out.println(lista);
 
		lista.sort(new MioComparatore());
 
		// usando la "reflection" si può istanziare classe a partire dal nome in stringa
 
		// es. Class.forName("NuovoComparatoreAggiuntoAllUltimoMinuto").newInstance()
 
 
		lista.sort(null);  // equivalente a quello sotto
		//Collections.sort(lista);
 
		System.out.println(lista);
	}
}
 
class Contenuto
	implements Comparable<Contenuto>
{
	private String nome;
	public String getNome(){return nome;}
	public void setNome(String nome){this.nome=nome;}
 
	public Contenuto(String nome){
		setNome(nome);
	}
 
	public Contenuto(int nome){
		setNome(""+nome);
	}
 
	public int compareTo(Contenuto altro){
		//return altro.nome.length()-nome.length();
		return
			altro.nome.charAt(altro.nome.length()-1)-
			nome.charAt(nome.length()-1);
	}
 
 
	public String toString(){
		return super.toString()+": "+nome;
	}
}
 
class MioComparatore
	implements Comparator<Contenuto>
{
	public int compare(Contenuto uno, Contenuto due){
		return due.getNome().length()-uno.getNome().length();
	}
}
pub/labprog/20171218.txt · Last modified: 2017/12/18 17:14 by atrent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0