每当我运行它时,我都会收到一条错误消息,提示 java.lang.NullPointerException: null from a code。
这是代码:
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!" );
}
}
最后一种方法之前的三种方法效果很好,但我不知道为什么最后一种方法不起作用。有人能帮助我吗?
谢谢,罗汉