Что делает пустота в java?

Тип возврата – тип данных значения, возвращаемого методом, или void, если метод не возвращает значение.

http://download.oracle.com/javase/tutorial/java/javaOO/methods.html

Ладно, тогда … Вот мой вопрос:

public class EnumTest { Day day; public EnumTest(Day day) { this.day = day; } public void tellItLikeItIs() { switch (day) { case MONDAY: System.out.println("Mondays are bad."); break; case FRIDAY: System.out.println("Fridays are better."); break; case SATURDAY: case SUNDAY: System.out.println("Weekends are best."); break; default: System.out.println("Midweek days are so-so."); break; } } public static void main(String[] args) { EnumTest firstDay = new EnumTest(Day.MONDAY); firstDay.tellItLikeItIs(); EnumTest thirdDay = new EnumTest(Day.WEDNESDAY); thirdDay.tellItLikeItIs(); EnumTest fifthDay = new EnumTest(Day.FRIDAY); fifthDay.tellItLikeItIs(); EnumTest sixthDay = new EnumTest(Day.SATURDAY); sixthDay.tellItLikeItIs(); EnumTest seventhDay = new EnumTest(Day.SUNDAY); seventhDay.tellItLikeItIs(); } } 

http://download.oracle.com/javase/tutorial/java/javaOO/enum.html

Вышеприведенный код не работает без void.

 Exception in thread "main" java.lang.Error: Unresolved compilation problems: The method tellItLikeItIs() is undefined for the type EnumTest 

Что я пропустил? Почему там пустота? И он возвращает строку?

Причина, по которой код не будет работать без void заключается в том, что метод System.out.println(String string) ничего не возвращает и просто печатает предоставленные аргументы на стандартном терминале, который в большинстве случаев является монитором компьютера. Когда метод возвращает «ничего», вы должны указать это, поставив ключевое слово void в свою подпись.

Вы можете увидеть документацию System.out.println здесь:

http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29

Чтобы снова нажать на проблему, println является classическим примером метода, который выполняет вычисление как «побочный эффект».

Вы имеете в tellItLikeItIs метод tellItLikeItIs ? Да, вы должны указать void чтобы указать, что метод ничего не возвращает. Все методы должны иметь тип возвращаемого значения, даже если он void .

Он, конечно, не возвращает строку – посмотрите, нет никаких возвратных утверждений нигде. Не совсем понятно, почему вы думаете, что он возвращает строку. Он печатает строки на консоли, но это не то же самое, что возвращать один из метода.

Пустота ничего не возвращает; он сообщает компилятору, что метод не имеет возвращаемого значения.

void означает, что он ничего не возвращает. Он не возвращает строку, вы пишете строку в System.out но вы не возвращаете ее.

Вы должны указать, что возвращает метод, даже если вы просто говорите, что ничего не возвращает.

С технической точки зрения, они могли бы спроектировать язык таким образом, чтобы, если вы не пишете тип возвращаемого значения, предполагается, что он ничего не возвращает, однако вы явно указываете, что void помогает гарантировать, что отсутствие возвращаемого значения является преднамеренным, а не случайным.

Когда тип возврата недействителен, ваш метод ничего не возвращает.

Посмотрите еще раз на свой код: в этом методе нет возврата. Вы печатаете на консоли и выходите.

Void: модификатор типа void утверждает, что основной метод не возвращает никакого значения. Все параметры метода объявляются внутри предшествующей скобки. Здесь String args [] объявляет параметр args, который содержит массив объектов строки типа classа.

  • Что означает «Ошибка: Несовместимые типы: void не может быть преобразован в ...» означает?
  • Какой лучший (более чистый) способ игнорировать вывод в PowerShell?
  • Возrotation пустоты?
  • Разница между int main () и int main (void)?
  • Давайте будем гением компьютера.