public class Test{
int [] x=new int[3];
public Test(){
x[1]=31;
x[2]=42;
}
{
String s="welcom!";
System.out.println(s);
x[1]=3;
x[2]=3;
x[0]=5;}
void print(){
for(int d:x)
System.out.println(d);
}
public static void main(String args [] ){
Test test= new Test();
test.print();
}
}
在类中两个大括号是怎么运行的
为什么结果是感觉和构造函数一样

解决方案 »

  1.   

    >>>为什么结果是感觉和构造函数一样
    对,它的作用类似域构造函数,但是在所有的构造函数之前执行。在类的属性变量初始化之后执行
      

  2.   

    for(int d:x)是啥语法啊? 同问
      

  3.   

    for(int d:x)是jdk1.5的新特性
    5.2.3 foreach与数组 
    J2SE 5.0新增了foreach的语法,又称强化的for循环(Enhanced for Loop),其应用的对象之一是在数组的依次存取上。foreach语法如下: 
    for(type element : array) { 
      System.out.println(element)... 

    直接以实例的方式来说明会更容易了解这个语法如何使用,在J2SE 5.0之前可以使用以下的方式来依次存取数组中的元素: 
    int[] arr = {1, 2, 3, 4, 5}; 
    for(int i = 0; i < arr.length; i++) 
        System.out.println(arr[i]); 
    在J2SE 5.0中可以使用新的foreach语法,这么写: 
    int[] arr = {1, 2, 3, 4, 5}; 
    for(int element : arr) 
        System.out.println(element); 
    每一次从arr中取出的元素,会自动设定给element,您不用自行判断是否超出了数组的长度,注意element的类型必须与数组元素的元素类型相同。 
    如果是对象,作法也类似。例如若存取字符串数组,可以编写如下: 
    String[] names = {"caterpillar", "momor", "bush"}; 
    for(String name : names) 
         System.out.println(name); 
    那么二维数组呢?基本上要是了解数组本身就是一个对象,自然就会知道如何存取。举个例子: 
    int[][] arr = {{1, 2, 3}, 
                       {4, 5, 6}, 
                      {7, 8, 9}}; 
    for(int[] row : arr) { 
        for(int element : row) { 
            System.out.println(element); 
        } 

    style="font-family:宋体">三维以上的数组使用foreach的方式来存取也可以依此类推。 --摘自《Java JDK5.0 学习笔记》