我正在编写一个通信软件,它将与我大学控制部门的实验室流程进行通信。这些进程通过串行端口进行通信,并且会有相当多的位检查/操作。我写了一个如下的辅助类:
public class Channel {
public enum Kind {DIGITAL_IN, DIGITAL_OUT, ANALOG_IN, ANALOG_OUT, COUNTER_IN};
private int resolution;
private int number;
private Kind kind;
public byte[] bits;
public Channel(Kind kind, int resolution, int number) throws Exception {
if (resolution % 8 != 0) {
throw new Exception("Resolution must be divisible by 8");
}
this.kind = kind;
this.resolution = resolution;
this.number = number;
this.bits = new byte[resolution/8];
}
public int getResolution() {
return resolution;
}
public int getNumber() {
return number;
}
public Kind getKind() {
return kind;
}
}
我现在的问题是,在这种情况下,将我的 byte[] 声明为 public 是否被认为是不好的做法?在我的 LabProcessProtocol 类中,我将访问这些通道位并根据我从串行端口上的进程中获得的内容更改它们。
我有一种预感,Java 就是私有的,使用 getter 和 setter,但我不确定。在这种情况下,它似乎很复杂。
提前致谢。