| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:一个构造方法的问题
只看楼主 加入收藏
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:8 
一个构造方法的问题
在下面的代码中第二个构造方法什么意思?Date(Date d)这句
程序代码:
import static java.lang.System.*;
public class Date {
        private int day,month,year;
        Date(int i,int j,int k){
            day=i;month=j;year=k;
        }
        Date(){
            day=28;month=2;year=2000;
        }
        Date(Date d){
            day=d.day;month=d.month;year=d.year;
        }
        public void printdate(){out.println(day+"/"+month+"/"+year);}
        public Date tomorrow(){
            Date d=new Date(this);
            d.day++;
            if(d.day>d.daysInMonth()){
                d.day=1;
                d.month++;
                if(d.month>12){
                    d.month=1;
                    d.year++;
                    }
                }return d;
        }
        public int daysInMonth(){
            switch(month){
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;
            case 4:case 6:case 9:case 11:return 30;
            default:if(year%100!=0&&year%4==0){
                return 29;
            }
            else return 28;
            }
        }
        
        
    public static void main(String[] args) {
        Date d1=new Date();
        out.print("the current date is(dd/mm/yy):");
        d1.printdate();
        out.println();
        out.print("its tomorrow is (dd/mm/yy):");
        d1.tomorrow().printdate();
        out.println();
        
        Date d2=new Date(28,2,1964);
        out.print("the current date is (dd/mm/yy):");
        d2.printdate();
        out.println();
        out.print("its tomorrow is (dd/mm/yy):");
        d2.tomorrow().printdate();
        out.println();


    }
}
2013-10-15 14:58
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:5 
这是你的代码吗?
构造方法这一般是其他的类调用的时候用到它来实例化。如果是继承关系的话,就要注意方法的执行顺序问题。本类中同样也是,你要注意 静态方法,常量,变量,普通方法等的执行顺序。你这个里面有值。相当于初始化了。然后看看执行顺序,这个程序想表达什么,或是考什么?

学海无涯#¥%……&*(
2013-10-15 15:17
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
回复 2楼 java小蚂蚁
我的意思是说,里面的Date(Date d){}方法什么意思,刚才弄懂了是调用对象的方法
2013-10-15 15:37
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:0 
回复 3楼 赵疯子
话说你是理解了,还是不理解啊?你这回复看晕我了

学海无涯#¥%……&*(
2013-10-15 17:06
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
收藏
得分:5 
重载了Date方法 参数是 Date 就是这个对象自己
2013-10-15 17:17
怪叔叔
Rank: 4
来 自:陕西
等 级:业余侠客
威 望:1
帖 子:113
专家分:234
注 册:2013-9-22
收藏
得分:5 
2013-10-15 17:45
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:5 
Date(Date d){
            day=d.day;month=d.month;year=d.year;
}
已经有一个Date对象,然后将这个对象的day、month、year参数值赋予一个新的Date对象
你可以看成将传的对象看成是另外一个日期对象,只是说OldDate和Date的内容完全相同
Date(OldDate d){
            day=d.day;month=d.month;year=d.year;
}
2013-10-15 18:44
赵疯子
Rank: 8Rank: 8
来 自:dream
等 级:蝙蝠侠
威 望:2
帖 子:365
专家分:737
注 册:2013-5-5
收藏
得分:0 
回复 7楼 ghjsmzy
对,就这意思
2013-10-17 12:12
wangboling
Rank: 1
来 自:杨凌职业技术学院
等 级:新手上路
帖 子:9
专家分:0
注 册:2013-10-13
收藏
得分:0 
那能不能直接用this方法赋值呢
2013-10-17 23:16
快速回复:一个构造方法的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044928 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved