问个JAVA程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:35:08
class mydate{
public int day,month,year;
public mydate(int d,int m,int y) {
day = d;
month = m;
year = y;
}
}
public class test2 {
public static void main(String agrs[]) {
mydate m =null;
m = new mydate(12,10,2008);
if ((m.day >0)&(m!=null)&(m.month<31)) {
System.out.println("对了");
}
}
}

上面是程序的例子。我想明白的关键是下面的main方法中的一些东西,首先mydate m =null这一句的意思应该就是类mydate中的mydate方法生成一个对象m那个别=null这一个是什么意思我就不懂了。在下面的IF语句中还有用到m!=null这是什么意思。这时的m应该是相当于上面的对象mydate 。!=好象是不等于的意思。。请问null在这程序里是什么意思。
补充一下,在mydate m=null后,m就是方法mydate了。那象m.day又是个什么意思,是不是m.year也行。是不是代表着上面的三个属性,但是只是生成了方法mydate啊。上面三个属性没在mydate里。

Mydate m = null
申明一个Mydate对象,但是这个对象只有声明,没有具体引用,所以它的声明指向null对象

m = new mydate(12,10,2008);
具体实例化化了m对象,使之在内存中分配了一个Mydate空间保存相关数据,并将m的指向改到新分配的Mydate数据对象上

m!=null判断m对象是不是空(有没有具体内存分配的,一般实例化后就不会为空了)

mydate 中有day month year 方法 而m 是mydate中的一个对象 m就有了其中的方法,可以进行调用了.

null是空的意思