黑马程序员技术交流社区

标题: 问题出在哪里? [打印本页]

作者: 常文艺    时间: 2011-11-21 13:32
标题: 问题出在哪里?
本帖最后由 常文艺 于 2011-11-21 13:50 编辑

public class FunctionOverload
{
public static void main(String agrs[])
{
int sum=he(4,5);
System.out.println(a+"*"+x+"="+a*x);
}
第6行报错

public static int he(int a,int x)
{
return a*x;
}
}
作者: 杨玉揆    时间: 2011-11-21 13:39
System.out.println(a+"*"+x+"="+a*x);中的x和a 和下面的是不一样的,你必须的先定义如int a=4,int x =5;a 和x只是一个局部变量而已 只能在he这个函数里面起作用 出了这个函数没有了
作者: 侯伟浩    时间: 2011-11-21 13:42
a和x在main方法中没有定义
作者: 袁世宇    时间: 2011-11-21 13:45
本帖最后由 袁世宇 于 2011-11-21 13:50 编辑

a和x是当he的参数传递的 ,你可以改成这样System.out.println("a*x="+a*x); 当作一个字符串,还有 为什么你都求sum的值了
还有写a*x呢 直接System.out.println("a*x="+sum);就可以啦
作者: 冯敏    时间: 2011-11-21 14:27
a和x必须在类中定义,int he()方法中的a、x在he()方法中属于局部变量,出了该方法就没作用啦,可以这样改:int a =4;  int x = 5;  int sum=he(a,x);  System.out.println(a+"*"+x+"="+sum);
作者: 肖岑锋    时间: 2011-11-21 14:31
a不是成员变量而是局部变量,只能在本方法内用。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2