一、定义一个圆形类,要求 1、有一个私有成员变量r; 2、定义两个构造方法(带两个参数不带参数) 3、定义一组设置存取r的方法 4、定义两个方法(求面积、求周长); 5、重写toString方法(输出:“圆(r)"); 6、重写equal方法(当两个圆r相等时为真); 7、自定义异常类,创建圆对象中当圆半径等于零时抛出自定义异常; 8、定义一个测试类完成如下要求!(1)利用随机方法创建若干圆对象保存到数据文件。 (2)读出文件中所有圆对象并计算输出圆面积最小值。 (3)对可能出现的异常进行处理。
要求有点多呀,数据文件的格式有什么要求吗?
https://blog.csdn.net/weixin_39850150/article/details/114620411
package homework;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/*
* 一、定义一个圆形类,要求
* 1、有一个私有成员变量r;
* 2、定义两个构造方法(带两个参数不带参数)
* 3、定义一组设置存取r的方法
* 4、定义两个方法(求面积、求周长);
* 5、重写toString方法(输出:“圆(r)");
* 6、重写equal方法(当两个圆r相等时为真);
* 7、自定义异常类,创建圆对象中当圆半径等于零时抛出自定义异常;
* 8、定义一个测试类完成如下要求!
* (1)利用随机方法创建若干圆对象保存到数据文件。
* (2)读出文件中所有圆对象并计算输出圆面积最小值。
* (3)对可能出现的异常进行处理。
* */
public class TestCircle {
public static void main(String[] args) throws Exception {
Random rnd = new Random();
List<Circle> list = new ArrayList<Circle>();
for(int i=0;i<5;i++) {
Circle c = new Circle();
c.setR(rnd.nextDouble()*100);
System.out.println(c);
c.area();
list.add(c);
}
ObjectOutputStream ois = new ObjectOutputStream(new FileOutputStream(new File("data.dat"),true));
ois.writeObject(list);
ois.close();
}
}
class Circle implements Serializable{
private double r;
public Circle() {
}
public Circle(double r) throws MyException {
this.r = r;
if(r ==0) {
throw new MyException("圆半径不能等于零");
}
}
public double getR() {
return r;
}
public void setR(double r) throws MyException {
if(r ==0) {
throw new MyException("圆半径不能等于零");
}
this.r = r;
}
public void area() {
System.out.println("圆的面积:"+(3.14*r*r));
}
@Override
public String toString() {
return "圆(r)="+this.r;
}
@Override
public boolean equals(Object obj) {
Circle c = (Circle)obj;
if(c.r == this.r) {
return true;
}
return false;
}
}
class MyException extends Exception{
String message;
public MyException() {
}
public MyException(String message) {
super(message);
this.message = message;
}
@Override
public String getMessage() {
return "出错了: " + message;
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632