Android新对象类

时间:2013-01-23 13:23:00

标签: java access-modifiers

我正在努力创造一个新的" Time"类,

time.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 个答案:

答案 0 :(得分:3)

小时的可访问性为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;
    }        
}

答案 1 :(得分:1)

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

否则你需要公开它们。

答案 2 :(得分:1)

首先,我想知道你是如何编译这个“private double String second;”行的。 (double string together:-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);

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

答案 3 :(得分:0)

由于您没有告诉我们有关明确状态的错误,您无法从课堂外访问private字段。