我是 Java 新手,我正在尝试找到一种方法来存储信息,例如 C 中的结构。例如,我想让一个程序雇用员工。它将从用户那里获取名字、姓氏和身份证号码并将其存储起来。然后,用户可以根据条件查看该信息(例如,如果数据库有超过 1 名员工)。任何人都可以建议这样做的最佳方法吗?
问问题
91242 次
4 回答
23
C 中的 struct 就像 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);
于 2013-02-10T03:02:06.333 回答
2
我将创建一个带有公共字段和默认构造函数的公共类,如下所示:
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";
于 2019-06-13T15:51:36.413 回答
2
在 Java 16 中有Records
(JDK 增强提案 395):
public record Employee(String firstName, String lastName, String id) {
}
这带有一个规范的构造函数、字段访问器hashCode()
和equals()
实现toString()
。
于 2021-04-22T08:15:55.227 回答
0
我对 Java 不支持的结构有一个大问题。我正在编写一个 Android 应用程序,它通过蓝牙从基于嵌入式 ARM 的设备(用“C”编写)接收数据。接收到的数据是一个打包的字节数组,其中包含我的嵌入式设备的 EEPROM 的内容。
在“C”、C++ 或“C#”中,我可以简单地将这个字节流“转换”为表示嵌入式设备上 EEPROM 的结构,并通过引用它们以编程方式使用该结构的成员。在 Java 中,我没有这个选项,也没有好办法,因为 Java(除了支持打包类的晦涩的 IBM 版本)不允许您拥有“打包”类,其中类成员被打包每个班级成员的页眉和页脚。
于 2019-07-01T06:40:50.577 回答