日期:2014-05-20  浏览次数:20650 次

类中还有类?
题目如下:
实现一个类,描述二维平面的直线Line。
描述属性:私有属性
直线所通过的点:Point   p;
直线的斜率:double   m
实现方法:
直线的构建;
返回直线的两个属性;
返回直线在Y轴上的截距:yIntercept   ;
判断两条直线是否相等;
显示直线的内容:y   =   mx   +   b;
isParallelTo(Line   line2),判断本直线与直线line2是否平行;
isPeroendicularTo(Line   line2),判断本直线与直线line2是否垂直;
translate(double   dx,   double   dy),将直线向右移动dx单位,向上移动dy单位;
rarate(double   ta),将直线沿逆时针方向旋转ta度;
旋转直线的斜率关系:
tan(a)   +tan(ta)  
tan(a   +   ta)   =   ---------------------
1   -   tan(a)*tan(ta)
contains(Point   p),判断点p是否在直线上;
这中间有个POINT   ,难道类中还要有类?
哪位大虾来帮忙写一下啊?

------解决方案--------------------
类中当然可以有类 译本设定为静态私有类 private static class
这种类对外是不可用的(不论是不是private)对外没有外部连接 只限在声明及定义它的类内部使用 比较像像C++中的友元类(比如链表和链表的节点类耦合关系密切,就可以将节点类的所有成员私有化,然后再声明链表为它的友元,这样就不会出现用户在链表外再使用节点类,方便管理)

我是这么理解 对java还不是很熟悉 高手请指点
------解决方案--------------------
java.awt.Point
------解决方案--------------------
如果inner class 不是private的话 外部是可以使用的
但是必须通过inner class的外围类对象才能生成


下面这个结构 生成B对象的话 先必须有A对象 才能生成B
A.B b = (new A()).new B();
public class A
{
public class B
{}
}

如果inner class 是static的话 就没有这个限制 static inner class 跟普通类比 只是为了隐藏

下面这个结构 生成B对象的话 先必须有A对象 才能生成B
A.B b = new A.B();
public class A
{
public static class B
{}
}