我正在开发应用程序..
class Wheel {
private int size;
Wheel(int s) {
size = s;
}
void spin() {
System.out.print(size + " inch wheel spinning, ");
}
}
public class Bicycle {
public static void main(String[] args) {
Wheel[] wa = { new Wheel(15), new Wheel(17) };
for (Wheel w : wa)
w.spin();
}
}
但请告知我们如何用更简单的术语表达Wheel[] wa = { new Wheel(15), new Wheel(17) };
。
答案 0 :(得分:6)
Wheel[] wa = { new Wheel(15), new Wheel(17) };
就像你将要获得的一样简单。你到底想要什么 - 你有一个问题需要它更简单吗?
这并不简单,但是如果你想制作一些允许你添加更多Wheel
的内容,你需要单独分解它,例如......
Wheel[] wa = new Wheel[2];
wa[0] = new Wheel(15);
wa[1] = new Wheel(17);
或可能......
int[] sizes = {15,17};
Wheel[] wa = new Wheel[sizes.length];
for (int i=0;i<sizes.length;i++){
wa[i] = new Wheel(sizes[i]);
}
这些并不简单,但如果要创建很多Wheel
,它们会更好。
如果你只有2 Wheel
,那么你的陈述非常简单!
答案 1 :(得分:0)
如果你想要一个更短的表达式来创建一个轮子数组,你所拥有的是一个简单的,因为它可以在没有其他方法的情况下获得。
你可以创建一个像这样的工厂方法:
class Wheel {
public static Wheel[] newWheels( int[] sizes ){
Wheel[] result = new Wheel[sizes.length];
for( int i=0; i < sizes.length; i++ )
result[i] = new Wheel( sizes[i] );
return result;
}
// ... other stuff ...
}
这将使您的车轮创建声明:
Wheel[] wa = Wheel.newWheels( new int[]{ 15, 17 } );
当你只有两个预定尺寸的轮子时,这并不简单,但如果你有更多的轮子,或者尺寸没有预先确定,这可能更具可读性。
答案 2 :(得分:0)
Wheel[] wa = { new Wheel(15), new Wheel(17) };
看起来你正在保持不同数量的车轮收藏。
因此,对于每个集合,您可以创建java.util.Set<E>
(如果集合中不包含重复的轮子)或使用java.util.List<E>
(重复允许)
您可以放入array
或地图(java.util.Map<K,V>
)。地图将是更好的选项,您可以对特定Set or List
进行更多控制。
List<Wheel> wh1=new ArrayList<Wheel>(15);
List<Wheel> wh2=new ArrayList<Wheel>(17);
Map<String,List<Wheel>> wa=new HashMap<String,List<Wheel>>();
wa.put("1stList", wh1);
wa.put("2ndList", wh2);