I'm writing a program that reads information from three seperate classes. Here is my code:
public class Animal
{
protected int id;
protected String type;
protected double mass;
//------------------------------------------------------------------------
// Sets up an animal with the specified ID number, type and weight.
//------------------------------------------------------------------------
public Animal (int animalID, String animalType, double weight)
{
id = animalID;
type = animalType;
mass = weight;
}
//------------------------------------------------------------------------
// Returns information about this animal as a string.
//------------------------------------------------------------------------
public String toString()
{
String description = "ID: " + id + "\n";
description += "Type: " + type + "\n";
description += "Weight: " + mass + "\n";
return description;
}
}
public class Pet extends Animal
{
private String title;
private String own;
//------------------------------------------------------------------------
// Sets up a pet using the specified information.
//------------------------------------------------------------------------
public Pet (int animalID, String animalType, double weight, String name, String owner)
{
super (animalID, animalType, weight);
title = name;
own = owner;
}
//------------------------------------------------------------------------
// Returns information about this pet as a string.
//------------------------------------------------------------------------
public String toString()
{
String description = super.toString();
description += "Name: " + title + "\n";
description += "Owner: " + own + "\n";
return description;
}
}
public class ZooAnimal extends Animal
{
private int cage;
private String train;
//------------------------------------------------------------------------
// Sets up a zoo animal using the specified information.
//------------------------------------------------------------------------
public ZooAnimal (int animalID, String animalType, double weight, int cageNumber, String trainer)
{
super (animalID, animalType, weight);
cage = cageNumber;
train = trainer;
}
//------------------------------------------------------------------------
// Returns information about this zoo animal as a string.
//------------------------------------------------------------------------
public String toString()
{
String description = super.toString();
description += "Cage: " + cage + "\n";
description += "Trainer: " + train + "\n";
return description;
}
}
import java.io.*;
public class FileReader
{
public static void main(String args[]) throws Exception
{
FileReader fr = new FileReader("animal.txt");
BufferedReader br = new BufferedReader(fr);
String s;
while((s = br.readLine()) != null)
{
System.out.println(s);
}
fr.close();
}
}
The following code segment is animal.txt
3000,Monkey,38.6
7999,Ape,65.2,
8000,Dog,13.4,Thomas,George,
5252,Giraffe,130.3,103,Samuel,
The problem I'm having so far is that my program prints:
3000,Monkey,38.6
7999,Ape,65.2,
8000,Dog,13.4,Thomas,George,
5252,Giraffe,130.3,103,Samuel,
Rather than what I want it to print:
ID: 3000
Type: Monkey
Weight: 38.6
ID: 7999
Type: Ape
Weight: 65.2
(The above from the animal class)
ID: 8000
Type: Dog
Weight: 13.4
Name: Thomas
Owner: George
(The above from the pet class)
ID: 5252
Type: Giraffe
Weight: 130.3
Cage Number: 103
Trainer: Samuel
(The above from the zoo animal class)
What can I do so my program prints the desired output?