All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.pdx.cs410J.core.Cereal Maven / Gradle / Ivy

The newest version!
package edu.pdx.cs410J.core;

import java.util.*;

/**
 * This class represents a box of cereal.  It has a name and a price.
 */
public class Cereal implements Comparable {
  private String name;
  private double price;

  /**
   * Creates a new box of cereal
   */
  public Cereal(String name, double price) {
    this.name = name;
    this.price = price;
  }

  /**
   * Returns the name of this cereal
   */
  public String getName() {
    return this.name;
  }

  /**
   * Returns the price of this cereal
   */
  public double getPrice() {
    return this.price;
  }

  public String toString() {
    return this.name + " $" + this.price;
  }

  /**
   * Compares two Cereals based on their name
   */
  public int compareTo(Cereal c2) {
    return this.getName().compareTo(c2.getName());
  }

  /**
   * Two be consistent with the natural ordering, two
   * Cereals that have the same name, are themselves the
   * same.
   */
  public boolean equals(Object o) {
    if (o instanceof Cereal) {
      Cereal other = (Cereal) o;
      return this.getName().equals(other.getName());
    }
    return false;
  }

  /**
   * Two cereals that are equal must have the same hash code.
   */
  public int hashCode() {
    return this.getName().hashCode();
  }

  /**
   * Demonstrates the natural ordering of Cereals by
   * adding a bunch of cereals to a {@link SortedSet}
   */
  public static void main(String[] args) {
    SortedSet set = new TreeSet();
    set.add(new Cereal("Total", 3.56));
    set.add(new Cereal("Raisin Bran", 2.65));
    set.add(new Cereal("Sugar Crisps", 2.38));

    for (Cereal c : set ) {
      System.out.println(c);
    }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy