class SIM
{
//int N[]=new int[8];
public void INITIALILE_SIMPLEX(int a[])
{   int b[]=new int[2];
b[0]=a[0];
System.out.println( b[0]);
}
}
public class FirstApp{
public static void main(String[] args) {
int N[]=new int[]{1,3,4};
int b[]=new int[2];
System.out.println( N[0]);
 SIM s=new SIM();
        s.INITIALILE_SIMPLEX(N);
        System.out.println( b[0]);
}}
这段代码的运行结果为
1
1
0
我想为1
1
1如何实现?????

解决方案 »

  1.   

    int b[]=new int[]{1,1}; 
    或者
    int b[]=new int[2]; 
    b[0]=1;
    反正你给它初始值为1就行了
      

  2.   

    SIM s=new SIM(); 
            s.INITIALILE_SIMPLEX(N); 
            System.out.println( b[0]); 这个b[0]是int b[]=new int[2]的初始值{  int b[]=new int[2]; 
    b[0]=a[0]; 
    System.out.println( b[0]); 而这个b[0] 引用了 int b[]= new int[]{N[0],0}的值; 
    } 怎么说呢,就是两处的b[]是两个引用。
      

  3.   


    class SIM { 
    //int N[]=new int[8]; 
    public void INITIALILE_SIMPLEX(int[] a,int[] b) {  
       //int[] b=new int[2]; 
       b[0]=a[0]; 
       System.out.println( b[0]); 
      } 

    public class FirstApp{ 
    public static void main(String[] args) { 
    int[] N=new int[]{1,3,4}; 
    int[] b=new int[2]; 
    System.out.println( N[0]); 
    SIM s=new SIM(); 
            s.INITIALILE_SIMPLEX(N,b); 
            System.out.println( b[0]); 
    } } 
      

  4.   

    你代码中的2个b[]指向的不是同一个引用SIM类的方法用到的b[]在方法结束后就在内存中消亡了,所以根本不会指向同一个b[]
      

  5.   

    楼主 你说的不太清楚!想参与下你的问题,有点找不到北,呵呵!按你的需求我自然发挥一下吧,代码如下:class SIM 

        static  int b[]=new int[2];
         //int N[]=new int[8]; 
        public void INITIALILE_SIMPLEX(int a[]) 
     {  
        b[0]=a[0]; 
        System.out.println( b[0]); 
      } 

    public class FirstApp extends SIM{ 
    public static void main(String[] args) { 
    int N[]=new int[]{1,3,4}; 
    //int b[]=new int[2]; 
    System.out.println( N[0]); 
    SIM s=new SIM(); 
     s.INITIALILE_SIMPLEX(N); 
     System.out.println( b[0]); 
    }  } 一个菜鸟建议:楼主要是和我一样是菜鸟级别,开始就打个好习惯!      注意代码缩进,注意逻辑性和易读性。呵呵!
      

  6.   

    没有弄懂楼主的意思,为什么要是1,1,1呢?class SIM 

        //int N[]=new int[8]; 
        public void INITIALILE_SIMPLEX(int a[]) 
        {  
            int b[]=new int[2]; 
            b[0]=a[0]; 
            System.out.println( b[0]); 
        } 

    public class FirstApp{ 
        public static void main(String[] args) { 
            int N[]=new int[]{1,3,4}; 
            int b[]=new int[2];    ///初始化一个int数组,但由于未初始化,默认初值为0。
                                   ///后面有没有对b的修改,
            System.out.println( N[0]); 
            SIM s=new SIM(); 
            s.INITIALILE_SIMPLEX(N); 
            System.out.println( b[0]); ///此处打印b[0]必然是0
        } 
    }  
      

  7.   

    3楼  
    你把最后输出改成    System.out.println( b[2])怎么输出是0.我是菜鸟   不懂问问