class Demo1
{
  public int a; 
}class Demo2
{
 public jisuan(Demo1 d)   //参数为Demo1的对象d
{
  int x=d.i;             //(1)
  int y=i;               //(2)
}
}在(1)(2) 两个语句中那个是错误的啊??

解决方案 »

  1.   

    我怎么觉得都是错的,你i哪来的,应该是a吧,那应该是(2)是错的,因为a是在类Demo1里的,Demo2要用的话必须通过Demo1的对象,就像(1)那样
      

  2.   

    我觉得(1)(2)句都错了吧 Demon1里没有i这个变量,所以int x = d.i肯定是错的。
    Demon2里没有i这个局部变量,所以int y=i肯定是错的
      

  3.   

    1.Demo1中的成员变量怎么是public,如果这样的话,在demo2里用类对象引用就不伦不类了
    2.如上,demo1中没有i,demo2 没有too
    3.public jisuan(Demo1 d)这是什么非构造非函数
    4.x,y这两个局部变量有什么意义
    5.LZ你到底想干什么
      

  4.   

    class Demo1 

       public int i; 
    } class Demo2 extends Demo1

    public jisuan(Demo1 d)   //参数为Demo1的对象d 

       int x=d.i;             //(1) 
       int y=i;               //(2) 

    } 这个 刚才的掉了些东西
    不好意思啊
      

  5.   

    都没错,你函数jisuan没有返回值class Demo1 

      public int i; 
    } class Demo2 extends Demo1 

    public void jisuan(Demo1 d)  //参数为Demo1的对象d 

      int x=d.i;            //(1) 
      int y=i;              //(2) 
      System.out.println(x+" "+y);

    public static void main(String[]arg){
        Demo1 d = new Demo1();
        d.i = 9;
        Demo2 d2 = new Demo2();
        d2.i= 10;
        d2.jisuan(d);
    }
    } init:
    deps-jar:
    compile-single:
    run-single:
    9 10
    生成成功(总时间:0 秒)
      

  6.   

    既然已经定义了extends,那么I在Demo2这里就可以直接定义了,所以我觉得错在int x=d.i;
      

  7.   

    应该是int x=d.i; 错了。
      

  8.   

    我怎么觉得都是错的,你i哪来的,应该是a吧,那应该是(2)是错的,因为a是在类Demo1里的,Demo2要用的话必须通过Demo1的对象,就像(1)那样
      

  9.   

    是2错了。你定义int y = i;但在上一句定义i的时候这个变量还没有初始化。
      

  10.   

    都是正确的,i是public的,可以通过对象直接访问;Demo2继承自Demo1,同样有i属性,可以在jisuan方法内直接访问
      

  11.   

    void 没有返回值,没有i ,同样也没有意义
      

  12.   

    i 都不知道从哪里出来,而且你的函数jisuan,没有返回值,
      

  13.   

    public jisuan(Demo1 d)//没有返回类型啊  lz
    我试过了  加上void  就编译通过了
      

  14.   

    楼主不会是在用记事本写代码吧,这种错在ide下面很明显就能看到的。
      

  15.   

     LZ 是要表达什么意思?方法没有返回值类型啊? 看看下面类型,这样执行没错? LZ是想?????
     class C{
    public int i;
    }public class D extends C{ public void t(C c){
    int x = c.i;
    int y = i;
    System.out.println(x);
    System.out.println(y);
    }

    public static void main(String[] args) {
    new D().t(new C());
    }

    }
      

  16.   

    要是 你在Demo2中用它构造方法  应该是public Demo2(){}
    如果  计算只是个无返回值的函数  那么也应该加上void涩
    鉴于前面他们说的 i没被定义,这个i其实是在父类中定义的public,所以i是可以用的,如果单纯要代码执行
    加个void在jisuan()前面就行了