Arrays with different datatypes i.e. strings and integers. (Objectorientend)

后端 未结 5 1676
谎友^
谎友^ 2020-12-24 15:29

For example I have 3 books: Booknumber (int), Booktitle (string), Booklanguage (string), Bookprice (int).

Now, I

5条回答
  •  天命终不由人
    2020-12-24 16:35

    public class Book
    {
        public int number;
        public String title;
        public String language;
        public int price;
    
        // Add constructor, get, set, as needed.
    }
    

    then declare your array as:

    Book[] books = new Book[3];
    

    EDIT: In response to O.P.'s confusion, Book should be an object, not an array. Each book should be created on it's own (via a properly designed constructor) and then added to the array. In fact, I wouldn't use an array, but an ArrayList. In other words, you are trying to force data into containers that aren't suitable for the task at hand.

    I would venture that 50% of programming is choosing the right data structure for your data. Algorithms naturally follow if there is a good choice of structure.

    When properly done, you get your UI class to look like: Edit: Generics added to the following code snippet.

    ...
    ArrayList myLibrary = new ArrayList();
    myLibrary.add(new Book(1, "Thinking In Java", "English", 4999));
    myLibrary.add(new Book(2, "Hacking for Fun and Profit", "English", 1099);
    

    etc.

    now you can use the Collections interface and do something like:

    int total = 0;
    for (Book b : myLibrary)
    {
       total += b.price;
       System.out.println(b); // Assuming a valid toString in the Book class
    }
    System.out.println("The total value of your library is " + total);
    

提交回复
热议问题