Bonjour !

Je m'entraine sur Java pour les rattrapages qui sont dans quelques jours, et décidément j'ai toujours du mal a comprendre la logique de ce langage ...

C'est un petit exo ou je dois creer une classe Point, puis une classe Segment.

La classe Point:

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
public class Point {
 
    private double x=0,y=0;
 
    public void Val(double xVal,double yVal){
        this.x=xVal;
        this.y=yVal;
    }
 
    public double getX(){
        //System.out.println(this.x);
        return this.x;
    }
 
    public double getY(){
        //System.out.println(this.y);
        return this.y;
    }
 
}
La classe segment

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
public class Segment {
 
    private Point p1,p2;
 
    public Point getPoint1(){
        return p1;
    }
 
    public Point getPoint2(){
        return p2;
    }
 
    public void setPoints(Point p1, Point p2){
        this.p1 = p1;
        this.p2 = p2;
    }
}
Lorsque je créer un point, il est bien initialisé directement par x=0 et y=0.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Point B = new Point();
System.out.println(B.getX());
me donne bien 0.0

Pourtant lorsque je crée un segment, les deux points ne s'initialise pas avec (0,0) ! Je ne comprend pas pourquoi !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Segment S = new Segment();
System.out.println(S.getPoint1().getX());
me donne NullPointerException !

Même si je fait

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Segment S = new Segment();
System.out.println(S.getPoint1());
Ca me donne Null.

Pourquoi ma classe segment de crée-t-elle pas directement des points de valeur (0.0) ??

Si vous avez une idée, un grand merci