【发布时间】:2014-10-09 16:25:54
【问题描述】:
来自文件的信息:形状、半径/高度/宽度、颜色、填充
CIRCLE, 1, blue, true
RECTANGLE, 1, 2, blue, true
RECTANGLE, 10, 2, red, true
CIRCLE, 2, green
RECTANGLE
CIRCLE
程序:一旦到达缺少参数 true/false 的第 4 行,程序不会为其分配其他类的默认值。当文件中没有指定参数时,如何将默认参数分配给新创建的对象?
默认值为:颜色 = 白色,填充 = 假,半径 = 1,高度 = 1,宽度 = 1。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class Driver {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File(
"C:/Users/Charles/Desktop/GeometricObjectsData.txt"));
ArrayList<GeometricObject> list = new ArrayList<GeometricObject>();
while (input.hasNextLine()) {
String line = input.nextLine();
String[] tokens = line.split(", ");
if (tokens[0].equals("CIRCLE")) {
Circle c = new Circle();
float radius = Float.parseFloat(tokens[1]);
c.setRadius(radius);
String color = String.valueOf(tokens[2]);
c.setColor(color);
Boolean filled = Boolean.valueOf(tokens[3]);
c.setFilled(filled);
c.getArea();
list.add(c);
System.out.println(c.toString());
} else if (tokens[0].equals("RECTANGLE")) {
Rectangle r = new Rectangle();
float height = Integer.parseInt(tokens[1]);
r.setHeight(height);
float width = Integer.parseInt(tokens[2]);
r.setWidth(width);
String color = String.valueOf(tokens[3]);
r.setColor(color);
Boolean filled = Boolean.valueOf(tokens[4]);
r.setFilled(filled);
r.getArea();
list.add(r);
System.out.println(r.toString());
}
}
}
}
【问题讨论】:
标签: java class object parameters