我从代码中得到一个错误,说java.lang.NullPointerException:null 每当我运行它。null异常java
下面是代码:
public class APRectangle
{
private APPoint myTopLeft;
private APPoint myTopRight;
private APPoint myBottomLeft;
private APPoint myBottomRight;
private double myWidth;
private double myHeight;
public APRectangle(APPoint topLeft, double width, double height)
{
myTopLeft = topLeft;
myWidth = width;
myHeight = height;
}
public APPoint getTopLeft()
{
return myTopLeft;
}
public void setTopLeft(APPoint TL)
{
myTopLeft = TL;
}
public double getWidth()
{
return myWidth;
}
public void setWidth(double W)
{
myWidth = W;
}
public double getHeight()
{
return myHeight;
}
public void setHeight(double H)
{
myHeight = H;
}
public APPoint getTopRight()
{
return new APPoint(myTopLeft.getX() + myWidth, myTopLeft.getY());
}
public APPoint getBottomLeft()
{
return new APPoint(myTopLeft.getX(), myTopLeft.getY() - myHeight);
}
public APPoint getBottomRight()
{
return new APPoint(myTopRight.getX(), myTopRight.getY() - myHeight);
}
}
的最后一个方法是给我的错误之一。
这里是我的主类:
public class MainClass
{
public MainClass()
{
}
public static String printAPPoint(APPoint p)
{
return "(" + p.getX() + "," + p.getY() + ")";
}
public static String printAPRectangle(APRectangle R)
{
return "[APRectangle " + printAPPoint(R.getTopLeft()) +
" " + R.getWidth() + "," + R.getHeight() + "]" ;
}
public static String printTopLeft(APRectangle R)
{
return "(Top Left is " + printAPPoint(R.getTopLeft()) + ")" ;
}
public static String printTopRight(APRectangle R)
{
return "(Top Right is " + printAPPoint(R.getTopRight()) + ")" ;
}
public static String printBottomLeft(APRectangle R)
{
return "(Bottom Left is " + printAPPoint(R.getBottomLeft()) + ")";
}
public static String printBottomRight(APRectangle R)
{
return "(Bottom Right is " + printAPPoint(R.getBottomRight()) + ")";
}
public static void main(String[] args)
{
APPoint p = new APPoint(1.0, 5.0);
APRectangle R = new APRectangle(p, 5.0, 3.0);
System.out.println(printAPRectangle(R));
System.out.println(printTopLeft(R));
System.out.println(printTopRight(R));
System.out.println(printBottomLeft(R));
System.out.println(printBottomRight(R));
System.out.println("Done!");
}
}
最后一个工作之前,这三种方法非常好,但我不知道为什么最后一个不工作。有人能帮助我吗?
感谢,罗汉
你从哪里得到例外? – 2012-07-23 03:13:16
当我编译完所有东西后运行主类时,我发现异常说 java.lang.NullPointerException \t at APRectangle。getBottomRight(APRectangle.java:59) \t在MainClass.printBottomRight(MainClass.java:35) \t在MainClass.main(MainClass.java:46) 我真的不知道这意味着什么 – Panthy 2012-07-23 03:16:31