-2

as a result, below code should print the names but instead, I am getting the below result com.flight.Passenger@659e0bfdAs and as per my understanding, toString method should be overridden, please correct me if I am wrong and if I am right please help me to override the toString method here.

Thank you so much for the prompt responses but I still have a below question:

As I have got the successful result but is there any way I can print the name of the reference variable like Bob, Reeta and so on?

package com.flight;

import java.util.Arrays;

public class Passenger implements Comparable  {

    private int memberLevel; 
    private int memberDays;
    public void setLevel(int memberLevel, int memberDays)
    {
        this.memberLevel = memberLevel;
        this.memberDays = memberDays;
    }

    public int compareTo(Object o)
    {
        Passenger p = (Passenger) o;

        if(memberLevel> p.memberLevel)
            return -1; //negative comes first
        else if(memberLevel< p.memberLevel)
            return 1; // positive comes afterwards
        else {
            if(memberDays> p.memberDays)
                return -1;
            else if(memberDays< p.memberDays)
                return 1;
            else
                return 0;
        }

    }

    public static void main (String[] args)
    {

        Passenger Bob = new Passenger();
        Passenger Reeta = new Passenger();
        Passenger Mannat = new Passenger();
        Passenger Asses = new Passenger();

        Bob.setLevel(1,40);
        Reeta.setLevel(1,55);
        Mannat.setLevel(2,50);
        Asses.setLevel(1,95);

        Passenger[] pa = {Bob,Reeta,Mannat, Asses};
        //Arrays.sort(pa);
        for(Passenger pb : pa)
        System.out.println(pb);

    }


}
gs650x
  • 383
  • 2
  • 22

1 Answers1

2
@Override
    public String toString() {
        return this. memberLevel + " " + this. memberDays;
    }
A J
  • 1,439
  • 4
  • 25
  • 42
  • You can also implement it this way to have more information `@Override public String toString() { return getClass().getSimpleName() + "[memberLevel =" + memberLevel +", memberDays =" + memberDays + "]"; }` – Allan May 02 '18 at 04:31
  • Thank you so much to both of you, hope I am not asking a stupid question but is there any way I can print the reference variable names? like Bob, Reeta... – gs650x May 02 '18 at 04:36
  • @Gurjit Why would you want to when your code may do `Bob = Reeta;` I suggest that you add a field with the Passengers name – Scary Wombat May 02 '18 at 05:09