java传值调用问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 07:16:00
程序功能:程序首先给整型变量x和y 赋一个初值10, 然后使用传值调用方式调用方法ff1 对x和y 做乘方及输出x和y 的乘方值,最后再输出x和y 的乘方值。

本大虾初学java,下面是我想的程序:
public class LX3_5
{
public static void main(String args[])
{
ff1 sn=new ff1(10,10);
System.out.println(sn.x);
System.out.println(sn.y);
System.out.println(sn.x*y);
}
}
class ff1
{
int x;
int y;
ff1(int a,int b)
{x=a;
y=b;
}

}
程序编译失败,出错信息:
LX3_5.java:8: cannot resolv symbol
symbol: variable y
location: class LX3_5
System.out.println(sn.x*y);
请各位高手指教,越详细越好,谢谢。
按照各位的指示,我改动了代码,程序运行正确,谢谢各位。
仔细想想原来是我错误引用y变量了,以为x*y是个整体了。

System.out.println(sn.x*y); 这一句有问题,问题就在于在类LX3_5 中,根本没有变量y,你直接引用y,当然有问题了,改为System.out.println(sn.x*sn.y);即可
这是变量作用域的问题

System.out.println(sn.x*sn.y);

而且好象你的程序没有指定包

public class LX3_5
{
public static void main(String args[])
{
ff1 sn = new ff1(10, 10);
System.out.println(sn.x);
System.out.println(sn.y);
System.out.println(sn.x * sn.y);
}
}

class ff1
{
int x;
int y;

ff1(int a, int b)
{
x = a;
y = b;
}

}

ff1 的属性 x y 也没public范围。。