版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014754841/article/details/84575135
最近在自学JAVA,学到类与对象章节,分享一个自我感觉还可以的例题答案,自己编写的,发出来希望大神们知道一二。
源程序如下:
package Line_Test;
public class Line_Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 线段测试
Line line = new Line(new Line.Point(2,3),new Line.Point(4,5));
line.Print_Point();
line.Print();
System.out.println();
Line line1 = new Line(new Line.Point(2,3),new Line.Point(2,5));
line1.Print_Point();
line1.Print();
System.out.println();
Line line2 = new Line(new Line.Point(2,3),new Line.Point(4,3));
line2.Print_Point();
line2.Print();
System.out.println();
}
}
//线段类
class Line{
public static class Point{
private float x,y;
public Point()
{
x = 2;
y = 3;
}
public Point(float x,float y)
{
this.x = x;
this.y = y;
}
}
private Point p0;
private Point p1;
// 重载构成函数
public Line()
{
this.p0 = new Point(2,3);
this.p1 = new Point(4,5);
}
// 重载构成函数
public Line(Point p0,Point p1)
{
this.p0 = new Point(p0.x,p0.y);
this.p1 = new Point(p1.x,p1.y);
}
// 线段长度
public float Line_Length()
{
if(this.isLineH())
{
return Math.abs(p1.y-p0.y);
}
else if(this.isLineV())
{
return Math.abs(p1.x-p0.x);
}
else
{
return (float)Math.sqrt((Math.pow((p1.x-p0.x),(p1.x-p0.x))+Math.pow((p1.y-p0.y),(p1.y-p0.y))));
}
}
// 线段水平 true:Yes false:No
public boolean isLineH()
{
return (p0.x==p1.x);
}
// 线段垂直 true:Yes false:No
public boolean isLineV()
{
return (p0.y==p1.y);
}
// 线段斜率
public float LineSlope()
{
return (p1.y-p0.y)/(p1.x-p0.x);
}
// 求线段中点
public Point LineMid()
{
Point p = new Point();
p.x = (p1.x+p0.x)/2.0f;
p.y = (p1.y+p0.y)/2.0f;
return p;
}
// 打印当前点
public void Print_Point()
{
System.out.print("Point0:("+p0.x+","+p0.y+")"+" ");
System.out.print("Point1:("+p1.x+","+p1.y+")"+"\r\n");
}
// 打印计算结果
public void Print()
{
System.out.println("Line length:"+this.Line_Length());
System.out.println("Line horizontal?"+this.isLineH());
System.out.println("Line vertical?"+this.isLineV());
System.out.println("Line slope:"+this.LineSlope());
System.out.println("Line mid:("+this.LineMid().x+","+this.LineMid().y+")");
}
}
运行结果如下:
感觉JAVA用起来是比较方便,第一次写JAVA程序,还望大神指导一下不足之处。