2011-09-28 63 views
1

分配: Time类:传递一个方法调用构造函数,JAVA

给它一个小时,分,秒3名私有数据成员。使用long或int类型。

如果你使用int,你必须在ctors内部施放。

添加一个无参数ctor,使用p38上代码2.6中的代码将 的值分配给当前时间的小时,分​​钟和秒。

添加另一个将采用名为elapseTime的单个长参数的ctor(更好的 将会是elapsedTime),这是自Unix纪元日期以来的毫秒数。 这个第二个ctor也将使用代码,如代码2.6所示,设置数据成员 自该纪元以来经过的时间。

为每个数据成员添加一个吸气剂。每个吸气器只需要一个声明。

因为数据成员是私人的,所以需要吸气剂。

添加一个toString方法,该方法返回Time对象的小时,分​​钟和秒。

这里是我的类Time()代码,我的setTime()代码表示上面提到的书籍参考。

package chapter_10;

public class Time { 
    private long hour; 
    private long minute; 
    private long second; 

    public Time() { 

    } 
    public void setTime(long elapsedTime){ 
     long millisecond = System.currentTimeMillis(); 
     second = millisecond/1000; 
     minute = second/60; 
     hour = minute /60; 
     //equate for current time. 
     second = second %60; 
     minute = minute %60; 
     hour = hour %24; 
    } 

    public long getHour() { 
     return hour; 
    } 

    public long getMinute() { 
     return minute; 
    } 

    public long getSecond() { 
     return second; 
    } 

    public String toString(){ 
     return getHour() + ":" + getMinute() + ":" + getSecond(); 
    } 
} 
+3

你的问题目前没有意义。 “将一个方法调用到另一个构造函数中”是什么意思?请解释你想要*达到*,而不是你认为适合实现它的方式... –

+0

好吧,我想我是问我想达到什么,我试图从setTime传递这个信息( ),到时间() – Gmenfan83

+0

也许在代码中引用'elapsedTime'会让我们看到你想要达到的目标。 –

回答

1
public Time() { 
    setTime(0L); 
} 

调用构造函数中的重写方法是不好的做法,虽然。因此,你应该使这个方法是私人的或最终的,或者让这个类本身成为最终的。另外,你的方法有点奇怪,因为它需要一段时间作为参数,但是不会对它做任何事情。

0

首先,你为什么要从同一个类的方法中调用一个类构造函数?
的事情是,如果你正在访问的类,你应该之前调用构造函数,除非你的方法是静态的,因此,例如,你可以这样做:

public static void setTime(long elapsedTime){ 
    ... 
    new Time(elapsedTime); 
    ... 
} 
从调用部分

然后:

Time.setTime(1L); 

虽然我觉得这可能会回答你的问题(如果我理解正确的),真正的问题是,为什么从一个方法调用同一个类的构造函数?只是调用构造函数并将方法的所有逻辑放入它中,不是更好吗?

我希望这有助于。

+0

谢谢你的帮助,我很抱歉,如果我不清楚在我自己的问题,我想我我也很困惑。 – Gmenfan83

+0

也许你需要的仅仅是一个'public Time(long elapsedTime)'构造函数? – skw

+0

说它需要是一个没有参数的构造函数,所以不会工作 – Gmenfan83

相关问题