2 votes

Comment obtenir le retour d'une méthode de classe imprimé dans main en Java ?

Je suis en train d'apprendre les classes et les constructeurs en Java mais je n'arrive pas à comprendre pourquoi je ne peux pas imprimer une valeur combinée à partir d'autres méthodes. Voici mon code dans main.java :

public static void main(String[] args) {

    Wall height = new Wall ();
    Wall width = new Wall ();
    Wall area = new Wall();

    height.setHeight(5);
    System.out.println("height = " + height.getHeight());
    width.setWidth(4);
    System.out.println("width = " +width.getWidth());
    System.out.println("area = " +width.getWidth()*height.getHeight());
    System.out.println(area.getArea());
    System.out.println("AREA      =     " + area );

}

et voici mon code dans la classe Wall :

public class Wall {

private double height;
private double width;

public Wall () {
    this.height = height;
    this width = width;
}

    public Wall (double height, double width){
        if (height <= 0 || width <= 0) {
            this.height = 0;
            this.width = 0;
        }

    }

        public double getHeight () {
            return this.height;
        }
        public double getWidth () {
            return this.width;
        }
        public void setHeight (double height){
        this.height = height;
    }
    public void setWidth (double width){
        this.width = width;
    }

    public double getArea () {
        this.height = height;
        this width = width;
    double area = getHeight()*getWidth();

        return area;
    }

J'ai des problèmes avec la dernière méthode getArea, car elle imprime 0,0 comme si la hauteur et la largeur n'étaient pas définies. Que me manque-t-il ?

2voto

Arvind Kumar Avinash Points 49501

Problème

Vous avez mis width y height dans différents objets et en essayant de trouver le la zone à partir d'un objet différent.

Solution

Vous devez définir ces valeurs sur le même objet, comme indiqué ci-dessous :

Wall wall = new Wall ();

wall.setHeight(5);
System.out.println("height = " + wall.getHeight());
wall.setWidth(4);
System.out.println("width = " + wall.getWidth());
System.out.println("area = " + wall.getWidth() * wall.getHeight());
System.out.println(wall.getArea());

0voto

Mureinik Points 61228

Vous avez trois différents Wall les objets - le area ne seront pas affectées par le réglage des valeurs sur height o width . Il semble que vous vouliez avoir un seul mur :

Wall wall = new Wall();

wall.setHeight(5);
System.out.println("height = " + wall.getHeight());
wall.setWidth(4);
System.out.println("width = " +wall.getWidth());
System.out.println("area = " + wall.getWidth() * wall.getHeight());
System.out.println(wall.getArea());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X