Creating struct like data structure in Java

前端 未结 3 1646
Happy的楠姐
Happy的楠姐 2020-12-05 11:48

I am new to Java and I am trying to find out a way to store information like a struct in C. Say for example I want to have a program hire employees. It would take from the

相关标签:
3条回答
  • 2020-12-05 12:22

    I have a big problem with structures not being supported in Java. I am writing an Android app which receives data via Bluetooth from an embedded ARM based device (written in "C"). This data when received is a packed array of bytes which contains the contents of my embedded device's EEPROM.

    In "C", C++, or "C#", I can simply "cast" this stream of bytes to a structure representing the EEPROM on the embedded device and programmatically use the members of the structure simply by referring to them. In Java, I don't have this option and there's no good way to do it since Java (except for an obscure IBM version which supports packed classes) doesn't allow you to have "packed" classes where the class members are packed without headers and footers to each class member.

    0 讨论(0)
  • 2020-12-05 12:26

    A struct in C just like a class in Java and much more powerful, because class in Java can contain method, and C++ does. You create a new class. For example :

       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; }
        }
    

    And when you want to create multi employees, create array just like in 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);
    
    0 讨论(0)
  • 2020-12-05 12:33

    I would create a public class with public fields and a default constructor, like this:

        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";
    
    0 讨论(0)
提交回复
热议问题