0

我正在尝试制作一个新的“时间”课程,

时间.java

public class Time{ 
    public int hour,minute;
    public double second;

    public Time(){
        super();
    }
}

main_activity.java

Time newT = new Time();
newT.hour = 3;

但我在这里得到一个错误:newT.hour

错误(在 Eclipse 中)“令牌“小时”上的语法错误,此令牌后应为变量声明符”

4

4 回答 4

4

小时的可访问性是private,因此您无法从其他班级访问它。创建 setter 和 getter:

public class Time{ 
    private int hour,minute;
    private double second; 

    public Time(){
        super();
    }

    public void setHour(int hour) { 
        this.hour = hour;
    }

    public int getHour() { 
        return hour;
    }
}

现在通过newT.setHour(3);

编辑:我看到你修改了错误。实际的错误是因为你放了这些行

Time newT = new Time();
newT.hour = 3;

在课堂上,我假设你有这样的事情:

public class Main {
    Time newT = new Time();
    newT.hour = 3;
}

但是你不能做这样的事情,因为你只能在你的类体中声明变量/方法/类。试试这个:

public class Main {
    public void myMethod {
        Time newT = new Time();
        newT.hour = 3;
    }        
}
于 2013-01-23T13:27:06.567 回答
1

使用 setter 和 getter 方法的方法。在您的类中创建两个公共方法来设置小时值并获取它。这样你就可以使用私有变量。

否则你需要将它们公开。

于 2013-01-23T13:26:01.890 回答
1

首先我想知道你是如何编译这个“ private double String second;”行的。(双字符串一起:-o),好的,现在下面是您的解决方案。

你的时间类应该是这样的

 public class Time{ 

        private int hour,minute;
        private double seconds;


        public int getHour() {
            return hour;
        }

        public void setHour(int hour) {
            this.hour = hour;
        }

        public int getMinute() {
            return minute;
        }

        public void setMinute(int minute) {
            this.minute = minute;
        }

        public double getSeconds() {
            return seconds;
        }

        public void setSeconds(double seconds) {
            this.seconds = seconds;
        }
    }

并做这样的事情来设置和获取小时/分钟/秒

 Time newT = new Time();
      newT.setHour(1);

还要在您正在编写的新课程中导入时间。

于 2013-01-23T13:32:24.927 回答
0

正如您没有告诉我们的错误明确指出的那样,您无法private从课堂外访问字段。

于 2013-01-23T13:24:04.623 回答