TP5 - Quelques rappels sur les types primitifs et les types objets

Ce TP est un rappel sur les types primitifs et les types objets.

Exercice 1

Qu'est ce qu'un type primitf ? Qu'est ce qu'un type objet ? Quel est la différence entre ces deux types ? Illustrez votre propos avec des exemples.

Exercice 2

Quel est la différence entre l'opérateur == et la méthode equals() de la classe String ? Illustrez vos propos avec des exemples.

Exercice 3

Ce code modélise un artisant qui créé des jouets. Chaque jouet possède un numéro de série. A chaque nouveau jouet créé, l'artisant incrémente son numéro de série.

Lisez attentivement le code suivant et essayez de prévoir son éxecution. Dessinez l'état de la mémoire durant l'éxecution du code.

public class Exercice2 {
	static public class Identifiant {
		private int numeroSerie;
		public Identifiant(int numeroSerie){
			this.numeroSerie = numeroSerie;
		}
		public void incrementer(){
			this.numeroSerie++;
		}
		public void afficher(){
			System.out.println("    numero de serie : "+this.numeroSerie);
		}
	}

	static public class Jouet{
		private Identifiant identifiant;
		public Jouet( Identifiant identifiant ){
			this.identifiant = identifiant;
		}
		public void afficher(){
			System.out.println("Jouet :");
			this.identifiant.afficher();
		}
	}

	static public class FabriquantJouet{
		private Identifiant identifiantCourant;
		public FabriquantJouet(){
			this.identifiantCourant = new Identifiant(0);
		}
		public Jouet construireJouet(){
			identifiantCourant.incrementer();
			return new Jouet( this.identifiantCourant );
		}
	}

    public static void main(String[] args) {
		FabriquantJouet artisant = new FabriquantJouet(); 
		Jouet jouet1 = artisant.construireJouet();
		jouet1.afficher();

		Jouet jouet2 = artisant.construireJouet();
		jouet1.afficher();
		jouet2.afficher();

		Jouet jouet3 = artisant.construireJouet();
		jouet1.afficher();
		jouet2.afficher();
		jouet3.afficher();
	}
}

Ce code ne fonctionne pas correctement. Pourquoi? Corrigez le code en conséquence.

Valid XHTML 1.1