Может кто-нибудь объяснить тип возврата void в Java?

java return void

28837 просмотра

5 ответа

38 Репутация автора

Единственный вид возвращаемого значения void, который я видел, имеет в методе операторы System.out.println. Поэтому, когда метод будет вызван, эти строки будут напечатаны.
Не могли бы вы сделать строку возвращаемого типа и вернуть строку вместо выполнения возвращаемого типа void?

Если в методе возвращаемого типа void есть другие методы, вы могли бы сделать тип возвращаемого значения значением, которое дает метод, который будет возвращать результат этого метода?

Когда вы можете использовать только возвращаемый тип void?

Автор: Ethan Источник Размещён: 09.09.2013 12:05

Ответы (5)


1 плюс

1716 Репутация автора

Проще говоря, void ничего не возвращает и не ожидает возврата.

Вы можете прочитать больше о возвращении здесь:

http://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html

Автор: Chris Размещён: 09.09.2013 12:10

2 плюса

348 Репутация автора

Пустой тип возврата просто означает, что ничего не возвращается. System.out.println ничего не возвращает, так как просто выводит строку, переданную ему в качестве параметра.

А также..

Не могли бы вы просто сделать возвращаемый тип String и установить строку равной параметру, чтобы он отображался при вызове метода?

Я понятия не имею, что вы пытаетесь сказать этим.

Автор: Smitty Размещён: 09.09.2013 12:10

1 плюс

2537 Репутация автора

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

Это может быть предметом спора о том, должны ли методы возвращать voidодин из аргументов (мы могли бы сделать это, если бы был только один), или this(мы могли бы сделать это, если мы хотим поддерживать цепочку вызовов методов).

Так что это решение является частью дизайна класса.

Автор: andy256 Размещён: 09.09.2013 12:10

4 плюса

555356 Репутация автора

Решение

Может кто-нибудь объяснить тип возврата void в Java?

voidТип используется , чтобы объявить о том , что метод не возвращает значение.

Не могли бы вы просто сделать возвращаемый тип String и установить строку равной параметру, чтобы он отображался при вызове метода?

Гипотетически «вы» (или в данном случае разработчики PrintStreamAPI) могли бы это сделать, но в этом нет никакого смысла. Я изо всех сил думать о правдоподобной потребительной случае , когда это будет иметь смысл использовать в printlnаргумент строка ... если он был возвращен в результате.

Имейте в виду, что основными целями хорошего дизайна API 1 являются:

  • хорошо поддерживать общие варианты использования, и
  • быть простым для программистов, чтобы понять.

Методы, которые возвращают значения, которые либо не имеют смысла, либо используются редко (если вообще используются), (IMO) плохо разработаны.

Если в методе возвращаемого типа void есть другие методы, вы могли бы создать метод возвращаемого типа, который бы возвращал результат этого метода?

Ну, я так думаю. Но у вас есть те же проблемы, что и выше. Если результат либо используется редко, либо его трудно понять (и, следовательно, трудно использовать правильно ), то, вероятно, плохой дизайн, чтобы вернуть его.

Когда вы можете использовать только возвращаемый тип void?

В одном случае вы реализуете или переопределяете метод в interfaceили суперклассе, и этот метод объявляется с voidвозвращаемым типом.

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


1 - Есть и другие цели. Пожалуйста, не вынимайте это из контекста ...

Автор: Stephen C Размещён: 09.09.2013 12:29

1 плюс

81 Репутация автора

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

Распечатка заявления для печати не для возвращения. Если вы хотите, чтобы строка возвращалась из вашего метода. удалите void и поместите ключевое слово String там. И в качестве последней строки метода введите оператор return. return s;s ваша строковая переменная.

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

Автор: user3580271 Размещён: 01.05.2014 06:07
Вопросы из категории :
32x32