`
txf2004
  • 浏览: 6832120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《java第十周实验报告1-1》---点、线类的继承练习

 
阅读更多
import java.lang.Math;//导入Math类

class  PointLine
{
	public static void main(String[] args) 
	{
		Point ps = new Point(-2,5);
		Point pe = new Point(7,9);

		Line l = new Line(ps,pe);

		ps.PrintP();
		pe.PrintP();
		l.PrintL();//输出直线l的信息
		
	}
}
//定义坐标点类
class Point 
{
	//点的横坐标和纵坐标
	public double x;
	public double y;
 
	public Point(){x = 0; y = 0;}
	public Point(double x,double y) {this.x = x; this.y = y;}

	public void PrintP()
	{
		System.out.println(this.getClass().toString()+"Point:("+x+","+y+")");
	}
}
class Line extends Point //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点
{
	private Point pt1;
	private Point pt2; //直线的两个端点

	public Line(Point pts, Point pte)//构造函数分别用参数初始化对应的端点及由基类属性描述的中点
	{
		super(((pts.x+pte.x)/2), ((pts.y+pte.y)/2));
		pt1 = pts;
		pt2 = pte;
	}


	public double Dx(){return pt2.x-pt1.x;}
	public double Dy(){return pt2.y-pt1.y;}
	public double Length()//计算直线的长度
	{
		double dx = Dx();
		double dy = Dy();
		return (Math.sqrt(dx*dx + dy*dy));
	}
	public void PrintL()//输出直线的两个端点和直线长度
	{
		System.out.println("直线两端点:pt1=("+pt1.x+","+pt1.y+"),pt2=("+pt2.x+","+pt2.y+")");
		System.out.println("直线的中点:Middle=("+x+","+y+")");
		System.out.println("直线长度:Length="+Length());
	}
}
/*
开始子类的初始化出现了点小问题,
没发现,就在CSDN上发帖;
在那等别人回帖,
反正也没事,就又看了一遍。
那是相当的郁闷啊,
就是字母敲错的事。
之前也遇到过这样的情况(还不少)
CSDN虽然给我们提供了很好的学习环境,
我们也不能把锻炼自己解决问题的机会给丢了。
惭愧、、、、、、、、、、、、、、
*/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics