#java #overriding #tostring #overloading
#java #переопределение #tostring #перегрузка
Вопрос:
Вот мой код, на самом деле довольно простой. Это не домашнее задание, я сам изучаю Java по учебной книге:
import java.util.*;
/** @author Chris */
public class Exercise9_9 extends GregorianCalendar
{
public static void main(String[] args)
{
String[] stringList = {"s", "c", "b", "f", "e", "q", "g", "w", "i", "o"};
Integer[] integerList = {5, 7, 8, 9, 6, 5, 4, 1, 2, 3};
Calendar[] calendarList = new Calendar[10];
for (int a = 0; a < calendarList.length; a )
{
calendarList[a] = new GregorianCalendar();
calendarList[a].set(Calendar.YEAR, ((int)Math.random()* 1000));
}
System.out.println("Largest String: " max(stringList));
System.out.println("Largest int: " max(integerList));
**System.out.println("Largeset date: " (max(calendarList)).toString());**
}
public static Object max(Object[] a)
{
Arrays.sort(a);
return a[a.length-1];
}
**@Override
public String toString()**
{
return "Test";
}
}
Вопрос в том, чтобы создать три массива: int, String и Calendar type. Затем выберите самый большой из каждой категории (и отобразите ответы).
Этот класс расширяет GregorianCalendar
класс, что означает, что у меня есть доступ к календарям, toString()
которые я пытаюсь переопределить. Однако это не работает. Похоже, что toString()
метод не переопределяет, потому что я получаю вывод по умолчанию toString()
. Однако я использую Netbeans, и он подтверждает переопределение и даже переводит меня в Calendar.toString()
, когда я нажимаю ссылку переопределения. Итак, я застрял, буду признателен за любую помощь.
Ответ №1:
Это потому, что вы используете не свой класс, а GregorianCalendar
:
calendarList[a] = new GregorianCalendar();
измените это на
calendarList[a] = new Exercise9_9 ();
Комментарии:
1. Вау, мой первый вопрос получил такой быстрый ответ. Большое вам спасибо.