博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬
在自考本科的学习过程中,需要完成实践课程的考核,以下是我完成的Java语言程序设计实践题。我遇到的题目很简单,不过也还是分享出来,也许有同学正需要。
题目
设计点类point:至少包含两个数据成员x,y,分别是点的横坐标和纵坐标。设计矩形类rect:至少包含两个point类的数据成员,代表矩形的对顶点。
要求:
- 编写构造函数,根据用户输入的数据对矩形进行初始化。
- 设计方法成员,输出矩形的周长。
- 设计方法成员,输出矩形的面积。
- 进行适当的错误控制。
- 编与测试程序,体现程序的功能。
答案
1 思路
完成这个题目只需要创建三个java文件,即点类Point.java,矩形类Rect.java,测试类。为了简化文件结构,我就将三个文件放在同一个包下,测试则是用普通类的main方法方法实现。
在本次实践中,为了确保用户输入的顶点能有效地构成一个矩形,而设计了判断和异常处理,以此实现有效的错误控制。
2 代码
Point类
package cn.wja;
public class Point {
private double x;
private double y;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "Point{" + "x=" + x + ", y=" + y + '}';
}
}
Rect类
package cn.wja;
public class Rect {
private Point a;
private Point b;
public Point getA() {
return a;
}
public void setA(Point a) {
this.a = a;
}
public Point getB() {
return b;
}
public void setB(Point b) {
this.b = b;
}
public Rect(Point a, Point b) {
this.a = a;
this.b = b;
}
@Override
public String toString() {
return "Rect{" + "a=" + a + ", b=" + b + '}';
}
private void check() {
if ((a.getX() == b.getX()) || (a.getY() == b.getY())) {
throw new ArithmeticException("不合法的顶点坐标。");
}
}
public double getPerimeter() {
check();
return (Math.abs(a.getX() - b.getX()) + Math.abs(a.getY() - b.getY())) * 2;
}
public double getArea() {
check();
return Math.abs((a.getX() - b.getX()) * (a.getY() - b.getY()));
}
}
测试类
package cn.wja;
public class MainTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个顶点的横坐标:");
double ax = Double.parseDouble(scanner.nextLine());
System.out.println("请输入第一个顶点的纵坐标:");
double ay = Double.parseDouble(scanner.nextLine());
System.out.println("请输入第二个顶点的横坐标:");
double bx = Double.parseDouble(scanner.nextLine());
System.out.println("请输入第而个顶点的纵坐标:");
double by = Double.parseDouble(scanner.nextLine());
Point a = new Point(ax, ay);
Point b = new Point(bx, by);
Rect rect = new Rect(a, b);
System.out.println("当前测试的矩形为:" + rect);
double perimeter = rect.getPerimeter();
System.out.println("矩形的周长是:" + perimeter);
double area = rect.getArea();
System.out.println("矩形的面积是:" + area);
}
}
3 测试用例
测试1:正常输入(1)
测试2:正常输入(2)
测试3:异常演示
4 实践心得
通过本次实践,我对java编程有了更深入的认识。在以下几方面得到了实践和锻炼:
1.实践了构造函数的编写,构造函数用来给类的成员声明初始化,是一种特殊的方法,它的方法名与类名相同,并且没有返回值,也不需要使用void关键字修饰,构造函数分为无参构造器(默认构造函数)和有参构造器(自定义构造函数),本文写的是有参构造器。
2.实践了面向对象的编程思想,对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
3.实践了异常的创建与抛出,Java中的异常(Exception)是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流,能够及时有效地处理程序中的运行错误。本次实践中在检查用户输入的坐标是否能构成一个矩形时,设计了判断和异常抛出,是一种有效的错误控制。
相关下载
你也可以直接下载全套的java项目和实验报告:https://download.csdn.net/download/monarch91/86618832
如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。