黑马程序员技术交流社区

标题: 【上海校区】Java的构造函数与析构函数(笔记1) [打印本页]

作者: 不二晨    时间: 2018-11-27 09:02
标题: 【上海校区】Java的构造函数与析构函数(笔记1)
已Mydate为例:

package text1;

public class MyDate {
        int year;
        int month;
        int day;
       
        //1.构造函数
        public MyDate(int y,int m,int d)
        {
                year = y;
                month = m;
                day = d;
        }
       
        //2.默认构造函数
        public MyDate()
        {/*
                year =  2018;
                month = 11;
                day = 11;
        */
                this(2018,11,13);//在构造方法中,this必须是第一行语句
        }
       
        //构造函数重载
               
        //4拷贝构造函数
        public MyDate(MyDate d)
        {
                //year =  d.year;
                //month = d.month;
                //day = d.day;
                this(d.year,d.month,d.day);
        }
       
        //析构函数
        public void finalize()
        {
                System.out.println("空间已释放!");
        }
       
        //String函数,输出类对象
        public String toString()
        {
                return year + "年" + month + "月" + day + "日";
        }

    //判断该类的两个对象是否相等只能用equals()方法;
        //java不支持运算符重载,对于=、!=只能判断两个对象是否引用同一个实例
        public boolean equals(MyDate d)
        {
                return this==d || d!=null && this.year==d.year && this.month==d.month && this.day==d.day;
                //this表调用当前方法的对象;对于this.year,this.month,this.day中this可省略;
                //this==d判断是否指向同一实例
        }
       
        public static void main(String arg[]) {
               
                MyDate d1 = new MyDate(2018,11,10);
                System.out.println(d1.toString());
                //d1.finalize();
               
                MyDate d2 = new MyDate();
                System.out.println(d2.toString());
                //d2.finalize();
               
                MyDate d3 = new MyDate(d2);
                System.out.println(d3.toString());
                //d3.finalize();
               
                //System.gc();//释放所有垃圾

        System.out.println("d1与d2是否为同一天:  " + d1.equals(d2));
                System.out.println("d2与d3是否为同一天 : " + d2.equals(d3));
        }
       
}

---------------------
【转载】
作者:淡茶煮清酒
原文:https://blog.csdn.net/qq_42195682/article/details/84501302



作者: 不二晨    时间: 2018-11-28 15:42
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2