Esercizi su equals

Overridding di equals nelle sottoclassi di Object per implementare l'ugualianza per valore

Esercizi per mostrare l'utilità di eseguire l'override del metodo equals nelle sottoclassi per avere l'ugualianza per valore del metodo equals.

ESERCIZI:

laboratorio1/test/TestPersona.java
package laboratorio1.test;

import laboratorio1.Persona;

public class TestPersona {

	public static void main(String[] args) {
		
		Persona persA = new Persona("Marco", 6);
		
		Persona persB = new Persona("Marco", 6);
		
		Persona persC = new Persona("Luca", 6);
		
		
		// verificate
		if(persA.equals(persB)) {
			System.out.println("IMPLEMENTAZIONE CORRETTA");
		} else {
			System.out.println("IMPLEMENTAZIONE ERRATA");
		}
		
		if(persA.equals(persC)) {
			System.out.println("IMPLEMENTAZIONE ERRATA");
		} else {
			System.out.println("IMPLEMENTAZIONE CORRETTA");
		}
	}

}
  • Implementate una classe CassaVino con due attributi private: nomeVino di tipo String e annata di tipo int . Implemenentate la equals nella classe CassaVino che esegua il controllo solo sul nomeVino cioè due casse di vino di Lambrusco una del 1996 e una del 2000 sono uguali. Implementate la equals e una classe di test che verifichi il comportamento della classe CassaVino.

  • Ora scrivete un programma che simula un negozio che vende vino all'ingrosso: il cliente entra nel negozio e chiede al gestore se ci sono 3 casse di Lambrusco ad esempio. Il gestore verifica dal magazzino se c'è la disponibilità. Le casse di Lambrusco possono essere di annate differenti e andare bene oppure il cliente può chiedere un tipo di vino e chiedendo anche che sia di una certa annata, tipo Amarone del 2001. Poi il cliente deve poter ordinare le casse del vino che desidera, con o senza annata, e in magazzino devono essere tolte le casse. Utilizzare una classe java.util.Vector per contenere le casse di vino e i metodi della classe.

ESEMPI SOLUZIONI

https://github.com/checksound/ObjectEqualsOverride, con esempi di override del metodo equals di Object nella classe laboratorio.persona.Persona (la classe che esegue il test è laboratorio.persona.TestPersona).

Nel package laboratorio.negoziovini c'è l'esempio del negozio vini. La classe per testare le funzionalità è laboratorio.negoziovini.TestNegozio.

Last updated