class a
{
    int a=3;
    int x;
public int print(int d)
{
    x=4;
    d= a + x;
    System.out.println(d);
    return (d);
    }
}class  b
{    
    public static void main(String[] args) 
    {
        a aa = new a();
        aa.print(1);
        System.out.println("Hello World!");
    }}
问题是在aa.print(1);这里,我如果写成aa.print();就会有错误提示,但是它的结果已经是定的么,是7,写个2也是7,写个3 还是7,所以我就想问这个口号里写个整数的意义,或者可以写其他的什么的东东
还有个问题就是return (d);我的理解就是 当Jvm执行到return (d);时候它就会把d值返回到main函数中,还有就是我把return (d);换成了return (x);结果也没报错,我想问一下 这里return到底是怎么用的,return 返回了什么值,这个值是返回到哪里去的 谢谢各位了 希望高手们能给我解惑,不胜感激

解决方案 »

  1.   

    写print()报错是因为这不是你写的函数,你掉了一个类里没有的函数,当然报错了, d= a + x; 这个把你传过去的数给修改了,(而你又返回了d)所以你不论传多少不同的数都是一个结果就是a+x的值
      

  2.   

    楼上正解,至于return,你并没有使用return回来的值。
    你可以这么写看看
    int r = aa.print(1);
    System.out.println(r);
    这个r就是返回值
      

  3.   

    你的print只是计算了a和x的和,并且赋给d而已,然后你就没操作了。
    你写成print();是因为你这个函数需要传递一个Int值进去,而你没填,所以报错。在我个人看来你那个print传递的d一点意义都没有,因为你并没有使用他的初始值。return是谁调用就返回给谁。给你写个代码说一下class A {
      private int a = 3;
      private int x;
      public int test(int d){
        //现在传入的d初始值在这个方法里没有用到,所以传递多少都是一样的。
        x = 4;//给x初始值
        d = x + a;//d=x+a
        System.out.println(d);//打印d的值永远都是7
        return d;//谁调用了test(int d)方法这个7就会返回给谁。
      }  public int test1(int d){
        //这个方法里用到了d
        x = 4;//给x初始值
        d += x + a;
        System.out.println(d);//打印d的值是a+x+d,如果传入的d是1,那么这里的d就是8,2就是9...
        return d;//谁调用了test(int d)方法这个结果d就会给谁
      }  public void main(String args){
        A aa = new A();
        int abc;
        abc = aa.test(1);
        System.out.println(abc); //结果是7
        abc = aa.test1(1);
        System.out.println(abc); //结果是8
        abc = aa.test1(10);
        System.out.println(abc); //结果是17
      }
    }
      

  4.   

    return 返回的是什么类型要看你的方法声明返回的是什么类型!
    你的方法是 public int print(int d) “int”表示你return的时候要返回一个int类型的值
    可以是常量表达式或变量,
    所以你return x 是合法的
    aa.print(1) aa.print(2) aa.print(3) aa.print(4) 为什么都返回7?
    因为传进去的参数没有参与运算,方法里面的“d”变量被“a+x”赋值为7
    a是全局变量 3 x是局部变量4 你传进来的参数没有被使用
    d所以等于7 然后return回来的是7