Java Konsole

Klaus64

Newbie
Registriert
Apr. 2020
Beiträge
2
ich habe das Programm erstellt aber kann jetzt meine Maximum und Minimum Punkte nicht auf der Konsole ausgeben lassen
Java:
import java.util.List;

class BoundingBox {
    
      
    private double height;
    private double width;
    private static Point minPoint;
    private static Point maxPoint;
    
      
    public BoundingBox(List<Point> manyPoints) {
        double minX = manyPoints.get(0).getX();
        double maxX = manyPoints.get(0).getX();
        double minY = manyPoints.get(0).getY();
        double maxY = manyPoints.get(0).getY();
        
          
        for (int i = 0; i < manyPoints.size(); i++) {
            Point test = manyPoints.get(i);
            test.getX();
            
            if (test.getX() < minX) {
                minX = test.getX();
            }
            
            if (test.getX() > maxX) {
                maxX = test.getX();
            }
            
            if (test.getY() < minY) {
                minY = test.getY();
            }
            
            if (test.getY() > maxY) {
                maxY = test.getY();
            }
            
            minPoint = new Point(minX, minY);
            maxPoint = new Point(maxX, maxY);
            
        }       
    }
    
    public Point getMaxPoint() {
        return maxPoint;
    }
    
  
    public Point getMinPoint() {
        return minPoint;
    }
        
    public static double width() {
        double a = (maxPoint.getX() - minPoint.getX());
            return a;
        }
    
      
    public static double height() {
        double b = (maxPoint.getY() - minPoint.getY());
            return b;
    }
    
}


Java:
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

class Application {

    public static void main(String[] args) {
    
            
        Point P1 = new Point(10,7);
        Point P2 = new Point(3,12);
        Point P3 = new Point(11,5);
        Point P4 = new Point(24,16);
        Point P5 = new Point(5,5);
        Point P6 = new Point(7,9);
        Point P7 = new Point(17,8);
        Point P8 = new Point(4,20);
        Point P9 = new Point(18,3);
        Point P10 = new Point(17,17);
        
        List<Point> list1 = new ArrayList<Point>();
        list1.add(P1);
        list1.add(P2);
        list1.add(P3);
        list1.add(P4);
        list1.add(P5);
        list1.add(P6);
        list1.add(P7);
        list1.add(P8);
        list1.add(P9);
        list1.add(P10);
            
            
        new BoundingBox(list1);
        double b = BoundingBox.height();
        double a = BoundingBox.width();
        Point maxPoint = List<Point>.getMaxPoint();
        Point minPoint = List<Point>.getMinPoint();
        
                
        System.out.println("Die Höhe der BoundingBox ist:" + b);
        System.out.println("Die Breite der BoundingBox ist:" + a);
        System.out.println("Der Maximum-Punkt ist bei" + maxPoint); 
        System.out.println("Der Minimum-Punkt ist bei" + minPoint);   
    }

}
 
Das kommt davon wenn man statische Methoden verwendet und nicht weiß man da tut.

Zeile 34 ist das Problem, wie mein Vorposter schon schreibt.
 
BoundingBox ist deine Klasse, du willst aber eine Instanz davon.
 
Du solltest dir noch mal die Grundlagen von static umd Objekten durchlesen.
Du scheinst offensichtlich das Konzept noch nicht verstanden zu haben.
In deiner BoundingBox Klasse sollte nichts static sein, also keine Variable und keine Methode.
Danach erzeugst du dir ein Objekt der BoundingBox Klasse und führst alle Operationen auf das Objekt aus.
Code:
BoundingBox box = new BoundingBox(list1)
 
Zurück
Oben