Member 13081540 Ответов: 2

Отображение массива объектов из наследующего класса


Привет,

Я пытался отобразить массив объектов так, чтобы он показывал информацию об объекте. Однако я не получил нужного результата. Результат выглядел так:
[LItem;@55f96302
[LItem;@55f96302
[LItem;@55f96302
[LItem;@55f96302
[LItem;@55f96302

Класс товара:
private String title;
	private String classification;
	private String genre;
	private int ID;
	private int year;
	private Calendar dateLastReturned;
	private boolean available;
	private RentItem latest;
	
	public Item(int ID, int year, String title, String classification, String genre)
	{
		this.ID = ID;
		this.year = year;
		this.title = title;
		this.classification = classification;
		this.genre = genre;
		dateLastReturned = null;
		available = true;
		latest = null;
	}
	
	public Item()
	{
		ID = 0;
		year = 0;
		title = "";
		classification = "";
		genre = "";
		available = true;
		dateLastReturned = null;
		latest = null;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getClassification() {
		return classification;
	}

	public void setClassification(String classification) {
		this.classification = classification;
	}

	public String getGenre() {
		return genre;
	}

	public void setGenre(String genre) {
		this.genre = genre;
	}

	public int getID() {
		return ID;
	}

	public void setID(int iD) {
		ID = iD;
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		this.year = year;
	}

	public Calendar getDateLastReturned() {
		return dateLastReturned;
	}

	public void setDateLastReturned(Calendar dateLastReturned) {
		this.dateLastReturned = dateLastReturned;
	}

	public boolean isAvailable() {
		return available;
	}

	public void setAvailable(boolean available) {
		this.available = available;
	}

	public RentItem getLatest() {
		return latest;
	}

	public void setLatest(RentItem latest) {
		this.latest = latest;
	}
	
	public void returnItem(Calendar endDate)
	{
		setDateLastReturned(endDate);
		available = true;
	}

	public String toString() 
	{
		String str = "";
		str= str + "ID: "+ID + "\n"+"Year: "+year+"\n"+"Title: "+title+"\n"+"Classification: "+ classification+"\n"+"Genre: "+genre+"\n";
		str = str +"Return Date: "+retDay+"/"+retMonth+"/"+retYear+"\n"+"Available: "+available+"\n";
		if (getLatest() != null)
			str = str + "Most Recent Rental:"+"\t\t\t\t" +getLatest().getReference();
		return str;
	}


Класс DVD (этот класс является подклассом класса Item):

private int numberOfDiscs;
	private int filmRunTime;
	private String subtitles;
	
	public DVD(int ID, int year, String title, String classification, String genre, int numberOfDiscs, int filmRunTime, String subtitles)
	{
		this.numberOfDiscs = numberOfDiscs;
		this.filmRunTime = filmRunTime;
		this.subtitles = subtitles;
	}
	public DVD()
	{
		numberOfDiscs = 0;
		filmRunTime = 0;
		subtitles = "";
	}
	public int getNumberOfDiscs() {
		return numberOfDiscs;
	}
	public void setNumberOfDiscs(int numberOfDiscs) {
		this.numberOfDiscs = numberOfDiscs;
	}
	public int getFilmRunTime() {
		return filmRunTime;
	}
	public void setFilmRunTime(int filmRunTime) {
		this.filmRunTime = filmRunTime;
	}
	public String getSubtitles() {
		return subtitles;
	}
	public void setSubtitles(String subtitles) {
		this.subtitles = subtitles;
	}
	@Override
	public String toString() {
		return "DVD [numberOfDiscs=" + numberOfDiscs + ", filmRunTime="
				+ filmRunTime + ", subtitles=" + subtitles + ", getTitle()="
				+ getTitle() + ", getClassification()=" + getClassification()
				+ ", getGenre()=" + getGenre() + ", getID()=" + getID()
				+ ", getYear()=" + getYear() + ", getDateLastReturned()="
				+ getDateLastReturned() + ", isAvailable()=" + isAvailable()
				+ ", getLatest()=" + getLatest() + ", toString()="
				+ super.toString() + ", getClass()=" + getClass()
				+ ", hashCode()=" + hashCode() + "]";
	} 


Что я уже пробовал:

Я попробовал следующее:

static Item[] productStorage= new Item[2];


public static void initialise()
	{
		//creating objects
		DVD dvd1 = new DVD(1, 2010, "Shutter Islands", "16", "Mystery, Thriller", 1, 138, "French, Polish, English");
		DVD dvd2 = new DVD(2, 2006, "Prestige", "12", "Drama, Mystery", 1, 130, "English, German, French, Spanish");

//Assigning value to the array
		productStorage[0] = dvd1;
		productStorage[1] = dvd2;

for(int i = 0; i < productStorage.length; i++)
		{
			System.out.println(productStorage);
		}

}

Однако он отображает его именно так:
[LItem;@55f96302
[LItem;@55f96302


Любая помощь будет оценена по достоинству
Спасибо!

Member 13081540

Всякий раз, когда я добавлял [i] к утверждению. Он отображал правильные переменные из класса DVD, но не те переменные, которые у меня есть в Item, он не устанавливал переменные, а только показывал значения переменных по умолчанию класса Item. Не знаю, как это сделать, чтобы он отображал все значения, которые я поместил внутри объектов dvd1 / 2.

2 Ответов

Рейтинг:
13

Member 10317286

Ваша проблема заключается в этом утверждении:

Цитата:
Системы.из.код println(productStorage);
Посмотрите внимательно на код вокруг него, и вы должны увидеть, что я имею в виду...
for(int i = 0; i < productStorage.length; i++)
		{
			System.out.println(productStorage);
		}


Member 13081540

О, ха-ха, какая глупая ошибка :Д, спасибо за помощь. Мне нужно было поставить [i]

Рейтинг:
11

Member 10317286

Можете ли вы показать, что вы получаете?

Однако я думаю, что вы сохраняете только три значения, которые предоставляете в конструкторе...

public DVD(int ID, int year, String title, String classification, String genre, int numberOfDiscs, int filmRunTime, String subtitles)
{
    this.numberOfDiscs = numberOfDiscs;
    this.filmRunTime = filmRunTime;
    this.subtitles = subtitles;
}
а это значит, что это единственные вещи, которые будут печататься... остальные (ID, название года, классификация, жанр) никогда не назначаются, поэтому они будут нулевыми/значениями по умолчанию.


Member 13081540

Эй, спасибо за ответ, я исправил эту проблему. Мне нужно было добавить super (....) в конструктор.