定义对象的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:23:50
例如
知道类Student
那么定义个对象boy
Student boy = new Student();
和 Student boy=null; 一样吗?
boy在两种情况下都可以掉到类的属性和方法,感觉没有区别阿,谁能再说的区别详细点

你在写程序时当然可以调到,但是在执行时就有问题了。
后面一种会在运行时,抛出null pointer 异常。
LZ还是先理解一下运行时和编译时吧

不一样
Student boy = new Student(); 此时你不知道boy指向哪里,在早期是很危险的,可能导致系统崩溃
一般定义对象都要先给其指定一个具体值

不一样 一个在堆里分配了内存 一个没有

不一样,指向不一样,一个指向空,一个指向一个student类的一个实例。
boy在两种情况下都可以掉到类的属性和方法,感觉没有区别阿,谁能再说的区别详细点

那就详细点,比如2个东西,现在你声明他都是箱子类型的,好,他是箱子类型的了,箱子类型有他的属性,颜色拉,大小拉,或者别的什么的,还有方法:怎么打开拉什么的。
那么对于你的第2种声明方式来说,他没有指向具体的实例。
也就是说,你声明了以后,没人知道这个箱子的颜色和大小,也不知道他怎么打开,因为他指向为空,而不是象前者一样指向的是一个具体的实例。

不一样的,一个实例化了,一个仅仅是定义了他的类型,都能调到类里的属性和方法,但后者不能执行,返回的都为空.

不一样