我是Java的新手,我正试图找到一种方法来存储C中的结构信息。例如,我希望有一个程序雇佣员工。它将从用户获取名字,姓氏和身份证号码并存储它。然后,用户可以根据条件查看该信息(例如,如果数据库有超过1名员工)。有人建议这样做的最好方法吗?
答案 0 :(得分:22)
C中的结构就像Java中的类一样,功能更强大,因为Java中的类可以包含方法,而C ++则包含方法。您创建一个新类。例如:
class Employee {
private String name;
private int code;
// constructor
public Employee(String name, int code) {
this.name = name;
this.code = code;
}
// getter
public String getName() { return name; }
public int getCode() { return code; }
// setter
public void setName(String name) { this.name = name; }
public void setCode(int code) { this.code = code; }
}
当你想创建多名员工时,就像在C:中创建数组一样:
Employee[] arr = new Employee[100]; // new stands for create an array object
arr[0] = new Employee("Peter", 100); // new stands for create an employee object
arr[1] = new Employee("Mary", 90);
答案 1 :(得分:1)
在 Java 16 中有 Records
(JDK Enhancement Proposal 395):
public record Employee(String firstName, String lastName, String id) {
}
这带有规范的构造函数、字段访问器、hashCode()
、equals()
和 toString()
实现。
答案 2 :(得分:0)
我将使用公共字段和默认构造函数创建一个公共类,如下所示:
public class Employee {
public String name, last_name;
// constructor
public Employee() {
this.name = "";
this.last_name= "";
}
}
....
//when using it
Employee e = new Employee();
e.name ="Joe";
e.last_name = "Doe";
答案 3 :(得分:0)
我有一个很大的问题,Java不支持结构。我正在编写一个Android应用程序,该程序通过基于蓝牙的嵌入式设备(通过“ C”编写)通过蓝牙接收数据。接收到的这些数据是一个打包的字节数组,其中包含嵌入式设备的EEPROM的内容。
在“ C”,C ++或“ C#”中,我可以简单地将字节流“广播”到表示嵌入式设备上EEPROM的结构中,并通过引用它们以编程方式使用该结构的成员。在Java中,我没有此选项,并且没有很好的方法,因为Java(除了支持打包类的晦涩的IBM版本除外)不允许您使用“打包”类来封装类成员而没有每个班级成员的页眉和页脚。