单独这样声明是错误的,无法编译通过,你可以试试 int i; System.out.println(i); 在使用i之前,必须有一个初始化的过程,如 int i = 0; 或是 int i; i = 0; 另外要注意一点的是,对变量的初始化是必须保证执行的,除非在执行过程中出现error 因此,下面的这种写法也不会编译通过: int i; if(false) { i = 0; }
首先在OOP中应该改口不应该再叫函数了,叫方法,呵呵。对于你的问题,在方法中是完全可以定义变量的,但注意如果在方法中要使用你定义好的变量的话,则必须对它进行初始化,否则会异常:variable $VAR might not have been initialized.说明$VAR这个变量没有初始化。这段测试代码你test一下: public class test { public static void main(String[] s) { testa(); }
static void testa() { int i; //int i = 10; //System.out.println(i); } }
用out.print打印一下 不就看出来了么
int i;
System.out.println(i);
在使用i之前,必须有一个初始化的过程,如
int i = 0;
或是
int i;
i = 0;
另外要注意一点的是,对变量的初始化是必须保证执行的,除非在执行过程中出现error
因此,下面的这种写法也不会编译通过:
int i;
if(false) {
i = 0;
}
public class test
{
public static void main(String[] s)
{
testa();
}
static void testa()
{
int i;
//int i = 10;
//System.out.println(i);
}
}
再比如,equals()方法,你自定义的类并且没有继承已经将equals()方法重写的类的话,那你使用时就是比较是不是同一个对象,而重写的如String,你用这个方法就是比较值是否相同,等等
多实践 ,有好处