class Quadrilateral
{
private Point TL;
private Point TR;
private Point BR;
private Point BL;
public Quadrilateral(Point p1, Point p2, Point p3, Point p4)
{
TL = p1;
TR = p2;
BR = p3;
BL = p4;
}
}
class Point
{
public double x;
public double y;
Point(double a, double b)
{
x = a;
y = b;
}
}
class trapezoid extends Quadrilateral
{
public trapezoid(Point p1, Point p2, Point p3, Point p4)
{
super(p1,p2,p3,p4);
}
public double areaofTrapezoid()
{
return ((((TR.x-TL.x)+(BR.x-BL.x))/2)*(TL.y-BL.y));
}
}
我试图访问TR,TL,BR和BL中的x和y值,但我不想在类四边形中创建像getxofTL,getyofTL,getxofBR等函数。如何在不更改变量的访问说明符的情况下访问子类中的那些值。
答案 0 :(得分:1)
子类不能直接访问私有成员(而不是受保护的成员)。因此,除非你想使用反射(你不应该使用反射!),你应该使用公共/受保护的访问器。
我想不出有什么理由为什么你不想要这样的吸气剂,除了创造它们的潜在麻烦。请注意,大多数IDE都可以自动为您执行此操作。
答案 1 :(得分:1)
您必须公开这些字段或添加getter方法。制作getter方法通常比将字段公开更受欢迎。
这是一个关于访问说明符的有用页面,包括一个方便的表:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
资料来源:AP计算机科学课