【问题标题】:How can I print out this private class fields after converting them? [duplicate]转换后如何打印出这个私有类字段? [复制]
【发布时间】:2014-02-11 22:16:03
【问题描述】:

我已经为这项任务工作了一段时间,但我碰到了一堵墙,我想不出办法。作业的目标可以在这里阅读,省去我打字或复制的麻烦。

http://imgur.com/be5YVst

我无法弄清楚作业的输出部分。因为必须以这种特定的方式设置类,而不仅仅是执行特定的功能。尽管作业没有说明 toString() 或类似方法,但我开始编写一个,但意识到我不能使用字段、小时、分钟和秒,因为它们超出了范围。如果我试图将它们放在 TimeTest 程序中,我将没有权限,因为它们是私有的。 (他们必须是私人的。)

我怎样才能让这些转换后的单位以小时:分钟:秒的形式打印出来?

以下是我当前的代码:

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

    public Time()
        {
            long compTime = System.currentTimeMillis();
            this.setTime(compTime);
        }

    public Time(long hour, long minute, long second)
        {
            this.hour = hour;
            this.minute = minute;
            this.second = second;
        }

    public Time(long time)
        {
            this.setTime(time);
        }

    //three get methods
    public long getHour()
        {
            return this.hour;
        }

    public long getMinute()
        {
            return this.minute;
        }

    public long getSecond()
        {
            return this.second;
        }
    //setTime method
    public void setTime(long elapseTime)
        {
            this.hour = (elapseTime/36000000);
            this.minute = ((elapseTime - (this.hour * 36000000))/60000);
            this.second = ((elapseTime - (this.minute * 60000))/1000);
        }

    public String printFormat()
        {
        //it wouldn't let me name it toString() so I named it printFormat() instead.
        }
}

【问题讨论】:

标签: java class printing private


【解决方案1】:

试试

@Override
public String toString() {

    // create a string from your fields

}

【讨论】:

  • 谢谢。这是一个巧妙的技巧,我什至不知道我能做到。我现在已经打印出来了,不过数学有点不对劲。
【解决方案2】:

试试这个,

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

        public Time()
        {
            long compTime = System.currentTimeMillis();
            this.setTime(compTime);
        }

        public Time(long hour, long minute, long second)
        {
            this.hour = hour;
            this.minute = minute;
            this.second = second;
        }

        public Time(long time)
        {
            this.setTime(time);
        }

        //three get methods
        public long getHour()
        {
            return this.hour;
        }

        public long getMinute()
        {
            return this.minute;
        }

        public long getSecond()
        {
            return this.second;
        }
        //setTime method
        public void setTime(long elapseTime)
        {
            this.hour = (elapseTime/36000000);
            this.minute = ((elapseTime - (this.hour * 36000000))/60000);
            this.second = ((elapseTime - (this.minute * 60000))/1000);
        }

        public String printFormat()
        {
            return hour + ":" + minute + ":" + second;
        }
    }
    public class TimeTest
    {
        public static void main(String[] args)
        {
            System.out.println(new Time().printFormat());
        }
    }

【讨论】:

  • 总是为你的代码添加解释。
猜你喜欢
  • 2013-10-18
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
  • 2011-02-02
  • 1970-01-01
相关资源
最近更新 更多