Bien le bonjour à tous !
Je suis étudiant en premiere année de dut info. Nous avons commencé a étudier le java. Pas de soucis mais je piétine sur un truc au niveau d'un constructeur...

Voici le tp que j'ai fait, il est divisé en trois classes (UnPoint, UnRectangle et Test) que voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class UnPoint{
	int abscisse,ordonnee;
 
	UnPoint(){
		abscisse=0;
		ordonnee=0;
	}
	UnPoint(int a, int o){
		abscisse=a;
		ordonnee=o;
	}
	UnPoint(UnPoint p){
		if(p !=null){
			abscisse=p.abscisse;
			ordonnee=p.ordonnee;
		}else{
			abscisse=0;
			ordonnee=0;
		}
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
class UnRectangle{
 
 
	UnPoint coin;
	int largeur, hauteur;
 
	UnRectangle(){
		coin=new UnPoint();
		largeur=1;
		hauteur=1;
	}
	UnRectangle(int l, int h){
		coin=new UnPoint();
		if(l<1){
			largeur=1;
		}else{
			largeur=l;
		}
		if(h<1){
			hauteur=1;
		}else{
			hauteur=h;
		}	
	}
	UnRectangle(UnPoint p){
		if(p==null){
			coin=new UnPoint();
		}else{
			coin=p;
		}	
		largeur=1;
		hauteur=1;
	}
	UnRectangle(UnPoint p,int a,int b){
		if(p==null){
			coin=new UnPoint();
		}else{
			coin=p;
		}
		largeur=a;
		hauteur=b;
	}
	UnRectangle(int a,int o,int h,int l){
		if(h<1){
			hauteur=1;
		}else{
			hauteur=h;
		}
		if(l<1){
			largeur=1;
		}else{
			largeur=l;
		}
		coin=new UnPoint(a,o);
	}
	UnRectangle(UnRectangle r){
		if(r!=null){
			largeur=r.largeur;
			hauteur=r.hauteur;
			coin=new UnPoint(r.coin);
		}else{
			largeur=1;
			hauteur=1;
			coin=new UnPoint();
		}	
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
import java.util.Scanner;
 
 
class Test{
 
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
 
		UnRectangle premier_rectangle,deuxieme_rectangle,troisieme_rectangle,quatrieme_rectangle,cinquieme_rectangle,sixieme_rectangle,rectangle_r;
		UnPoint premier_point,deuxieme_point;
 
		System.out.println("Choisissez le type de rectangle a construire (entre 1 et 6) :");
		int i=sc.nextInt();
		System.out.println("Choix" +i);
 
		switch(i){
 
		case 1:
			premier_rectangle=new UnRectangle();
			System.out.println("Premier rectangle (abscisse) : " +premier_rectangle.coin.abscisse);
			System.out.println("Premier rectangle (ordonnee) : " +premier_rectangle.coin.ordonnee);
			System.out.println("Premier rectangle (largeur) : " +premier_rectangle.largeur);
			System.out.println("Premier rectangle (hauteur) : " +premier_rectangle.hauteur);
		break;
 
		case 2:
			deuxieme_rectangle=new UnRectangle(10,15);
			System.out.println("Deuxieme rectangle (abscisse) : " +deuxieme_rectangle.coin.abscisse);
			System.out.println("Deuxieme rectangle (ordonnee) : " +deuxieme_rectangle.coin.ordonnee);
			System.out.println("Deuxieme rectangle (largeur) : " +deuxieme_rectangle.largeur);
			System.out.println("Deuxieme rectangle (hauteur) : " +deuxieme_rectangle.hauteur);
		break;
 
		case 3:
			premier_point=new UnPoint(22,35);
			troisieme_rectangle=new UnRectangle(premier_point);
			System.out.println("troisieme rectangle (abscisse) : " +troisieme_rectangle.coin.abscisse);
			System.out.println("troisieme rectangle (ordonnee) : " +troisieme_rectangle.coin.ordonnee);
			System.out.println("troisieme rectangle (largeur) : " +troisieme_rectangle.largeur);
			System.out.println("troisieme rectangle (hauteur) : " +troisieme_rectangle.hauteur);
		break;
 
		case 4:
			deuxieme_point=new UnPoint(99,12);
			quatrieme_rectangle=new UnRectangle(deuxieme_point, 45, 88);
			System.out.println("quatrieme rectangle (abscisse) : " +quatrieme_rectangle.coin.abscisse);
			System.out.println("quatrieme rectangle (ordonnee) : " +quatrieme_rectangle.coin.ordonnee);
			System.out.println("quatrieme rectangle (largeur) : " +quatrieme_rectangle.largeur);
			System.out.println("quatrieme rectangle (hauteur) : " +quatrieme_rectangle.hauteur);
		break;
 
		case 5:
			cinquieme_rectangle=new UnRectangle(45, 88, 48, 56);
			System.out.println("cinquieme rectangle (abscisse) : " +cinquieme_rectangle.coin.abscisse);
			System.out.println("cinquieme rectangle (ordonnee) : " +cinquieme_rectangle.coin.ordonnee);
			System.out.println("cinquieme rectangle (largeur) : " +cinquieme_rectangle.largeur);
			System.out.println("cinquieme rectangle (hauteur) : " +cinquieme_rectangle.hauteur);
		break;
 
		case 6:
			sixieme_rectangle=new UnRectangle(rectangle_r=new UnRectangle r);
			System.out.println("sixieme rectangle (abscisse) : " +sixieme_rectangle.coin.abscisse);
			System.out.println("sixieme rectangle (ordonnee) : " +sixieme_rectangle.coin.ordonnee);
			System.out.println("sixieme rectangle (largeur) : " +sixieme_rectangle.largeur);
			System.out.println("sixieme rectangle (hauteur) : " +sixieme_rectangle.hauteur);
		break;
 
		default:
			System.out.println("mauvais choix, veuillez relancer le programme");
		}	
	}
}
Voici l'énoncé correspondant au 6eme rectangle construit dans test :

"Programmez les constructeurs suivants pour la classe UnRectangle :

...blablabla...

Constructeur avec un paramètre UnRectangle: rectangle dont la position, la largeur, la hauteur sont celles du rectangle passé en paramètre (NB: le coin du rectangle construit n'est pas le même que celui du rectangle passé en paramètre seulement leur position est la même. Un troisieme constructeur pour la classe UnPoint peut être programmé)."

Il reste plus que ce satané sixieme rectangle à construire, j'ai beau triturer le probleme dans tous les sens, je n'y arrive pas, avez vous une piste à me proposer ?

Merci d'avance pour vos réponses, Dwuom