您的位置:首页 > 编程语言 > Java开发

Java中的语句错误总结(不定期更新)

2017-02-19 23:11 190 查看
主要是将学习中遇到的Java编译错误进行总结,目的是在以后使用中出现错误时可以快速找到错误原因。

1、错误:找不到符号,如下图所示:



会出现这样的错误,主要是由于变量没有进行定义数据类型导致的,源程序为:

public class TestPassByValue{
public static void main (String[] args){
int num1 = 1;
int num2 = 2;
System.out.println("before num1 = " + num1 + " num2 = " + num2);
num1 = n1;
num2 = n2;
test(num1 , num2);
System.out.println("after num1 = " + num1 + " num2 = " + num2);
}

public static void test (int n1 , int n2){
System.out.println("before n1 = " + n1 + " n2 = " + n2);
temp = n1;
n1 = n2;
n2 = temp;
System.out.println("after n1 = " + n1 + " n2 = " + n2);
}
}


根据编译错误分析,num1 = n1; num2 = n2;两个语句中,n1 和 n2 未进行定义,n1 = num1; n2 = num2;但根据程序总体来看,由于调用了 test 方法,所以直接删除num1 = n1; num2 = n2;两个语句。

在 test 方法中,temp 需要进行数据类型的定义,因此加上 int temp;即可。修改后的程序:

public class TestPassByValue{
public static void main (String[] args){
int num1 = 1;
int num2 = 2;
System.out.println("before num1 = " + num1 + " num2 = " + num2);
test(num1 , num2);
System.out.println("after num1 = " + num1 + " num2 = " + num2);
}

public static void test (int n1 , int n2){
System.out.println("before n1 = " + n1 + " n2 = " + n2);
int temp;
temp = n1;
n1 = n2;
n2 = temp;
System.out.println("after n1 = " + n1 + " n2 = " + n2);
}
}


以上代码就可以正常运行,程序用于了解调用方法后,方法堆栈的数据转换关系。num1,num2,n1,n2都是有独立的堆栈空间的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java