public class Array1
{ int[] a;
public void printt(){
int[] a=new int[]{1,2,3};
for(int x=0;x<a.length;x++)
System.out.println("seconddb create:"+a[x]);
}
public static void main(String[] args)
{
Array1 a2=new Array1();
a2.printt();
System.out.println("OK !!!");
}
}
------------------正确-----的写法-----
public class Array1
{ int[] a;
Array1(){
int[] a=new int[]{1,2,3};
}
public void printt(){
for(int x=0;x<a.length;x++)
System.out.println("seconddb create:"+a[x]);
}
public static void main(String[] args)
{
Array1 a2=new Array1();
a2.printt();
System.out.println("OK !!!");
}
}
--------错误的写法-------------
----------------------------------请问为什么这样写是错误的!
{ int[] a;
public void printt(){
int[] a=new int[]{1,2,3};
for(int x=0;x<a.length;x++)
System.out.println("seconddb create:"+a[x]);
}
public static void main(String[] args)
{
Array1 a2=new Array1();
a2.printt();
System.out.println("OK !!!");
}
}
------------------正确-----的写法-----
public class Array1
{ int[] a;
Array1(){
int[] a=new int[]{1,2,3};
}
public void printt(){
for(int x=0;x<a.length;x++)
System.out.println("seconddb create:"+a[x]);
}
public static void main(String[] args)
{
Array1 a2=new Array1();
a2.printt();
System.out.println("OK !!!");
}
}
--------错误的写法-------------
----------------------------------请问为什么这样写是错误的!
int[] a=new int[]{1,2,3};
}这部分是在构造方法里定义了一个局部变量叫a,这个不是类变量a,所以print方法里的a是空值
是类变量a,
而Array1() {
int[] a = new int[] { 1, 2, 3 };
}里的a是在局部定义的变量a,它的生存周期只在这个方法体里,
两个a并非同一个,所以java.lang.NullPointerException;
{ int[] a;
Array1(){
int[] a=new int[]{1,2,3}; //把这里的int[]去掉
}
public void printt(){
for(int x=0;x <a.length;x++)
System.out.println("seconddb create:"+a[x]);
}
public static void main(String[] args)
{
Array1 a2=new Array1();
a2.printt();
System.out.println("OK !!!");
}
}