Есть много ошибок в коде, как представлено. Это те, которые я заметил.
public class Date{
Проблема: у вас отсутствует объявление пакета, это означает, что оно будет в пакете по умолчанию. Это плохая идея.
Проблема: вы используете имя класса, которое совпадает с обычно используемыми классами в стандартной библиотеке классов. Это плохая идея.
public Date(String inString){
String s = inString;
String b;
b.printThis(s);
Ошибка: код пытается вызвать метод в String API с именем printThis(...)
. Такой метод не существует. Вы, вероятно, должны избавиться от b
и просто позвонить printThis(s)
Ошибка: код пытается использовать неинициализированный локальный (b
), и это приведет к ошибке компиляции (если вы "исправили" предыдущую ошибку, изменив тип b
на что-то, имеющее printThis
метод).
Проблема: плохая практика для конструктора - вызывать метод для конструируемого объекта, если есть вероятность, что он может быть переопределен в подклассе. Проблема заключается в том, что метод переопределения (из подкласса) может быть вызван для объекта до завершения инициализации суперкласса. Можно безопасно вызывать методы static
или private
.
}
public void printThis(getString) {
Ошибка: в объявлении есть синтаксическая ошибка. Измените getString
на String getString
.
Проблема: выбор имени параметра (IMO) не имеет смысла. Что такое "получить строку" ???
System.out.printf(System.out.printf(
new SimpleDateFormat("MM/dd").format(
new SimpleDateFormat("MM/dd").parse(getString) ) );
Ошибка: ошибка компиляции: скобки не сбалансированы.
Ошибка: ошибка компиляции: первый аргумент printf
должен быть String
или Locale
. В вашем коде первый аргумент внешнего вызова - это экземпляр PrintStream
.
Ошибка: System.out.printf(System.out.printf(
не имеет смысла. Вы почти наверняка должны использовать только System.out.println
или System.out.print
. Если вы используете метод printf
, вы должны указать строку формата в синтаксисе, указанном в PrintStream
javadocs. (Это НЕ то же самое, что синтаксис, используемый для форматов даты !!!)
}
Ошибка: отсутствует '}' для завершения класса.
Проблема: ваш стиль кода требует много работы. Если вы можете поклясться на Библии, что никто больше не будет 1050 * читать ваш код (!), Тогда я полагаю, все в порядке. В противном случае такого рода вещи недопустимы. Если бы это была домашняя работа, я бы сразу отбросил вам 50% ваших оценок за то, что не пытался сделать правильный стиль.