黑马程序员技术交流社区
标题:
【技术问题】变量初始化问题
[打印本页]
作者:
蓝墨清幽
时间:
2015-4-17 18:08
标题:
【技术问题】变量初始化问题
本帖最后由 蓝墨清幽 于 2015-4-17 18:09 编辑
public class ChengyuanAndJubu{
static int a1;
int a3;
static Person p1;
static Person p3=new Person();
Person p5;
public static void main(String[] args){
int a2;
Person p2;
Person p4=new Person();
ChengyuanAndJubu test = new ChengyuanAndJubu();
System.out.println("a1="+a1);//为什么a1通过编译,且初始值为0
//System.out.println("a2="+a2);//编译不能通过,为什么
System.out.println("a3="+test.a3);//为什么a1通过编译,且初始值为0
System.out.println("p1="+p1);//为什么p1通过编译,且初始值为null
//System.out.println("p2="+p2);//编译不能通过,为什么
System.out.println("p3.age="+p3.age);//为什么p1通过编译,且初始值为null
System.out.println("p4.age="+p4.age);//为什么p1通过编译,且初始值为null
System.out.println("p5="+test.p5);//p5为null,为什么
//System.out.println("p5.age="+test.p5.age);//p5为null
}
}
class Person{
int age;
String name;
}
复制代码
请帮忙解决注释中的问题
作者:
海带
时间:
2015-4-17 18:18
a1 是基本数据类型,jvm会给他默认初始化值这个值0.
作者:
蓝墨清幽
时间:
2015-4-17 18:25
海带 发表于 2015-4-17 18:18
a1 是基本数据类型,jvm会给他默认初始化值这个值0.
为什么main函数里边的不可以
作者:
海带
时间:
2015-4-17 18:28
a1 是成员变量,类型是基本数据类型,jvm会给他默认初始化值,这个值是0
a2是局部变量,虽然也是基本书籍类型,但局部变量一定要初始化后才能使用。
p1是成员变量,是个类是引用型类型,jvm会给他默认初始化值,这个值是NUll
看懂了就知道下面的问题一样解决了
作者:
海带
时间:
2015-4-19 23:58
main函数是也个方法,在main函数声明的变量也是局部变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2